Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/252.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的if语句出错_Php_Mysql - Fatal编程技术网

用户登录页面PHP的if语句出错

用户登录页面PHP的if语句出错,php,mysql,Php,Mysql,我创建此页面作为登录系统,数据库连接良好,我没有看到任何错误或得到任何错误,问题是当我输入正确的用户名和密码时,我得到以下信息: “对不起…您输入了错误的ID和密码…请重试…” 当我输入错误的用户名和密码时,我会得到一个空白页面 <?php include_once("db_connection.php"); $userName = $_POST['user']; $password = $_POST['password']; if($userName == "" || $pass

我创建此页面作为登录系统,数据库连接良好,我没有看到任何错误或得到任何错误,问题是当我输入正确的用户名和密码时,我得到以下信息:

“对不起…您输入了错误的ID和密码…请重试…”

当我输入错误的用户名和密码时,我会得到一个空白页面

<?php
include_once("db_connection.php"); 

$userName = $_POST['user'];
$password =  $_POST['password'];

if($userName == "" || $password == ""){
echo "Fill in both field";
exit;
}

function SignIn(){
session_start();   //starting the session for user profile page
if(!empty($_POST['user']))   //checking the 'user' name which is from Sign-In.html, is it empty or have some text
{
    $query = mysql_query("SELECT * FROM Customer WHERE userName = '$_POST[user]' AND password = '$_POST[password]'") or die(mysql_error());
    $row = mysql_fetch_array($query) or die(mysql_error());
    if(!empty($row['userName']) AND !empty($row['password']))
    {
        $_SESSION['userName'] = $row['password'];
        echo "SUCCESSFULLY LOGIN TO USER PROFILE PAGE...";

    }
    else
    {
        echo "SORRY... YOU ENTERD WRONG ID AND PASSWORD... PLEASE RETRY...";
    }
}
}
if(isset($_POST['submit']))
{
SignIn();
}

?>

您的SQL查询字符串使用的是$\u POST[user]的文本值,您应该将其实际值连接到字符串中。实际上,您应该对其进行转义以防止SQL注入,因为这是从客户端发布的


此线程解释注入:

您的SQL查询字符串使用的是$\u POST[user]的文本值,您应该将其实际值连接到字符串中。实际上,您应该对其进行转义以防止SQL注入,因为这是从客户端发布的


此线程解释注入:

您的SQL查询字符串使用的是$\u POST[user]的文本值,您应该将其实际值连接到字符串中。实际上,您应该对其进行转义以防止SQL注入,因为这是从客户端发布的


此线程解释注入:

您的SQL查询字符串使用的是$\u POST[user]的文本值,您应该将其实际值连接到字符串中。实际上,您应该对其进行转义以防止SQL注入,因为这是从客户端发布的

此线程解释注入:

尝试:

 $query = mysql_query("SELECT * FROM Customer WHERE userName = '{$_POST['user']}' AND password = '{$_POST['password']}'") or die(mysql_error());
或者为了安全起见:

 $query = mysql_query("SELECT * FROM Customer WHERE userName = '" . mysql_real_escape_string($_POST['user']) . "' AND password = '" . mysql_real_escape_string($_POST['password'] . "'") or die(mysql_error());
此外,我认为您可能需要使用:

$row = mysql_fetch_assoc($query);
而不是:

$row = mysql_fetch_array($query);
尝试:

或者为了安全起见:

 $query = mysql_query("SELECT * FROM Customer WHERE userName = '" . mysql_real_escape_string($_POST['user']) . "' AND password = '" . mysql_real_escape_string($_POST['password'] . "'") or die(mysql_error());
此外,我认为您可能需要使用:

$row = mysql_fetch_assoc($query);
而不是:

$row = mysql_fetch_array($query);
尝试:

或者为了安全起见:

 $query = mysql_query("SELECT * FROM Customer WHERE userName = '" . mysql_real_escape_string($_POST['user']) . "' AND password = '" . mysql_real_escape_string($_POST['password'] . "'") or die(mysql_error());
此外,我认为您可能需要使用:

$row = mysql_fetch_assoc($query);
而不是:

$row = mysql_fetch_array($query);
尝试:

或者为了安全起见:

 $query = mysql_query("SELECT * FROM Customer WHERE userName = '" . mysql_real_escape_string($_POST['user']) . "' AND password = '" . mysql_real_escape_string($_POST['password'] . "'") or die(mysql_error());
此外,我认为您可能需要使用:

$row = mysql_fetch_assoc($query);
而不是:

$row = mysql_fetch_array($query);

将SQL语句替换为以下内容:

SELECT * FROM Customer WHERE userName = '$userName' AND password = '$password'
假设你不想做任何消毒。如果是,请将第一行更改为:

$userName = mysql_real_escape_string($_POST['user']);
$password = mysql_real_escape_string($_POST['password']);

将SQL语句替换为以下内容:

SELECT * FROM Customer WHERE userName = '$userName' AND password = '$password'
假设你不想做任何消毒。如果是,请将第一行更改为:

$userName = mysql_real_escape_string($_POST['user']);
$password = mysql_real_escape_string($_POST['password']);

将SQL语句替换为以下内容:

SELECT * FROM Customer WHERE userName = '$userName' AND password = '$password'
假设你不想做任何消毒。如果是,请将第一行更改为:

$userName = mysql_real_escape_string($_POST['user']);
$password = mysql_real_escape_string($_POST['password']);

将SQL语句替换为以下内容:

SELECT * FROM Customer WHERE userName = '$userName' AND password = '$password'
假设你不想做任何消毒。如果是,请将第一行更改为:

$userName = mysql_real_escape_string($_POST['user']);
$password = mysql_real_escape_string($_POST['password']);

代码中的问题太多

1:您对sql注入非常开放,因为您没有清理变量

2:你不应该仍然使用mysql,因为它们已经被弃用了

3:按如下方式尝试您的查询:

mysql_query("SELECT * FROM Customer 
             WHERE userName = '".mysql_real_escape_string($_POST['user'])."' 
             AND password = '".mysql_real_escape_string($_POST['password'])."'");

4:检查你的拼写,我发现输入了应该输入的内容

你的代码中有太多问题

1:您对sql注入非常开放,因为您没有清理变量

2:你不应该仍然使用mysql,因为它们已经被弃用了

3:按如下方式尝试您的查询:

mysql_query("SELECT * FROM Customer 
             WHERE userName = '".mysql_real_escape_string($_POST['user'])."' 
             AND password = '".mysql_real_escape_string($_POST['password'])."'");

4:检查你的拼写,我发现输入了应该输入的内容

你的代码中有太多问题

1:您对sql注入非常开放,因为您没有清理变量

2:你不应该仍然使用mysql,因为它们已经被弃用了

3:按如下方式尝试您的查询:

mysql_query("SELECT * FROM Customer 
             WHERE userName = '".mysql_real_escape_string($_POST['user'])."' 
             AND password = '".mysql_real_escape_string($_POST['password'])."'");

4:检查你的拼写,我发现输入了应该输入的内容

你的代码中有太多问题

1:您对sql注入非常开放,因为您没有清理变量

2:你不应该仍然使用mysql,因为它们已经被弃用了

3:按如下方式尝试您的查询:

mysql_query("SELECT * FROM Customer 
             WHERE userName = '".mysql_real_escape_string($_POST['user'])."' 
             AND password = '".mysql_real_escape_string($_POST['password'])."'");
4:检查你的拼写,我发现输入了应该输入的内容

警告!警告

您的代码易受注入攻击。我所要做的就是输入我选择的用户名和密码
”或“1
,它将允许我进入任何人的帐户

用于转义值并使其安全

另外:您似乎正在将密码保存为纯文本字符串。这很糟糕。我是说真的,真的,真的真的糟糕。我无法强调这有多么糟糕。有关想法,请参阅《搭便车者指南》中关于宇宙大小的部分

。。。除非你以加密格式保存它们,并试图以明文形式访问它们。这是行不通的,您需要加密用户输入的任何内容,并查看它是否加密到相同的内容。

警告!警告

您的代码易受注入攻击。我所要做的就是输入我选择的用户名和密码
”或“1
,它将允许我进入任何人的帐户

用于转义值并使其安全

另外:您似乎正在将密码保存为纯文本字符串。这很糟糕。我是说真的,真的,真的真的糟糕。我无法强调这有多么糟糕。有关想法,请参阅《搭便车者指南》中关于宇宙大小的部分

。。。除非你以加密格式保存它们,并试图以明文形式访问它们。这是行不通的,您需要加密用户输入的任何内容,并查看它是否加密到相同的内容。

警告!警告

您的代码易受注入攻击。我所要做的就是输入我选择的用户名和密码
”或“1
,它将允许我进入任何人的帐户

用于转义值并使其安全

另外:您似乎正在将密码保存为纯文本字符串。这很糟糕。我是说真的,真的,真的真的糟糕。我无法强调这有多么糟糕。有关想法,请参阅《搭便车者指南》中关于宇宙大小的部分

。。。除非你以加密格式保存它们,并试图以明文形式访问它们。这是行不通的,您需要加密用户输入的任何内容,并查看它是否加密到相同的内容。

警告!