我试图让注册我网站的人能够通过“change-password.php?pid=(他们的唯一 ID)”来更改他们的密码。代码如下:
<?php
// Parse the form data and add inventory item to the system
if ($_POST["newpw"] == $_POST["confirmpw"]) {
$pid = $_SESSION["pid"];
$newpw = mysql_real_escape_string($_POST['confirmpw']);
$sql = mysql_query("UPDATE stats SET password='$newpw' WHERE pid='$pid'");
$confirmation = "Thank You; your password has now been changed.";
echo "<SCRIPT LANGUAGE='JavaScript'>
window.alert('$confirmation')
window.location.href='playerparent-profile.php?pid=$pid';
</SCRIPT>";
exit();
} else {
header("location: change-password.php?pid=$pid");
}
?>
我遇到的问题是,在页面加载之前,它的行为就好像已经给出了新密码一样,因此它会立即发出警报并将他们带回到他们的个人资料页面。它正在运行 SQL,因为数据库中的密码变为空白,但是什么导致页面无法加载?
以下是密码字段的 HTML:
<form onSubmit="return validate()" action="change-password.php" enctype="multipart/form-data" name="myForm" id="myForm" method="post">
<div class="clearfix colelem" id="pu20726"><!-- group -->
<div class="grpelem" id="u20726"><!-- simple frame --></div>
<div class="clearfix grpelem" id="u20724"><!-- group -->
<div class="clearfix grpelem" id="u20725-4"><!-- content -->
<p>CHANGE PASSWORD</p>
</div>
</div>
</div>
<div class="clearfix colelem" id="pu20727-4"><!-- group -->
<div class="clearfix grpelem" id="u20727-4"><!-- content -->
<p>OLD PASSWORD:</p>
</div>
<div class="grpelem"><input type="text" required id="u20729" name="oldpw" title="Fill in your old password. This field is required" class="form-element form-element-medium text-element" /><!-- simple frame --></div>
</div>
<div class="clearfix colelem" id="pu20728-4"><!-- group -->
<div class="clearfix grpelem" id="u20728-4"><!-- content -->
<p>NEW PASSWORD:</p>
</div>
<div class="grpelem" ><input type="password" required id="u20730" name="newpw" title="Fill in your old password. This field is required" class="form-element form-element-medium text-element" /><!-- simple frame --></div>
</div>
<div class="clearfix colelem" id="pu20733-4"><!-- group -->
<div class="clearfix grpelem" id="u20733-4"><!-- content -->
<p>CONFIRM NEW PASSWORD:</p>
</div>
<div class="grpelem"><input type="password" required id="u20735" name="confirmpw" title="Fill in your old password. This field is required" class="form-element form-element-medium text-element" /><!-- simple frame --></div>
</div>
<div class="colelem" id="u20737"><!-- simple frame --></div>
</div>
<div class="clearfix grpelem" id="u20738"><!-- group -->
<div class="clearfix grpelem" id="u20739-4"><!-- content -->
<p><a href="#" onclick="document.getElementById('myForm').submit();">Change Password</a><p>
</form>
知道我做错了什么吗?
最佳答案
<form onSubmit="return validate()" action="change-password.php" enctype="multipart/form-data" name="myForm" id="myForm" method="post">
<!-- Your code -->
<p><a href="#" name="test" onclick="document.getElementById('myForm').submit();">Change Password</a><p>
</form>
为您的<a>
添加一个名字
<?php
// Parse the form data and add inventory item to the system
if ($_POST['test'])
{
if ($_POST["newpw"] == $_POST["confirmpw"]) {
$pid = $_SESSION["pid"];
$newpw = mysql_real_escape_string($_POST['confirmpw']);
$sql = mysql_query("UPDATE stats SET password='$newpw' WHERE pid='$pid'");
$confirmation = "Thank You; your password has now been changed.";
echo "<SCRIPT LANGUAGE='JavaScript'>
window.alert('$confirmation')
window.location.href='playerparent-profile.php?pid=$pid';
</SCRIPT>";
exit();
} else {
header("location: change-password.php?pid=$pid");
}
}
?>
关于javascript - 标题在页面加载之前重定向,但仍然运行 SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31967310/