用户登录页面PHP的if语句出错
我创建此页面作为登录系统,数据库连接良好,我没有看到任何错误或得到任何错误,问题是当我输入正确的用户名和密码时,我得到以下信息: “对不起…您输入了错误的ID和密码…请重试…” 当我输入错误的用户名和密码时,我会得到一个空白页面用户登录页面PHP的if语句出错,php,mysql,Php,Mysql,我创建此页面作为登录系统,数据库连接良好,我没有看到任何错误或得到任何错误,问题是当我输入正确的用户名和密码时,我得到以下信息: “对不起…您输入了错误的ID和密码…请重试…” 当我输入错误的用户名和密码时,我会得到一个空白页面 <?php include_once("db_connection.php"); $userName = $_POST['user']; $password = $_POST['password']; if($userName == "" || $pass
<?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
,它将允许我进入任何人的帐户
用于转义值并使其安全
另外:您似乎正在将密码保存为纯文本字符串。这很糟糕。我是说真的,真的,真的,真的糟糕。我无法强调这有多么糟糕。有关想法,请参阅《搭便车者指南》中关于宇宙大小的部分
。。。除非你以加密格式保存它们,并试图以明文形式访问它们。这是行不通的,您需要加密用户输入的任何内容,并查看它是否加密到相同的内容。警告!