2017-02-10 9 views
0

У вас проблема с PHP.php дает значение, отличное от того, что упоминается

Я использовал setcookie(), чтобы сохранить значение, когда кто-то входит в систему. Значение cookie - «fred», а его имя - «имя», а на другой странице я использую cookie, я вызываю $ _cookie ['name' ] и распечатайте его и появится «fred». Но проблема в том, что я использую переменную cookie в запросе.

$name = $_cookie['name']; 
mysql_query("SELECT * FROM names WHERE name LIKE '$name' ORDER BY id "); 

, если я это сделать, $ имя не приходит, как Фреда, я знаю это, потому что я заменил $ значение имени на запрос Фреда и запрос работает! Так ясно, что проблема заключается в получении переменной как чистой строки. Я попробовал strlen, чтобы вытащить последний символ, если есть пустое пространство, я также пробовал использовать ltrim(), rtrim(). Больше нет идей. Помоги пожалуйста!

+0

Что происходит, когда вы запускаете 'эхо«SELECT * FROM имен WHERE имя LIKE ' $ name 'ORDER BY id ";'? Кроме того, '$ name = $ _COOKIE ['name'];' Почему вы делаете поиск 'LIKE' без подстановочных знаков? Используйте 'name = '$ name'' –

+0

Тот же результат. Я пробовал также с равными не похожими и тем же результатом. если я запускаю запрос в эхо, я получил ошибку «Идентификатор ресурса № 5» –

+0

, что отображается, когда u 'echo $ name' выше – affaz

ответ

0

Я получаю эту ошибку, потому что я писал запрос следующим образом:

SELECT ALL FROM USERS WHERE NAME LIKE "NAME" ORDER BY ID 

вместо:

SELECT BLABLA WHERE BLA LIKE 'BLA' ORDER BLA