php / mysql Обновление не работает

Я тестирую процесс обновления пароля с помощью php / mysql. Я не получаю никаких ошибок при отправке, но мои значения не обновляются. Есть идеи?

if (!empty($_POST['password']) && !empty($_POST['password2'])){ $id = $_GET['id']; $password = md5(mysql_real_escape_string($_POST['password'])); $sql = mysql_query("UPDATE users SET `Password` = '$password' WHERE UserID = '$id'"); if ($sql){ echo $password, $id; }else{ echo mysql_error(); } } 

Просто догадка. Попробуйте удалить кавычки вокруг переменной, $id :

 if (!empty($_POST['password']) && !empty($_POST['password2'])){ $id = $_GET['id']; $password = md5(mysql_real_escape_string($_POST['password'])); $sql = mysql_query("UPDATE users SET `Password` = '$password' WHERE UserID = {$id}"); if ($sql){ echo $password, $id; }else{ echo mysql_error(); } } 

Вы объединили $_GET и $_POST . Попробуйте изменить $_GET['id'] на $_POST['id'] . Если это не сработает, попробуйте добавить

 var_dump( $_POST ); var_dump( $_GET ); 

к вашему коду. Это может помочь вам отладить.

mysql_real_escape_string возвращает TRUE/FALSE

просто используйте его так

 if(mysql_real_escape_string($_POST['password'])) { $password = md5($_POST['password']); } 

Он будет работать сейчас!

Предложение :

Идите в одну сторону. Либо GET, либо POST

Казалось, это сработало:

 $id = $_REQUEST['id']; if (!empty($_POST['password']) && !empty($_POST['password2'])){ $password = md5(mysql_real_escape_string($_POST['password'])); $sql = mysql_query("UPDATE users SET Password = '".$password."' WHERE UserID = '".$id."'"); if ($sql){ echo "Password reset."; echo "<meta http-equiv='refresh' content='1;index.php' />"; }else{ echo mysql_error(); } }else{ ?> <form role="form" action="[Leave blank]" method="post" name="resetpassword" id="resetpassword"> 

Это правильный идентификатор, который вы пытаетесь обновить?