php – 简单的登录检查密码
|
我在这做错了什么:
<?php
if (isset($_POST['submitted'])) {
$errors = array();
require_once ('mysql_connect.php');
session_start();
$username = $_POST["username"]; // This is the inputted username from the form in Login.html
$password = $_POST["password"]; // This is the inputted password from the form in Login.html
if (empty($errors)) {
$query="SELECT username FROM users WHERE username='$username' AND password='SHA($password)'";
$result = mysql_query($query);
// Mysql_num_row is counting table row
if (mysql_num_rows($result) == 1) {
$_SESSION["username"] = $username; // Creates a cookie saving the username
$_SESSION["loggedIn"] = true; // Creates a cookie saying the user is logged in
// Show thank you message
echo '<h3 style="color:green;">Thank You!</h3>
<span style="color:green;">You have been logged in.</span>';
} else {
echo '<font color="red">You could not be logged in,please make sure your username and password is correct.</font>';
foreach ($errors as $msg) {
echo " - <font color="red">$msg</font><br />n";
}
}
} else {
echo '<font color="red"><h3>Error!</h3>
The following error(s) occured:<br /></font>';
foreach ($errors as $msg) {
echo " - <font color="red">$msg</font><br />n";
}
}
}
?>
我得到一个: Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /login.php on line 19 我的密码是否正确? 解决方法
问题是您的MySQL查询导致错误,这意味着您的$result实际上不包含结果资源.
您需要在查询中删除来自SHA($password)的”,而是将它们放在密码值周围,如下所示: $query="SELECT username FROM users WHERE username='$username' AND password=SHA('$password')";
这取决于密码在插入数据库时??如何进行哈希处理. MySQL的
这也和PHP的 附注 >您应该使用PHP的 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
