Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: функция password()
 
 автор: shine   (03.07.2009 в 15:15)   письмо автору
 
 

Помогите,пожалуйста, с одной проблемой.Я регистрирую пользователей на своем сайте, их имена , пароли и 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() не получается,регистрируется нормально,но стоит мне выйти из моего аккаунта и снова войти этим же ником и паролем,не получается.Почему?Может проблема не в коде,а где нибудь в настройках,что делать?

  Ответить  
 
 автор: Trianon   (03.07.2009 в 15:58)   письмо автору
 
   для: shine   (03.07.2009 в 15:15)
 

Если контент параметров функций обработан add_slashes() , то по идее всё должно работать.
Если нет - скрипт подвержен SQL-инъекциям со всеми вытекающими.

Скрипт может не работать из-за того, что поле passwd слишком короткое - недостаточно большое для хранения хеша. (символов 50)

  Ответить  
 
 автор: GeorgeIV   (03.07.2009 в 16:50)   письмо автору
 
   для: Trianon   (03.07.2009 в 15:58)
 

-

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования