javascript - 标题在页面加载之前重定向,但仍然运行 SQL

标签 javascript php html 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"); 
            }
        }
            ?>

关于javascript - 标题在页面加载之前重定向,但仍然运行 SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31967310/

相关文章:

javascript - 添加项目的对象长度

php - Codeigniter 将数据表传输到表

php - 使用 Laravel 4 遍历多个请求文件

php - 在没有唯一键的表上查询 MySQL

javascript - 如何使用不同页面上的复选框更新进度条

javascript - 如何使用 hello.js 获取用户电子邮件 ID?

javascript - 布伦特里客户端 : form submission failure

javascript - AngularJS 的堆栈跟踪?

javascript - 引导日期选择器位置

javascript - 如何设置/获取div输入标签值?