PHP登录访问在Web服务器中不起作用

Posted

技术标签:

【中文标题】PHP登录访问在Web服务器中不起作用【英文标题】:PHP login access doesn't working in web server 【发布时间】:2018-04-28 08:01:26 【问题描述】:

我正在制作一个登录系统。但是,我不知道是什么问题。当我通过正确的电子邮件和密码或错误的电子邮件和密码检查时,它会显示我的错误消息 Please enter valid Email/Password!! 。我正在使用 php 7.1.7 。此外,当我添加错误的数据库用户名、密码和表时,它不会显示任何错误。 我的 PHP 代码:

$mysqli = new mysqli('localhost', 'db4245454', 'missed$', 'db424545444');

$query = "SELECT * FROM User WHERE Email = 'support@admin.com' AND password = 'Rml2ZXJyMSQ='";
$result = $mysqli->query($query);
$num_log = $result->num_rows;


if($num_log == 1)

        while($row = $result->fetch_object())
            echo "Welcome " .   $row->First_Name . ' '. $row->Last_Name;

                                       
else

    echo "Please enter valid Email/Password!!";
   

我的数据库表结构:

【问题讨论】:

请不要在生产中使用此代码.. 您的数据库表截图似乎没有完全上传。能重新上传一下吗? @shrmn 立即查看。我上传了我的数据库结构。 【参考方案1】:

您的代码正常问题应该在您的查询中,也许您提供的数据在数据库中不可用,因此 num_rows >=0 和 != 1

$query = "SELECT * FROM User WHERE Email = 'support@admin.com' AND password = 'Rml2ZXJyMSQ='";

你可以使用 var_dump($result);然后 die() 看看你是否从数据库中得到任何东西

PS 从不使用这样的代码

【讨论】:

就在你的 IF 之前给 var_dump($result);死();看看你的网站上是否出现了一些东西 所以你明白了 :) 问题是你的查询 :),你的查询结果与你的数据库中的任何数据都不匹配 :),我可以帮忙,但你需要发布你的数据库数据信息,因为这个截图是谁给我们是徒劳的:) 你也可以试试mysqli_connect(),因为新的mysqli并不完美$mysqli = mysqli_connect($host, $user, $pass, $db); 所以也许你连接到错误的数据库但你的代码是 100% Okey 问题在你身边(QUERY / DABASE DATA / CONNECTED TO DATABASE 2 where is 0 DATA like your QUERY)在我自己的数据库上测试而且效果很好 使用这个 $mysqli = mysqli_connect($host, $user, $pass, $db);还有 var_dumb($mysqli);【参考方案2】:

我认为这不是正确的方法。最简单的方法是添加一个“角色”列并确定客户是“管理员”、“客户”还是您想要拥有的任何其他级别,这样您就可以管理多个具有各自访问权限的管理员。 对于代码,您可以检查客户的“角色”是什么并显示相应的消息/页面。

            <?php
            $mysqli = new mysqli('localhost', 'db4245454', 'missed$', 'db424545444');

            if ($mysqli->connect_errno) 
                printf("Echec de la connexion: %s\n", $mysqli->connect_error);
                exit();
            

            $result = $mysqli->query("SELECT * FROM User WHERE Email = 'support@admin.com' AND password = 'Rml2ZXJyMSQ='");
            $row = $result->num_rows;

            if($row == 1)


                        echo "Welcome " .   $row->First_Name . ' '. $row->Last_Name;


            else

                echo "Please enter valid Email/Password!!";
            

            ?>

【讨论】:

我认为问题出在我的 db_user 和 db_pass 中。 这是个好方法:$mysqli = new mysqli("localhost", "user", "password", "database");

以上是关于PHP登录访问在Web服务器中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

备用访问映射在 SharePoint 2010 工作组中不起作用

Cors 在 web api2 项目中不起作用

路由更改在 Promise 回调函数中不起作用

单点登录在 Spring Web 应用程序中不起作用

机器人的语音服务在 Azure 中的“Web 聊天测试”选项中不起作用

Web Socket 客户端在 Tomcat 中不起作用