php - 这个网页有一个重定向循环php?

标签 php mysql sql session post

在我的索引页面上,我有一个指向我的 admin_login.php 页面的链接,其中包含以下代码:

<?php
session_start();
if(!isset($_SESSION["manager"])) {
header("location:admin_login.php");
exit();
 }

$managerID = preg_replace('#[^0-9]#i','', $_SESSION["id"]);
$manager = preg_replace('#[^A-Za-z0-9]#i','', $_SESSION["manager"]);
$password = preg_replace('#[^A-Za-z0-9]#i','', $_SESSION["password"]);

include "../storescripts/connect_to_mysql.php";
$sql=mysql_query("SELECT*FROM admin WHERE id='$managerID' AND username='$manager' AND password='$password' LIMIT 1");
$existCount=mysql_num_rows($sql);
if($existCount==1) {
echo 'Na Na Na Na';
exit();
}

?>

在 admin_login.php 页面上我有

<?php
session_start();
if(!isset($_SESSION["manager"])) {
header("location:index.php");
exit();
}
?>
<?php
if(isset($_POST["username"])&&isset($_POST["password"])) {

 $manager = preg_replace('#[^A-Za-z0-9]#i','', $_POST["manager"]);
 $password = preg_replace('#[^A-Za-z0-9]#i','', $_POST["password"]);
 include "../storescripts/connect_to_mysql.php";
 $sql=mysql_query("SELECT id FROM admin WHERE username='$manager' AND     password='$password' LIMIT 1");
 $existCount=mysql_num_rows($sql);
 if($existCount==1) {
while($row = mysql_fetch_array($sql)) {
$id=$row["id"];
}
$_SESSION["id"]=$id;
$_SESSION["manager"]=$manager;
$_SESSION["password"]=$password;
header("location: index.php");
exit();
   } else { 
echo ' That info is incorrect , try again <a href="index.php"> Click Here </a>';
exit();
    }
    }
    ?>

我正在使用管理面板登录管理员以进行进一步的操作,但它向我显示了重定向循环的错误。

最佳答案

由于逻辑错误(重定向循环......)而发生

假设由于以下代码而未设置 index.php $_SESSION["manager"]

session_start();
if(!isset($_SESSION["manager"])) {
header("location:admin_login.php");
exit();
 }

由于以下代码,它会转到 admin_login.php

session_start();
if(!isset($_SESSION["manager"])) {
header("location:index.php");
exit();
}

它转到index.php

更新嗯嗯..............

警告: mysql_* 已弃用...

解决你的问题

这可能取决于你的逻辑......

我可以说一个......

让我选择loginPage.php(您可以使用index.php)作为管理员网关 设代码为

function LoginChecker()
{ //Returns 0=Not,1=ok,2=Fraud

$hashCode= md5("of your Security Factor"); //something for better security


if(isset($_SESSION["is_LoggedIn_as_Admin"]))
{
if(isset($_SESSION["Logged_Admin_HASH"]))
{
if($_SESSION["Logged_Admin_HASH"]==$hashCode) //something for better security
{
//its login time have your Code Goes 
 return 1;
}
else
{ return 2;}
}
else
{ return 2;}
}
else
{ return 0;}
}

像这样检查而不是重定向

if(LoginChecker()==1)
{
//Logged in
}
else
{
//Html Code to show LoginPage or E......
//include "Login.php"
}

提醒在登录时设置$_SESSION["is_LoggedIn_as_Admin"] $_SESSION["Logged_Admin_HASH"]

关于php - 这个网页有一个重定向循环php?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19626998/

相关文章:

php - 仅针对搜索查询将 varchar 转换为 int?

php - 使用 PHP 对用户密码进行哈希处理和加盐处理

MYSQL Left Join Or Get value from Subquery if the value exists 如果值存在

sql - Oracle 11g - 临时表空间段未发布(Oracle 错误?)

sql - 在流分析中将列逆透视为两个新列

php - Yii 基本概念 : Where is $this defined?

php - PHP包含文件中的 undefined variable 错误

mysql - 按 "position"排序,但最后放置 0

php - 如何在 JQuery 中打开另一个弹出窗口时自动关闭一个弹出窗口?

php - 使用 XML 而不是 MySQL