Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/81.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
SQL在php管理中工作,但在php代码中返回空结果_Php_Sql_Admin - Fatal编程技术网

SQL在php管理中工作,但在php代码中返回空结果

SQL在php管理中工作,但在php代码中返回空结果,php,sql,admin,Php,Sql,Admin,这是我的密码: $usersql = "Select fab2_type from feesys_admin where adminname ='$_POST[username]' and adminemail = '$_POST[password]'"; $userresult = mysql_query($usersql) or die ("<h3>Error in query: $query. ".mysql_error()."</h3>");

这是我的密码:

  $usersql = "Select fab2_type from feesys_admin where adminname ='$_POST[username]' and adminemail = '$_POST[password]'";
        $userresult = mysql_query($usersql) or die ("<h3>Error in query: $query. ".mysql_error()."</h3>");
        $num_rows = mysql_num_rows($userresult);
        if($num_rows > 0) {
            if($userresult['fab2_type']=='Partner'){
        }
当我通过PHP管理员在数据库上运行SQL语句时,它工作得很好。但是它在这里的结果中返回空

我检查了一下以确保数据库连接正常。 我检查了所有的拼写 正确返回的行数。 没有语法错误。 当我回显用户名、密码和sql语句时,一切都是正确的


这段代码过去很有效,所以我不知道这里出了什么问题。

这是因为您没有正确引用$\u POST数组变量。您有$\u POST[用户名]和$\u POST[密码]。它应该是$\u POST['username']和$\u POST['password']。这导致PHP将用户名和密码解释为

这是对你的语法的另一种解释-

$usersql = "SELECT `fab2_type` FROM `feesys_admin` WHERE `adminname` ='".$_POST['username']."' AND `adminemail` = '".$_POST['password']."' ";
正如弗雷德在下面所说的,你可以通过预定义来进一步缩短这个时间

$user = $_POST['username']; // please sanitize this
$pass = $_POST['password']; // please sanitize this
$usersql = "SELECT `fab2_type` FROM `feesys_admin` WHERE `adminname` ='".$user."' AND `adminemail` = '".$pass."' ";
如果不清理用户输入,SQL注入的风险很大

. 密码相关

我注意到您可能正在以明文形式存储密码。如果是这样的话,我们非常不鼓励这样做

我建议您使用或PHP5.5的函数。 对于小于5.5的PHP,请使用


另外,对于SQL注入、或,它们更安全。

您的POST元素是否命名?请在打开文件后立即将错误报告添加到文件顶部。它们不再得到维护,而是在使用。看到了吗?而是学习,并使用或。将帮助您决定使用哪个。请停止使用mysql_*API。改用PDO或Mysqli。或者在参数后转义它们,或者使用预先准备好的语句。您当前的代码对SQL注入非常开放。嗯。。。我认为OP得到了信息。编辑:啊,删除了一条评论。不,我现在很好@Fred-ii-Hm…,TBH Jay,我不太确定。我做了一个快速测试,在他的例子中,用户名和密码被当作未定义的常量处理。尽管如此,可能需要对查询进行其他编辑。我会更新我的答案,我倾向于认为,设置预定义变量通常是最简单的方法,然后再做“$var.”类型的thang。但是,你说得对。是的,她很漂亮。我不需要另一个;她让我远离我的脚趾;顺便检查一下你的电子邮件。