|
|
|
| Помогите,пожалуйста, с одной проблемой.Я регистрирую пользователей на своем сайте, их имена , пароли и email храню в таблице под названием user.Хочу,чтобы пароли зашифровывались MySql функцией password().Регистрируя, я пишу
function register($username, $email, $password)
{
$conn = db_connect();
if (!$conn)
return 'Could not connect to database server - please try later.';
$result = mysql_query("select * from user where username='$username'");
if (!$result)
return 'Could not execute query';
if (mysql_num_rows($result)>0)
return 'That username is taken - go back and choose another one.';
$result = mysql_query("insert into user values
('$username', password('$password'), '$email')");
if (!$result)
return 'Could not register you in database - please try again later.';
return true;
}
И соответственно проверяю правильность данных , введенных пользователем, следующей функцией.
function login($username, $password)
{
$conn = db_connect();
if (!$conn)
return false;
$result = mysql_query("select * from user
where username='$username'
and passwd = password('$password')");
if (!$result)
return false;
if (mysql_num_rows($result)>0)
return true;
else
return false;
}
Не знаю в чем проблема,но когда я пароли хронила без функции password(), у меня все получалось,но с password() не получается,регистрируется нормально,но стоит мне выйти из моего аккаунта и снова войти этим же ником и паролем,не получается.Почему?Может проблема не в коде,а где нибудь в настройках,что делать? | |
|
|
|
|
|
|
|
для: shine
(03.07.2009 в 15:15)
| | Если контент параметров функций обработан add_slashes() , то по идее всё должно работать.
Если нет - скрипт подвержен SQL-инъекциям со всеми вытекающими.
Скрипт может не работать из-за того, что поле passwd слишком короткое - недостаточно большое для хранения хеша. (символов 50) | |
|
|
|
|
|
|
|
для: Trianon
(03.07.2009 в 15:58)
| | - | |
|
|
|