这个代码块应该使用已经存储在表中的密码从我的数据库中检索数据。对于一些通过web表单输入的密码,它的行为是正确的。对其他人来说,情况并非如此。我花了很长时间试图修复它,但却做不到。
<?php
include('connect.php');
$login = $_POST['login'];
$query = mysql_query("select * from secure_table where myPass = $login");
$row = mysql_fetch_array($query));
if( $_POST['login'] = $row['myPass'])
{
echo"<div align ='center'>";
echo "Your Details are:";
echo $row['surName'];
echo"<br/>";
echo $row['firstName'];
echo"<br/>";
echo $row['myDepartment'];
echo"</div>";
}
else{
echo "<div align = 'center'>;
<h2>Error in Password</h2>
</div>";
}
mysql_close($connection)
?>发布于 2014-10-07 03:19:17
你也需要改变这一行
if( $_POST['login'] = $row['myPass'])到这个
if( $_POST['login'] == $row['myPass'])//使用双相等进行比较。单等号是赋值运算符。
$query = mysql_query("select * from secure_table where myPass = $login"); 如果$login不是整数,则查询错误。
改变到这个
$query = mysql_query("select * from secure_table where myPass = '$login'");检查这个链接
http://dev.mysql.com/doc/refman/5.0/en/identifier-qualifiers.html
)在这行中删除这个
$row = mysql_fetch_array($query));到这个
$row = mysql_fetch_array($query);在编写和时,惟一的ChemistryBlob指出了,从该行中移除line语句中的分号;
echo"<div align = 'center'>;还有一个人认为,mysql_函数是贬值的。
使用mysqli_函数或PDO
对于mysqli_函数,请检查此链接http://php.net/manual/en/book.mysqli.php
对于PDO,请检查此链接http://php.net/manual/en/book.pdo.php
https://stackoverflow.com/questions/26228024
复制相似问题