![]() |
Как методами Php послать запрос Sql на поиск в базе?
Авторизация в портале\форуме.
Имеется база данных пользователей. В таблице users есть столбик login и password. С регистрацией всё ясно, пользователи в базе. Авторизация... Допустим получаем методом POST: $login = "admin"; $password = "123"; К MySQL базе подключились, к таблице users тоже. Как должен выглядить sql запрос на поиск в таблице login'a и правильного к нему password'a? $query = "SELECT * FROM users"; (Вот тут уже не знаю, в самоучителе не написано :D ) NEED HELP! ______________________________________ И появилась проблема в phpmyadmin utf8 vs cp1251 В готовой таблице есть login = admin, password - 123. Я в phpmyadmin иду по ссылке "искать" (там где: Или Выполнить "запрос по примеру" (символ подстановки: "%")), значит пишу в строчке для столбика Login: admin, в строчке для столбика password: 123, меняю оператор "LIKE" на "="... а результат: MySQL вернула пустой результат (т.е. ноль рядов). (Запрос занял 0.0004 сек) Цитата:
SOS! Please! :confused: |
Не знаю зачем заставлять SQL кодировать в utf8, когда проще заранние средствами php закодировать,
а вообще, латинский алфовит и цифры в utf8 так и остаются сами собой, так что дело не в этом. Вообше не проверял, но вроде так правильно 'SELECT * FROM login WHERE login="'.utf8_encode(preg_replace('/"/','`',$login)).'"' AND password="'.utf8_encode(preg_replace('/"/','`',$pass)).'"' |
можешь так попробывать:
Код:
<?$sql="select password from users where login='$login'"; |
Какие все Эксперты собрались, кто-то кавычки регулярными выражениями вырезает, зачем-то заменяя их на другие символы, что конечно неприемлимо для нормального ресурса, а кто-то, даже не смотря на тематику сего форума, даже и не почесался об этом...
Чтобы все было корректно, стоит отключить magic_quotes_gpc и при SELECTе можно пользовать mysql_real_escape_string и еще вырезать str_replaceом пару символов, когда уточняющая информация в LIKE |
Цитата:
|
Цитата:
Причем тут кодировка вообще. У тебя весь текст вообще латинско-цифровой. Убери нафиг все кодировки из селекта. |
пепсик привет =))) рад что начинаешь вникать =)
Самоучители выбрось, http://dev.mysql.com/doc тебе в помощь. насчет твоего запроса, то оптимально будет примерно так: PHP код:
|
Цитата:
|
Цитата:
|
Цитата:
я бы сделал бы так (пхп код писать не буду просто в псевдо коде) даём запрос на даннуую таблицу пользователей и результат (массив значений) даём в цикл для обработки и обычной функцией побитного сравнения строк (strcmp или strcasecmp) сравниваем каждое значение из таблицы с введёнными значениями логина и пасса помоему получиться |
| Время: 17:36 |