【发布时间】:2015-03-17 04:06:46
【问题描述】:
我正在制作一个名为 changepassword.php 的 php 文件,该文件的唯一目的是允许用户更改密码。但是,当他们通过表单更改密码时,框字段会清除,我会收到回声警告回声“密码框为空!”。这似乎不想更新用户的密码,我不知道该怎么做。我是这种语言的新手,所以不要期望太多。我将非常感谢一些建设性的意见,以帮助我更好地编写 php。
<?php
session_start();
#error_reporting(E_ALL); ini_set('display_errors', 1);
require_once('connect.php');
require_once "lib.php";
require_once "utils.php";
if(isset($_POST['submit']) && $_SESSION['active']===true)
{
if(!empty($_POST['OldPassword'])&&
!empty($_POST['NewPassword'])&&
!empty($_POST['NewPassword1']))
{
$OldPassword = mysqli_real_escape_string($link,htmlentities($_POST['OldPassword']));
$NewPassword = mysqli_real_escape_string($link,htmlentities($_POST['NewPassword']));
$NewPassword1 = mysqli_real_escape_string($link,htmlentities($_POST['NewPassword1']));
$EmailAdress = $_SESSION['EmailAdress'];
$sql = "SELECT * FROM users WHERE EmailAddress='$EmailAddress'";
if($result = mysqli_query($link, $sql))
{
while($row = mysqli_fetch_array($result, MYSQLI_ASSOC))
{
$temp1=$row['Password'];
if($row['Password'] != $OldPassword)
{
echo "<div id='change_error1'>* This Does Not Match Previous Password!<br></div>";
}
}
if($NewPassword != $NewPassword1)
{
echo "<div id='change_error2'>* You Passwords DO NOT Match!</div>";
}
if($temp1 == $OldPassword && $NewPassword == $NewPassword1)
{
$sql = "UPDATE users SET Password='$NewPassword' WHERE EmailAddress='$EmailAddress'";
if($result = mysqli_query($link, $sql))
{
header("Location: profile.php");
echo "<strong>YOURE PASSWORD HAS BEEN UPDATED!</strong>";
}
}
}
}
else
{
echo "<div id='change_error3'>A Password Box was Left Empty!</div>";
}
}
?>
<html>
<head>
<title>Change Password</title>
</head>
<br></br>
<br></br>
<body class="body">
<div id="wrapper">
<div id="header">
<br>
<h1> PHP Learning Course </h1>
<br>
<?php require_once "left.php" ?>
</div>
<div id="change">
<div id="change_name">
<h3> Change Password</h3>
</div>
<p>
<div id='change_form'>
<form action='changepass.php' method='POST'>
Old Password:<br> <input name='OldPassword' type='password'/></br>
<br>
New Password:<br> <input name='NewPassword' type='password'/></br>
<br>
Confirm Password:<br> <input name='newpass1' type='password'/></br>
<br>
<input name='submit' type='submit' value='Change Password' />
</form>
</p>
</div>
</div>
<!-- end main div -->
</div>
<!-- end wrapper div -->
</body>
</html>
【问题讨论】:
-
在打开 PHP 标记后立即将错误报告添加到文件顶部,例如
<?php error_reporting(E_ALL); ini_set('display_errors', 1);,然后是其余代码,以查看它是否产生任何结果,以及 @987654323 @到mysqli_query()。你会看到错误。 -
未定义变量:第 38 行的 temp1;未定义的变量:第 19 行和第 20 行的 EmailAddress。我现在卡住了。
-
你去。现在您知道要做什么并修复它了;定义它们。下面也有人给了你答案。你可以问他们。我要去啦啦之地。
-
你能详细说明一下在哪里吗?
-
从第 20 行开始,向后转到第 1 行。这20行代码里面的错误。
标签: php mysqli error-handling