页头重定向前页面加载,但仍然运行SQL


Header redirects BEFORE page is loaded, but still runs SQL

我试图让注册我的网站的人能够通过"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"); 
            }
        }
            ?>

我认为这是因为$_POST["newpw"] == $_POST["confirmpw"]时,他们没有定义,所以添加:

if((isset($_POST["newpw"]) && isset($_POST["confirmpw"]))&&  $_POST["newpw"] == $_POST["confirmpw"])