2015-02-26 4 views
-2

Моя ошибка:Синтаксическая ошибка, неожиданный '' SELECT * FROM членов WHERE е»(T_CONSTANT_ENCAPSED_STRING)

syntax error, unexpected ''SELECT * FROM members WHERE e' (T_CONSTANT_ENCAPSED_STRING) in C:\xampp\htdocs\New folder (2)\loginexec.php on line 63

Я уже пробовал:

$qry="SELECT * FROM members WHERE email='$login' AND password='$password'"; 

, но по-прежнему возникают ошибки. Как я могу это исправить?


 
\t $login = clean($_POST['user']); 
 
\t $password = clean($_POST['password']); 
 
\t 
 
\t //Create query 
 
\t mysql_query 'SELECT * FROM members WHERE email="$login" AND password="$password"'; 
 
\t $(result=mysql_query($qry); 
 
\t //while($row = mysql_fetch_array($result)) 
 
// { 
 
// $level=$row['position']; 
 
// } 
 
\t //Check whether the query was successful or not 
 
\t if($result) { 
 
\t \t if(mysql_num_rows($result) > 0) { 
 
\t \t \t //Login Successful 
 
\t \t \t session_regenerate_id(); 
 
\t \t \t $member = mysql_fetch_assoc($result); 
 
\t \t \t $_SESSION['SESS_MEMBER_ID'] = $member['id']; 
 
\t \t \t $_SESSION['SESS_FIRST_NAME'] = $confirmation; 
 
\t \t \t 
 
\t \t \t session_write_close(); 
 
\t \t \t //if ($level="admin"){ 
 
\t \t \t header("location: order.php"); 
 
\t \t \t exit(); 
 
\t \t \t //} 
 
\t \t \t //else{ 
 
\t \t \t //header("location: front.php"); 
 
\t \t \t //exit(); 
 
\t \t \t //} 
 
\t \t }else { 
 
\t \t \t //Login failed 
 
\t \t \t $errmsg_arr[] = 'Invalid Email add or password'; 
 
\t \t \t $errflag = true; 
 
\t \t \t if($errflag) { 
 
\t \t $_SESSION['ERRMSG_ARR'] = $errmsg_arr; 
 
\t \t session_write_close(); 
 
\t \t header("location: loginindex.php"); 
 
\t \t exit(); 
 
\t } 
 
\t \t } 
 
\t }else { 
 
\t \t die("Query failed"); 
 
\t }

+1

'mysql_query 'SELECT * FROM ...' Разве это не слишком очевидно ?! – Rizier123

+0

'mysql_query' - это недопустимое использование' mysqli' –

+1

Можем ли мы видеть, что делает 'clean()'? Я обеспокоен тем, что у вас есть уязвимость SQL-инъекций в этом коде. Кроме того, не храните пароли в виде открытого текста - еще одна проблема с безопасностью. Хеши их. – halfer

ответ

0

Вы не назначал запрос к переменной, вы дали

mysql_query 'SELECT * FROM members WHERE email="$login" AND password="$password"'; 

назначить запрос к переменной, а затем попробовать ..

$qry="SELECT * FROM members WHERE email=\"$login\" AND password=\"$password\""; 

один раз попробуйте это ... и я рекомендую использовать mysqli или PDO, вместо mysql, сога mysql устарела ...

0

Попробуйте что-то вроде этого:

$result = mysql_query("SELECT * FROM members WHERE email= '".$login."' AND password='".$password."'"); 
0

mysql_query является функцией, так что вам нужно заключить между скобкой аргументами:

$result = mysql_query(
    "SELECT * FROM members WHERE email='$login' AND password='$password'" 
); 

И помните: двойные кавычки (") разрешают переменные, такие как $ login и $ password (с ними вы использовали mysql_real_escape_string? ясная функция не ясна, будьте осторожны), но простые кавычки (') этого не делают.

Удачи вам!

+0

Спасибо @Kheshav Sewnundun за научить меня, как добавить ссылки :) – OscarGarcia

0

Ну я бы не использовать свои пароли, как это, но, кажется, что вам нужно сделать mysql_query с 2-мя параметрами является mysql_query (подключение к базе данных, запрос)

И я должен сказать, начать обучение MySQLi вместо MySQL

0

Попробуйте этот запрос

$qry="SELECT * FROM members WHERE email=$login AND password=$password"; 
Смежные вопросы