php mysql登录问题$\u POST['username']=$result['username']
我是一个初学者,我已经从零开始编写了自己的PHP登录代码,但仍然有一些错误,下面是代码:php mysql登录问题$\u POST['username']=$result['username'],php,mysql,database,forms,login,Php,Mysql,Database,Forms,Login,我是一个初学者,我已经从零开始编写了自己的PHP登录代码,但仍然有一些错误,下面是代码: <?php include 'connection.php'; $query = " SELECT * FROM admin"; $result = mysql_query($query) or die(mysql_error()); ?> <form action="<?php echo $_SERVER['SELF_PH
<?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接口 在其他几个bug中,比如assignment=而不是等于== 试着这样做: 如果不存在post,则发送表单else检查,如果确定,则重定向或不确定。重新发送表单
<?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
?>
您遇到了什么错误?几个注释:if$username=$result['username']{应该是if$username==$result['username']{与if$password=$result['password'相同]{.So如果你想知道什么是相等的,就用==代替=。第二:不要使用mysql。使用mysql或准备好的语句。你需要mysql_fetch_*函数!尽管使用了mysql_*函数,我看不到任何潜在的SQL注入攻击;只进行了静态查询。当插入到一个q中时,比较不需要转义ueryFair足够了,mysql函数仍然不应该被使用-但是他是对的,如果你不插入,那么你就没有风险。我想虽然他在任何地方都使用这些方法,所以请注意。我相信你的花括号是无与伦比的