有人可以帮帮我吗? 我的用户名是Blimeo,我的密码是“密码”,但是当我把我的凭据,它说:“访问被拒绝”就像我告诉它。 我100%确信我正确配置我的MySQL数据库。
<html>
<body>
<?php
echo sha1('Blimeo');
if (isset($_REQUEST['attempt'])) {
$link = mysql_connect('localhost', 'root', 'password') or die('Could not connect to database');
$user = mysql_real_escape_string($_POST['user']);
$password = sha1(mysql_real_escape_string($_POST['password']));
mysql_select_db('test_users');
$query = mysql_query(
"SELECT user
FROM users
WHERE user = '$user'
AND password = '$password'
") or die(mysql_error());
mysql_fetch_array($query);
$total = mysql_num_rows($query);
if ($total > 0) {
session_start();
$_SESSION['user'] = 'blah';
header('location: dashboard.php');
}
else {
echo '<br>Access denied!';
}
}
?>
<form method="post" action="login.php?attempt">
Enter your username:<input type="text" name="user"/><br/>
Enter your password:<input type="password" name="password"/><br/>
<input type="submit"/>
</form>
</body>
</html>
UPDATE 2016
请只使用现有的登录系统,这是在几乎所有的PHP框架提供外的开箱! 有是绝对没有理由自己来写这个,用户认证是一个很大的话题,这将需要几个月(年)写了一个严重的,稳定的和现代的登录解决方案。
原来的文本,从2012年:
由于登录系统是一个安全问题,每个人都会过来,同样的错误一遍又一遍,我可以明确地说:
以一个专业的脚本和工作通过代码来了解发生了什么,什么散列和腌制是,可以有什么问题会议。
[除去outdating链接]
这里有三个项目,可能是你所需要的:
https://github.com/panique/php-login-one-file
https://github.com/panique/php-login-minimal
https://github.com/panique/huge
首先,你应该在页面的第一行启动会话。
你应该也更新代码才能使用PDO语句,而不是MySQL的功能。 这些是较慢的和易于mysqli的。
然后,你需要检查,如果返回的NUM行等于1和不大于0。这将是一个安全问题,因为你的脚本可以被操纵,以返回超过1行,然后它会验证,并输入安全区域。
这个问题似乎给我,说,你的密码不匹配的分贝。 呼应你的密码的SHA1,看看它是否与下表匹配。
这似乎是在脚本是打破是当它检测的mysql_num_rows()。
就在之前:
if ($total > 0)
{
也许尝试添加以下行来测试并确保$总确实是> 0:
echo $total;
除此之外,尝试测试MySQL查询,以确保它会从数据库返回至少1排。
make database in mysql then run this code::
<table border="0" align="center" cellpadding="0" cellspacing="0" width="300">
<tr>
<td>
<form method="post" action="flogin.php">
<table width="100%" cellpadding="7" cellspacing="0" border="0">
<tr>
<td colspan="3"><center><strong>Insert Values In DataBase </strong></center><br /></td><br />
</tr>
<tr>
<td width="30%">Name</td>
<td width="10%">:</td>
<td width="60%"><input type="text" name="name" /></td>
</tr>
<tr>
<td width="30%">Last Name</td>
<td width="10%">:</td>
<td width="60%"><input type="text" name="lastname" /></td>
</tr>
<tr>
<td width="30%">Email</td>
<td width="10%">:</td>
<td width="60%"><input type="text" name="email" /></td>
</tr>
<tr>
<td colspan="3"><center><input type="submit" name="submit" /></center><br /></td>
</tr>
</table>
</form>
</td>
</tr>
</table>
<?php
mysql_connect("localhost", "root", "") or die("can not connect to database");
mysql_select_db("flogin")or die("can not connect");
if (isset($_POST['submit'])){
$name=$_POST['name'];
$lastname=$_POST['lastname'];
$email=$_POST['email'];
$query=mysql_query("INSERT INTO info(name, lastname, email)VALUES('$name', '$lastname', '$email')");
if($query){
echo "successful";
echo "<br>";
echo "<a href='insert.php'>Back to main page</a>";
}
else {
echo "error";
}
}
?>
<?php
mysql_close();
?>