【发布时间】:2014-03-23 10:22:17
【问题描述】:
当用户选择他们的帐户激活链接时,他们会被带到一个网页,其中包含欢迎消息,并要求他们更新其帐户详细信息(设置自己的密码等)。 目前,欢迎请求工作正常,我的代码识别密码(显示在 URL 代码中)并打印用户名。但是,当用户选择“提交”按钮以更新表单中的详细信息时,我的问题似乎出现了。密钥的变量似乎下降了,即使我的 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";
?>
感谢您对此事的任何建议,以便我可以根据用户更新结果。 提前致谢。
【问题讨论】: