2013-04-18 3 views
0

Я создал систему входа в систему, и теперь я пытаюсь добавить код сброса пароля. Кажется, что все работает нормально, за исключением того, что оно не записывается в базу данных Mysql. Любая помощь будет оценена.Мой код не записывается в базу данных mysql

<?php 
if(isset($_POST['submit'])){ 
$mycode = ($_POST['code']); 
$mynewpass = ($_POST['password']); 
$myconfpass = ($_POST['password1']); 

    //checks if all fields are filled 
if((empty($mynewpass)) || (empty($myconfpass)) || (empty($mycode))){ 
    $errors[] = '<center>All fields must be filled in.<center>'; 
} 
    //check if passwords match 
if ($mynewpass != $myconfpass){ 
    $errors[] = '<center>Your passwords do not match</center>'; 
} 
     if (!empty($errors)){ 
    foreach($errors as $error){ 
     echo '<strong>',$error ,'</strong><br />'; 
    } 
    }else{ 

include 'Grubconfig.php'; 

mysql_connect($host, $user, $password) or die(mysql_error()); 
mysql_select_db($database) or die(mysql_error()); 

// change password 
$mychk = mysql_query(" SELECT * FROM customer WHERE passreset = '$mycode' "); 

if(mysql_num_rows($mychk) == 1) 

    mysql_query("UPADTE customer SET Password='$mynewpass' WHERE passreset='$mycode'"); 
    mysql_query("UPADTE customer SET passreset='0' WHERE passreset='$mycode'"); 

    echo '<center>Your password has been reset Please click <a href="Grublogin.php">here !</a><center>'; 
    } 

} >

ответ

3

Опечатки:?

mysql_query("UPADTE customer SET Password='$mynewpass' WHERE passreset='$mycode'"); 
       ^^^^^^--- UPDATE (swap D and A) 

Никогда не полагайтесь на ваши запросы были успешными. Всегда проверяйте наличие ошибок:

$result = mysql_query($sql) or die(mysql_error()); 
          ^^^^^^^^^^^^^^^^^^^^^^-- bare minimum error handling 

Вы также широко открыты для SQL injection attacks. Поэтому вам лучше почитать о них и исправить отверстия перед развертыванием этого кода.

+0

+1 Для Eagle EYE –

+0

Большое спасибо, иногда вам нужны свежие глаза. Перед развертыванием я рассмотрю SQL-инъекцию. большое спасибо –

0
if(mysql_num_rows($mychk) == 1) 

mysql_query("UPADTE customer SET Password='$mynewpass' WHERE passreset='$mycode'"); 
mysql_query("UPADTE customer SET passreset='0' WHERE passreset='$mycode'"); 
  1. UPDATE написано неправильно
  2. У вас нет аа рисунок кронштейн открытой if (...) { это обязанного, так как у вас есть 2 заявления

Вы можете вставить их в один запрос:

UPDATE customer SET password = '$mynewpass', passreset = 0 WHERE passreset = '$mycode'; 

Однако лучше перейти на взаимодействие с базой данных к MySQLi или PDO. Библиотека mysql теперь устарела.

Смежные вопросы