При регистрации сохраняю данные пользователя следующим образом: [sql]INSERT INTO user VALUES(NULL, '$userid', password('$userpassword'), '$username', .....)[/sql] а при следующем запросе [sql]select * from user where userid='$userid' and passwd = password('$userpassword')[/sql] С данными пользователя, не находит в базе данных не одной строчки. Что тут неправильно с password(''). Или просто при создании таблицы надо что-то дополнительное указывать.
Goryn mysql> select password(1); +-------------------------------------------+ | password(1) | +-------------------------------------------+ | *E6CC90B878B948C35E92B003C792C46C58C4AF40 | +-------------------------------------------+ 1 row in set lecas после вставки данных mysql_error() что выдает?
попробовал mysql> select password(1); получил *E6CC90B878B948C35E92B003C792C46C58C4AF40 нет там mysql_error(), или я что то не понял???
а как посмотреть??? $parol=mysql_result($result,$i, password('userpassword'); так ему синтаксис не нравится как нужно???
пароли не хранят в базе хранят "слепок" с пароля см.: функции sha1 и md5 http://ru.wikipedia.org/wiki/Хеширование
Разобрался просто поле userpassword было создано как varchar(20), а при его шифровки значение получалось немного больше. поэтому он и не находил соответствующих строк данному запросу. =))))
PHP: <? // все просто - вместо пароля взде используем слепок с него $passwordSha1 = sha1($userPassword); $sql = "INSERT INTO table(.., password) VALUES('$passwordSha1')"; // когда человек логиница - сверяем слепок $passwordSha1 = sha1($userPassword); $sql = "SELECT password = '$passwordSha1' AS is_valid_password FROM table WHERE ..."; Таким образом система ничего не знает о пароле. Единственная проблема в том что алгоритмы md5 и sha1 (есть и другие алгоритмы хеширования, но эти наиболее популярны и идут в составе PHP) подбираются грубой силой - если человек узнает слепок он сможет подобрать пароль - весь прикол частично теряет свою красоту. Можно добавить проблем злоумышлинику - домешав в пароль перед снятием слепка уникальную строку. Таким образом, ему нужно будет знать не только слепок - еще алгоритм и уникальную строку. В таком случае, про исмпользование стандартных средств подбора пароля ему можно будет забыть.