Php 登录表单始终显示“登录”;错误的凭证”;
此代码用于登录表单 即使用户名和密码匹配,它也会显示“错误的凭据”,后跟“欢迎乔治”Php 登录表单始终显示“登录”;错误的凭证”;,php,mysql,arrays,if-statement,while-loop,Php,Mysql,Arrays,If Statement,While Loop,此代码用于登录表单 即使用户名和密码匹配,它也会显示“错误的凭据”,后跟“欢迎乔治” 如果用户名和密码不匹配,则会显示为“错误凭据”,后跟另一个“错误凭据”。您的SQL查询/逻辑完全错误 您应该做的是使用WHERE子句检查数据库中是否存在该用户和密码组合。但实际上,您要做的是获取每一行并检查是否相等。在这种情况下,您还可以获得n个错误的凭据 <?php include 'header.php'; error_reporting(E_ERROR | E_WARNING | E_PARSE
如果用户名和密码不匹配,则会显示为“错误凭据”,后跟另一个“错误凭据”。您的SQL查询/逻辑完全错误 您应该做的是使用WHERE子句检查数据库中是否存在该用户和密码组合。但实际上,您要做的是获取每一行并检查是否相等。在这种情况下,您还可以获得n个错误的凭据
<?php include 'header.php';
error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);
$con = mysql_connect("localhost","root","");
$db_selected = mysql_select_db("layout",$con);
$name = $_POST['name'];
$password = $_POST['password'];
if($_POST["submit"] == "LOGIN" )
{
$sql = "SELECT username,password from secure";
$result = mysql_query($sql,$con);
}
while($row = mysql_fetch_array($result,MYSQL_BOTH))
{
if($row['username'] == $name and $row['password'] == $password)
{
echo "welcome " .$name;
}
else
{
echo "Wrong Credentials";
}
}
?>
这里还有一个更好的检查方法,即检查行数是否=1,这是您应该遵循的最佳实践和惯例。用笔和纸仔细思考您的逻辑,然后问题就显而易见了。
$sql=“从安全中选择用户名、密码”
您需要一个WHERE
子句来选择匹配username
和password
调试是一个很好的方法,可以查看错误所在代码中有一个循环。最好如上所述将您的条件移动到SQL查询中。对不起,您怎么能使用这样一个愚蠢的标题?你的问题是关于什么的?你认为有谁在这里发帖,不想或不需要帮助吗?你认为有人想要或需要帮助使他的代码工作不正确吗?你能想象每个人都这样称呼他的问题吗?这会使堆栈溢出变得无用。我们应该从第二行$row=mysql\u fetch\u array($query)中取“or die(mysql\u error())”或die(mysql\u error());为了让其他部分工作。谢谢你
$query = mysql_query("SELECT * FROM table WHERE userName = '$_POST[user]' AND pass = '$_POST[pass]'") or die(mysql_error());
$row = mysql_fetch_array($query) or die(mysql_error());
if(!empty($row['userName']) AND !empty($row['pass'])) {
echo "SUCCESSFULLY LOGIN TO USER PROFILE PAGE..."; }
else {
echo "SORRY... YOU ENTERD WRONG ID AND PASSWORD... PLEASE RETRY...";
}