2011-03-06 5 views
0

그것은 내 구문에 오류가 있음을 나타내며 오류를 찾을 수없는 것 같습니다.PHP에서 쿼리 오류

$query_admin = 'SELECT * FROM `user_accounts` WHERE `id` =1 AND `name` LIKE ' . $login_user_name . ' AND `password` LIKE ' . $login_password . '; 
    $query_user = 'SELECT * FROM `user_accounts` WHERE `name` LIKE ' . $login_user_name . ' AND `password` LIKE ' . $login_password . '; 
+0

구문 강조는 당신에게 문제를 보여 주어야한다. 마지막 줄 맨 마지막에 있습니다. –

+0

각 줄의 끝에는 일치하지 않는 작은 따옴표가 있습니다. 또한, 당신은'LIKE' 문을 적절하게 사용하지 않습니다. 'LIKE'을 올바르게 사용했다면, 사용자는 부분적인 패스워드로 admin으로 로그인 할 수 있습니다. 또한 코드가 SQL 주입 공격에 취약한 것으로 보입니다. – leepowers

답변

1

내가 당신의 쿼리 문자열의 끝에서 '넣어 잊어 생각이 시도 :

$query_admin = "SELECT * FROM `user_accounts` WHERE `id` =1 AND `name` LIKE '$login_user_name' AND `password` LIKE ' $login_password'"; 
$query_user = "SELECT * FROM `user_accounts` WHERE `name` LIKE '$login_user_name ' AND `password` LIKE '$login_password' "; 

나이 :

$query_admin = "SELECT * FROM `user_accounts` WHERE `id` =1 AND `name` LIKE {$login_user_name} AND `password` LIKE {$login_password}"; 
$query_user = "SELECT * FROM `user_accounts` WHERE `name` LIKE {$login_user_name} AND `password` LIKE {$login_password}"; 
+0

대단히 감사합니다! – NSanjay

+0

mysql_query() 함수가 false를 반환 함 쿼리 구문을 확인하십시오. –

+0

쿼리 구문을 실행하여 확인하기 전에이를 인쇄 할 수 있습니다 –

1

phpMyAdmin과 관련이 있습니까?

. '으로 줄을 끝내면 안됩니다. 그것이 당신에게 구문 오류를주는 것입니다.

그냥 제거하면 문제가 없습니다.

0

테스트하지 않았습니다. 끝에 많은 사람들에게 '있는 것처럼 보입니다.

'SELECT * FROM `user_accounts` WHERE `id` =1 AND `name` LIKE ' . $login_user_name . ' AND  `password` LIKE ' . $login_password ;