| Спасибо за ответы, извините, что не сразу - жизнь студента - гонка!
Я вероятно поставил вопрос очень не корректно. Исправляюсь.
При построении сайта, вводятся функции регистрации, авторизации и
нужно ввести функцию или восстановления пароля, или генерации
нового, было-бы супер через мыло переходить на нужную страницу для смены пароля,
но в процессе обучения еще не достаточно знаний, и синтаксис приводит к ошибкам.
Одна из основных книг, которую изучаю -PHP 5/6 Кузнецова и Симдянова, 2010 года, где
и есть ссылка и отличные рекомендации по данному форуму. А теперь по сути:
При регистрации пароль кодируется так- с помощью функции sha1, может md5 лучше-
не знаю.
$sql = "INSERT INTO
users(user_name, user_pass, user_email ,user_date, user_level)
VALUES('" . mysql_real_escape_string($_POST['user_name']) . "',
'" . sha1($_POST['user_pass']) . "',
'" . mysql_real_escape_string($_POST['user_email']) . "',
NOW(),
0)";
Шифрование, я так понимаю, необратимое, поэтому при при восстановлении логично наверное
генерировать новый пароль как-то так -
$simvols = array ("0","1","2","3","4","5","6","7","8","9",
"a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z",
"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z");
но нужно записать его обратно в базу данных -
CREATE TABLE users(
user_id INT( 8 ) NOT NULL AUTO_INCREMENT ,
user_name VARCHAR( 30 ) NOT NULL ,
user_pass VARCHAR( 255 ) NOT NULL ,
user_email VARCHAR( 255 ) NOT NULL ,
user_date DATETIME NOT NULL ,
user_level INT( 8 ) NOT NULL ,
UNIQUE INDEX user_name_unique( user_name ) ,
PRIMARY KEY ( user_id )
) TYPE = INNODB
Запрос с файла vostparol.php вероятно может быть такой -
require 'connect.php';
include 'header.php';
echo '<div style="border:0; width:300px; height:250px; position:relative; left:270px; top:50px;">';
if($_SERVER['REQUEST_METHOD'] != 'POST')
{
echo '<form method="post" action="">
..............................................................
</form>';
//дальше обработчик ошибок -
}
else
{
$errors = array();
if(!isset($_POST['user_name']))
{
$errors[] = 'Ведите имя';
}
if(!isset($_POST['user_email']))
{
$errors[] = 'Введите email.';
}
if(!empty($errors))
{
echo 'Все поля должны быть заполнены..<br /><br />';
echo '<ul>';
foreach($errors as $key => $value)
{
echo '<li>' . $value . '</li>';
}
echo '</ul>';
}
// дальше нужны запросы правильные, на чем и застрял!!!
else
{
$sql = "SELECT user_id, user_name, user_level FROM users
WHERE user_name = '" . mysql_real_escape_string($_POST['user_name']) . "'
AND user_pass = '" . sha1($_POST['user_pass']) . "'";
$result = mysql_query($sql);
if(!$result)
{
echo 'Произошла ошибка - попробуйте позже.';
}
Дальше я пробовал по разному, но Денвер сильно ругается!!!
Если кто может помочь с данной проблемой, или найти лучшее решение,
будет прекрасно. Я думаю многие в свое время решали такую проблему,
и не все рождались программистами. | |