PHP项目登录问题出现问题

PHP项目登录问题出现问题,php,Php,所以我一直在尝试一个php项目,一切都很好。除了一点额外的。 登录页面重定向到仪表板,即使有不正确的详细信息。所以基本上,不管登录详细信息如何,登录都会被绕过。另外,直接放置sitename/dashboard也可以绕过登录。下面是我的代码 1.indexlogin页 无论数据库中是否有记录,都需要应用一个条件。若并没有,那个么你们需要绕过登录页面。将此代码更改如下: if ($msg == "true") { $userPass = md5("hms2015".$_P

所以我一直在尝试一个php项目,一切都很好。除了一点额外的。 登录页面重定向到仪表板,即使有不正确的详细信息。所以基本上,不管登录详细信息如何,登录都会被绕过。另外,直接放置sitename/dashboard也可以绕过登录。下面是我的代码

1.indexlogin页
无论数据库中是否有记录,都需要应用一个条件。若并没有,那个么你们需要绕过登录页面。将此代码更改如下:

if ($msg == "true") {
            $userPass = md5("hms2015".$_POST['password']);
            $loginId = $_POST["email"];
            $query = "select loginId,userGroupId,password,name,userId from users where loginId='" . $loginId . "' and password='" . $userPass . "';";
            var_dump($query);
            $result = $db->getData($query);
            //var_dump($result);

            if (mysql_num_rows($result) > 0) { // means user is logged in
            $info = array();
            while ($row = mysql_fetch_assoc($result)) {

                array_push($info, $row['loginId']);
                array_push($info, $row['userGroupId']);
                array_push($info, $row['password']);
                array_push($info, $row['name']);
                array_push($info, $row['userId']);

            }
            //$db->close();
            $ses = new \sessionManager\sessionManager();
            $ses->start();
                $ses->Set("loginId", $info[0]);
                $ses->Set("userGroupId", $info[1]);
                $ses->Set("name", $info[3]);
                $ses->Set("userIdLoged", $info[4]);
            if (is_null($info[0])) {
                $msg = "Login Id or Password Wrong!";

            }
            else
            {

            }
            if($info[1]=="UG004")
            {
                header('Location: http://localhost/hms/sdashboard.php');
            }
            elseif($info[1]=="UG003")
            {

                header('Location: http://localhost/hms/edashboard.php');
            }
            else
            {
                header('Location: http://localhost/hms/dashboard.php');
            }
            }
        }
但我建议您使用PDO,因为mysql已经不推荐使用了。此外,您的代码也广泛开放用于SQL注入,所以请阅读相关内容。希望它能帮助您,但要使您的代码可靠。

一些提示:

要求值不应在括号中。 您不应该使用mysql函数,该库现在已停止使用,并且在PHP7中不可用。更新到2012年,并使用mysqli_uu或PDO。 您应该使用PHP7。至少。 不要使用md5散列密码。使用PHP内置的密码\u散列函数。 停止将错误输出到屏幕aka return mysql_error;。您应该将错误发送到错误日志error\u logprint\u rmysql\u error,true;所以公众看不到错误的细节。 阅读PHP错误日志。 在数据库交互上使用准备好的语句。[如何

HeaderLocation:…;函数后面应始终紧跟着exit;/die

永远不要相信用户的输入。即使用户告诉你这是无害的。 阅读PHP错误日志。 您的类可能应该具有类构造函数。 可以使用而不是字符串;使用return true;而不是return true; 您仍然不应该使用mysql函数,为什么您仍然在使用它们?停止阅读此内容并更新您的代码库!使用mysqli或PDO。 了解不同代码之间的差异,并将所学知识应用到代码中。 使用查找并使用PHP中提供的大量函数。 如果您想购买4.5/5星级的PHP6,请与我联系。 你有很多书要读,也有很多东西要学。我会说祝你好运,但你不需要任何运气,你需要阅读并致力于学习如何阅读


玩得开心。

代码太多了。你需要自己更好地解决这个问题。我们不是调试器。你需要从那里隔离问题并进行调试。如果你被卡住了,请提供一个清晰的解释,说明什么不适用于a。我建议读一个好的问题。另外,请务必阅读并阅读。仅供参考。它们已被弃用自2013年6月5日起被删除,自2015年12月7.0版起被删除。请参阅?改为了解,并使用或-将帮助您决定哪一个最适合您。请阅读。与其使用字符串连接构建查询,不如使用with。请参阅和,以获得一些好的示例。md5对于哈希密码已过时,不应使用。PHP提供如果你在5.5之前使用一个PHP版本,你应该考虑升级到一个支持的PHP版本。这是你开始学习如何调试的好时机。一个类似于如何调试PHP的谷歌搜索会让你开始。如果你使用IDE,它可能会有很好的调试。ols。即使您不是,您仍然可以通过在整个代码中输出键值、运行它并观察该输出来执行一些基本调试。使用此过程可以缩小问题的范围。如果您的代码正在执行您不期望的操作,则代码中的某个特定操作正在生成您不期望的结果。发现Operation,确定当时的值。此代码不起作用,因为您混合了mysqli API。它到处都有安全漏洞。感谢@JohnCode,我已将代码更正为mysql而不是mysqli。感谢您更正我。您以错误的方式“更正”了它……如果您要给出一个示例,请给出正确的示例。永远不要告诉我们e mysql驱动程序。谢谢@DevDonkey我已经按照你的建议更新了我的答案。谢谢。我将按照你的建议改进amd实现。谢谢。我将尝试改进我的代码。但现在我必须提到,这是一个来自项目的开源代码示例,不需要对Sql注入进行太多修改,因为没有实际的u除了学习我的英语之外,我非常感谢你们的支持。谢谢again@ArindamDeka如果我的答案是hepful,请按左边的向上箭头;如果我的答案是最佳答案并解决了您的问题,请勾选绿色箭头以表示这一点,非常感谢。