Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 登录表单始终显示“登录”;错误的凭证”;_Php_Mysql_Arrays_If Statement_While Loop - Fatal编程技术网

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..."; 
}