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的 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |