首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP在提交变量'passkey‘时删除,停止对数据库的更新

PHP在提交变量'passkey‘时删除,停止对数据库的更新
EN

Stack Overflow用户
提问于 2014-03-23 10:22:17
回答 1查看 78关注 0票数 0

当用户选择他们的帐户激活链接时,他们会被带到一个带有欢迎信息的网页,并请求他们更新帐户详细信息(设置自己的密码等等)。目前,欢迎请求工作正常,我的代码识别密码(显示在URL代码中)并打印用户名。但是,当用户选择“submit”按钮来更新表单中的详细信息时,我的问题似乎就出现了。passkey的变量似乎有所下降,提交时,尽管我的PHP消息告诉我,但没有将详细信息存储到数据库中。

这是我的密码:

代码语言:javascript
复制
<?php
session_start();
include "includes/header.php";
include "includes/connect.php";
?>
<link rel="stylesheet" type="text/css" href="css/login.css">
<div class="jumbotron">
    <h1>New users</h1>
    <p>Register your details</p>
</div>
    <?php
     $_SESSION['passkey']=$passkey;
     $passkey=$_GET['passkey'];

    $sql1="SELECT FirstName FROM users WHERE confirm_code ='$passkey'";
    $result1=mysqli_query($conn, $sql1);
    $count = mysqli_num_rows($result1);
    $updateactive="1";


    if ($count==1){
    $activeQuery = mysqli_query($conn, "UPDATE users SET Activate='$updateactive' WHERE confirm_code='$passkey'"); 
    if ($activeQuery) {

            $row = mysqli_fetch_row($result1);
            echo "Welcome " .$row[0]. " please update your details:";

        } else die('Invalid query: ' . mysqli_error());

    }else echo "Wrong Confirmation code";
    ?>

    <div class="container">
    <form class="form-activate" role="form" action="emailactivation.php" method="post">
        <h2 class="form-signin-heading">Register your details</h2>
        <p>*All fields are required</p>
        <input class="form-control" type="text" placeholder="Current password*" name="current_password" maxlength = "30" required autofocus>
        <input class="form-control" type="text" placeholder="New password*" name="new_password" maxlength = "30" required autofocus>
        <input class="form-control" type="text" placeholder="Confirm new password*" name="confirmnew_password" maxlength = "30" required autofocus>
        <select class="form-control" name="department_category">
            <option value="0">Department category*</option>
            <option value="1">Administrative services</option>
            <option value="3">Business Development</option>
            <option value="4">Health & Safety</option>
            <option value="5">Finance & Accounting</option>
            <option value="6">HR</option>
            <option value="7">IT</option>
            <option value="8">Legal</option>
            <option value="9">Research & Development</option>
            <option value="10">Sales</option>
            <option value="11">Science</option>
        </select>       
        <select class="form-control" name="role">
            <option value="0">Role*</option>
            <option value="1">Director</option>
            <option value="3">Manager</option>
            <option value="4">Graduate</option>
            <option value="5">Intern</option>
            <option value="6">Assistant</option>
            <option value="8">Head of department</option>
        </select>       
        <button class="btn btn-lg btn-primary btn-block" type="submit" name="submitdetails">Update details</button>  
    </form>
    </div>

    <?php
    if(isset($_POST['submitdetails'])){


    $rcpwd= trim($_POST['current_password']);
    $usrnewpwd= trim($_POST['new_password']);
    $usrconfirm_newpwd= trim($_POST['confirm_newpassword']);
    $usrdepartment=trim($_POST['department_category']);
    $usrrole=trim($_POST['role']);
        $updateactivationkey="2";
    $q2 = "SELECT * FROM users WHERE Password='$rcpwd' LIMIT 1;";
    $resultset2 = mysqli_query($conn,$q2);
    $rows2 = mysqli_num_rows($resultset2);

        if ($rows2==1){
            echo 'We will now update your details';
            //If all fields have data
        if (!empty($_POST)){

                        if($usrdepartment!=0){ 
                            if($usrrole!=0){
                echo"hello1";
                        //  $updateQuery = mysqli_query($conn,  "UPDATE users SET Password='$usrnewpwd', DepartmentID='$usrdepartment', RoleID='$usrrole' WHERE FirstName='$row[0]';"); 



        $updateQuery = mysqli_query($conn, "UPDATE users SET Activate='$updateactivationkey' WHERE confirm_code='$passkey';"); 

                            /
                            if ($updateQuery) {
                                echo 'Details have been added';



                            }else  die('Invalid query: ' .   mysqli_error());
                        }

                        else echo 'warning 1';
                    }
                    else echo 'warning2';
            } 
            else echo 'warning3'; 
        }
    else echo'<div class="login-error">Please fill in all fields</div>';
    }

    ?>
    <?php
    require "footer.php";
    ?>

我很感激任何关于这个问题的建议,以便我可以根据用户更新结果。提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-23 10:26:07

将表单中的隐藏字段添加为

代码语言:javascript
复制
<input type="hidden" name="passkey" value = "<?php echo $passkey ;?>">

因此,一旦提交了表单,您就可以将数据检索为

代码语言:javascript
复制
$passkey = $_POST["passkey"]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22589555

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档