2011-12-06 4 views
0

이 SQL 명령이 제대로 작동하는 데 문제가 있습니다. (난 그냥 처음 작업하는 데 필요한,이 코드는 안전하지 않습니다 알고있다.) 나는이 프로그램을 실행할 때 내가 오류 얻을 :MySQL/PHP 로그인 정보 확인

$login_username = $_POST['username']; 
$login_password = $_POST['password']; 

$lc = "SELECT * FROM user WHERE username = $login_username AND password = $login_password"; 
$lcr = mysql_query($lc); 
$lcgr = mysql_num_rows($lcr)or die(mysql_error()); 

답변

1

당신이 경우 " '절 곳'에서 알 수없는 열 '이름'을" 이 오류가 발생하면 사용자 테이블에 username이라는 열이 없다는 것을 의미합니다.

둘째, 코드는 SQL Injection입니다. $ _POST 값의 유효성을 검사하고 보안을 설정해야합니다.

또한 mysql_num_rows 대신 die의 확인을 mysql_query에서 수행해야합니다.

0

쿼리에서 username이 올바른 열 이름이 아닌 것으로 보입니다. 확인할 수 있습니까?

0

'사용자'테이블에 '사용자 이름'열이 있습니까? 시도하십시오 DESC user 그래서 당신은 당신의 필드 이름이 테이블에 있는지 확신하고 그에 따라 귀하의 쿼리를 수정할 수 있습니다.

문자열 (대개 사용자 이름과 비밀번호는 문자열)을 따옴표로 묶어야합니다.

당신은 이미 내가 :) 어떤 사출 논평을 떠날거야 그래서 당신의 코드가 안전하지 알고 언급 한

0

첫째 - 당신은 당신의 데이터베이스에서 사용자 테이블에서 "이름"라는 이름의 열을해야합니까?

둘째 = $ login_username과 $ login_password를 작은 따옴표로 묶으십시오. 문자열이 맞습니까? 쿼리에 따옴표를 사용하여

1

시도 :

$lc = "SELECT * FROM user WHERE username = '$login_username' AND password = '$login_password'"; 
+0

감사합니다! 이것은 그것을 작동 시켰습니다. – user1082585