1

Тема: Восстановление пароля

Здравствуйте Всем. Прошу подскажите, где что не так. Хочу сделать страницу восстановления пароля, но данный код вписывает рядом в БД как нового пользователя с таким же email и другим паролем, а не меняет пароль на новый у ранее зарегистрированным.

 <?
$email=trim($_POST['email']);
    
    if($email=="") $err = $err."Не указан e-mail <br>"; 
    if(_email($email)==false) $err = $err."Некорректный e-mail<br>";
    
     $r = mysql_query ("SELECT * FROM akk WHERE email='".$email."' AND id_akk != '".$_SESSION['ID_P'][1]."'") or die(mysql_error());
$nr = mysql_num_rows($r);
if($nr>2) $err = $err."Пользователь с таким e-mail уже зарегистрирован<br>";
    
    if (md5($str) === 'xRen41@Wav7!n,e91p?a.r99liut#6yh') $str = $str."Введите пароль<br>";
    else $pass=trim($_POST['pass']);
    
     if($pass=="") $err = $err."Не указан пароль <br>";
    
    elseif (!preg_match("/\A(\w){7,21}\Z/", $_POST['pass'])) {
 echo '<br><font color="red"><img border="0" src="error.gif" alt="Пароль слишком короткий!"> Пароль должен содержать не менее 7 символов, латинские буквы (ПРОПИСНЫЕ,строчные) и цифры.  </font>';
 exit(); 
 }
    
    if ($err=="")
        {
    
        mysql_query("INSERT INTO akk (akk, email, pass, tel, contakt, blok, id_dostup, data)  VALUES ('".$name."', 
        '".$email."', '".$pass."', '".$tel."', '".$contakt."', '0', '".intval($default_dostup)."', NOW())");
    
    $ins=mysql_insert_id();
    
?>

2

Re: Восстановление пароля

Для обновления строки в базе данных необходимо использовать запрос UPDATE. Предварительно необходимо иметь идентификатор строки, которую необходимо изменить.

ВКонтакте Facebook Twitter

3

Re: Восстановление пароля

Hanut  - насчет UPDATE, понятно, спасибо. А как делается идентификатор строки ?

4

Re: Восстановление пароля

Идентификатор строки - это уникальное поле в таблице, обычно автоматически увеличивающийся на единицу порядковый номер, как правило имеет наименование id.

ВКонтакте Facebook Twitter

5

Re: Восстановление пароля

Такое поле в таблице есть, присваивает № , но почему по email не находит этот номер. Может сдесь что не правильно прописал ?

mysql_query("UPDATE akk SET email='".$email."', 
    pass='".md5($pass)."', pass='".$pass."' 
    WHERE id_akk='".$_SESSION['ID_P'][1]."'");