function updatePassword($id,$npassword)
{
if(mysql_query("UPDATE `users` SET `password`='".$npassword."' WHERE `id`=".$id))
return true;
else
return false;
}
<div class="settingform">
<form action="setting.php?update=password" method="post">
<h2>Past Password:</h2> <input type="password" maxlength="100" name="p1" value="" /><br />
<h2> New Password:</h2> <input type="password" maxlength="100" name="p2" value="" /><br />
<input type="submit"name="newpasswordSubmit" value="Save" /><br /><br />
</form>
<?php
if(isset($_GET['update']) && $_GET['update']=="password")
{
$ppassword = trim(mysql_real_escape_string(md5($_POST['p1'])));
$npassword = trim(mysql_real_escape_string(md5($_POST['p2'])));
$errors = array();
if(strlen($npassword)>100)
$errors = "your EMAIL is too long";
if($ppassword !== $password)
$errors = "Password did not match";
if(empty($errors))
{
强文本if(updatePassword($ settingUsersData ['id'],$ npassword)) echo“更新!”;
else
echo "An Error Has Occurred!";
}
else
foreach ($errors as $e)
echo $e."<br/>";
}
?>
</div>
答案 0 :(得分:0)
我认为问题在于您的更新功能 从字段名称中删除引号。
function updatePassword($id,$npassword)
{
$sql = "UPDATE users SET password='".$npassword."' WHERE id=".$id);
$result=mysqli_query($connection, $sql)
$affected_rows=mysqli_affected_rows($result);
if($affected_rows==1){
return true;
}else{
return true;
}
}
我无法在代码中看到您调用此函数的位置。必要时调用该功能。 (请不要使用mysql。自PHP 5.5.0起,它已被弃用,将来将被删除。)