嗨,大家好我只是一个新的程序员,你可以帮我这个, 我无法更改密码并继续在回声"密码更改成功";
上说错误请帮帮我。 谢谢。
<?php
if(isset($_POST["login"]))
{
if(!empty($_POST['oldpass']) && !empty($_POST['password']))
{
$oldp=$_POST['oldpass'];
// connection
$con=mysqli_connect('localhost','root','') or die(mysqli_error());
mysqli_select_db($con,'databaseprac') or die("cannot select DB");
// select database
$query=mysqli_query($con,"SELECT * FROM tblusers WHERE password='".$oldp."'");
$numrows=mysqli_num_rows($query);
if($numrows!=0)
{
while($row=mysqli_fetch_assoc($query))
{
$dbpassword=$row['password'];
//mysqli_close()
}
if($oldp == $dbpassword)
{
$sql="UPDATE tblusers SET password='$oldp' WHERE id='1';
$result=mysqli_query($sql);
if($result)
{
echo "<h4>Password Change Successful</h4>";
}
}
}
else {
echo "<h4>Invalid Old Password</h4>";
}
}
else {
echo "<h4>All fields are required.</h4>";
}
}
?>
答案 0 :(得分:1)
句子末尾没有"
:
$sql="UPDATE tblusers SET password='$oldp' WHERE id='1';
您还需要在此行中添加$con
:
$result=mysqli_query($sql);
像这样:
$result=mysqli_query($con,$sql);
答案 1 :(得分:1)
您错过了implicit
:
"
提示:您应该阻止$sql="UPDATE tblusers SET password='$oldp' WHERE id='1';
:
MySQL Injection
答案 2 :(得分:0)
替换以下代码:
$sql="UPDATE tblusers SET password='$oldp' WHERE id='1';
$result=mysqli_query($sql);
带
$oldp = mysqli_real_escape_string ($con, $row['oldpass']);
$sql="UPDATE tblusers SET password='$oldp' WHERE id='1'";
$result=mysqli_query($con,$sql);
"
答案 3 :(得分:0)
这是你的代码完全正常工作。
Microsoft.ACE.OLEDB.12.0
使用一些文本编辑器,如sublime和任何一个。