我是初学者,我已经从0开始编写了自己的PHP登录,但我仍然有一些错误,下面是代码:
<?php
include 'connection.php';
$query = " SELECT * FROM admin";
$result = mysql_query($query) or die(mysql_error());
?>
<form action="<?php echo $_SERVER['SELF_PHP']; ?>" method="post">
Username : <input type="text" name="usernameInput" value="" />
Password : <input type="password" name="passwordInput" value="" />
<input type="submit" value="Login" />
</form>
<?php
$username = $_POST['usernameInput'];
$password = $_POST['passwordInput'];
if ($username = $result['username']) {
if ($password = $result['password']){
header('Location: admin.php');
} else {
echo "PASSWORD IS INCORRECT";
}
} else {
echo "USERNAME IS INCORRECT";
}
?>
所以如果你能解决这个问题,或者从PHP登录中得到一个更简单的方法,请告诉我。:)
几件事…
- 不要使用
mysql
函数 - 您需要使用
==
来比较字符串,而不是=
-
你需要实际获取你的查询结果
include 'connection.php'; $query = " SELECT * FROM admin"; $result = mysql_query($query) or die(mysql_error()); $row = mysql_fetch_row($result); /* add this */ ?> <form action="<?php echo $_SERVER['SELF_PHP']; ?>" method="post"> Username : <input type="text" name="usernameInput" value="" /> Password : <input type="password" name="passwordInput" value="" /> <input type="submit" value="Login" /> </form> <?php if(isset($_POST['usernameInput']) && isset($_POST['passwordInput'])){ $username = $_POST['usernameInput']; $password = $_POST['passwordInput']; } else{ echo 'some error ...'; } if($username == $row ['username'] && $password == $row ['password']){ header('Location: admin.php'); } else{ echo ' username or password is wrong'; } ?>
我必须指出你没有先检查邮件就一次又一次地发送相同的表单。当你发送表单时,你将无法发送头重定向,因为html已经启动并且头已经发送了。
Mysql函数已弃用,请使用mysqli接口。
在其他几个错误中,如assignment =而不是is equal ==
试试这样:
如果没有post存在,发送表单else检查,如果ok则重定向或不ok。重新发送表单
<?php
if($_POST){
include 'connection.php';
$query = " SELECT * FROM admin";
$r = mysql_query($query) or die(mysql_error());
// get an associated array from query result resource.
$result = mysql_fetch_assoc($r);
$username = $_POST['usernameInput'];
$password = $_POST['passwordInput'];
if ( ($username == $result['username'])
&& ($password == $result['password'])){
header('Location: admin.php');
exit(0);
} else {
echo "PASSWORD IS INCORRECT";
}
}
?>
<form action="<?php echo $_SERVER['SELF_PHP']; ?>" method="post">
Username : <input type="text" name="usernameInput" value="" />
Password : <input type="password" name="passwordInput" value="" />
<input type="submit" value="Login" />
</form>
<?php
?>