当用户选择他们的帐户激活链接时,他们会被带到一个带有欢迎信息的网页,并请求他们更新帐户详细信息(设置自己的密码等等)。目前,欢迎请求工作正常,我的代码识别密码(显示在URL代码中)并打印用户名。但是,当用户选择“submit”按钮来更新表单中的详细信息时,我的问题似乎就出现了。passkey的变量似乎有所下降,提交时,尽管我的PHP消息告诉我,但没有将详细信息存储到数据库中。
这是我的密码:
<?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";
?>我很感激任何关于这个问题的建议,以便我可以根据用户更新结果。提前谢谢。
发布于 2014-03-23 10:26:07
将表单中的隐藏字段添加为
<input type="hidden" name="passkey" value = "<?php echo $passkey ;?>">因此,一旦提交了表单,您就可以将数据检索为
$passkey = $_POST["passkey"]https://stackoverflow.com/questions/22589555
复制相似问题