2011-03-21 7 views
0

사용자로부터 데이터를 수집하기 위해 html <select>, <option> 양식을 사용하고 있습니다. 그러나 출생의 날을 데이터베이스에 저장하려고 할 때 막혔습니다.PHP로 MySQL에 생년월일을 삽입하십시오.

그것은 $dob하지만 모든 작동
$dob = $_POST['year'] . '-' . $_POST['month'] . '-' .$_POST['day']; 

$insertInto = " INSERT INTO `users`.`information` (id, useremail, password, firstname, lastname, gender, dob, telephone) 
VALUES (NULL, '$_POST[email]','$_POST[password]','$_POST[firstname]','$_POST[lastname]','$_POST[formGender]','$dob', '$_POST[telephone]')"; 

, 사람이 오류를 찾는 나를 인도 할 수 : 여기 내가 할 노력하고 무엇입니까?

대단히 감사합니다.

+1

을 직접 PHP로 사용자 문자열을 통과해서는 안됩니다. 사용자가'NULL '과 같은 전자 메일을 입력하면 어떻게됩니까? DROP TABLE 사용자; -'? mysql_real_escape_string을 사용하여 항상 사용자 입력을 피한다. – ChrisJ

+0

ISSET에 확인한 다음 유효성 검사를 위해 아직 그 시점에 있지 않습니다. 팁 주셔서 감사합니다 : – Karl

+0

사실 그건 사실적인 벡터 ChrisJ, 내가 처음으로 이름/마지막 이니셜을 공유하는 일이 아니에요. 나는 대신에 다음과 같은 것을 할 것이다 :'email = ', firstname = users.information에서 암호 선택 useremail='[email protected]', '', '', '', '')' – Chris

답변

0

먼저 쿼리 호출을하기 전에 $ dob 값을 확인하십시오. 그런 다음, 괜찮아 보인다면 (예 : 1984-10-10), dob를 날짜/날짜로 만드십시오.

지금까지 어떤 오류가 발생 했습니까? 0으로 설정되었거나 정확히 무엇입니까?

참고 : SQL 삽입에 노출됩니다. 나는 거의 모든 SQL 질의에 대해 준비된 문장으로 PDO를 사용할 것을 항상 권할 것이다. http://mx.php.net/manual/en/pdo.prepare.php

+0

나는 모두 O . 고맙다, 나는 그것을 시험해 볼 예정이다 :) – Karl

+0

나는 0000-00-00지고있다. 나는 내 $ dob varialbe 에코를 되 돌리려고했으나 phpmyadmin에서 0000-00-00이 표시된다. 에코에서 나는 1997-06-12를 얻는다 –

2

유닉스의 시대를 신경 쓸 필요가 없다면, 간단히 사용자의 의견을 듣고 간단한 strtotime()을 할 수 있습니다. 그것을 빼낼 때 더 유연하게 사용할 수 있으며 date() 함수를 사용하여 표시 할 수 있습니다.

$dob = "1/1/1985"; 
$string = strtotime($dob); 

다음을 뱉어 :

$data = pull epoch result from database 
$birthday = date("m/d/Y", $data); 
관련 문제