1

嘿,我当前的目录结构是这样的

  1. 管理员 (index.php, country.php)
  2. 类(connection.php、login.php、country.php)
  3. 头文件.php
  4. 页脚.php
  5. 索引.php
  6. 包括(header.php,footer.php)

我的问题是,当我在/admin/country.php并使用表单发布方法和操作设置为/classes/country.php添加国家/地区时,我的标题声明“ Header(”位置:../Admin/country.php )在网络服务器上。 php") " 工作正常,但是当我在根目录的索引页面上并尝试使用表单操作“classes/login.php”登录并成功登录时,我使用header("Location: ../Admin/index.php") php”)它永远不会重定向,但我的本地服务器一切正常,我不知道这里有什么问题,任何帮助将不胜感激,我已经搜索了这个论坛和其他人,并尝试使用他们告诉过的技术但没有正在工作中

我的索引页index.php

我的管理部分Admin/Country.php

我的 login.php 脚本如下

<?php 
        ob_start();
        include_once("classes/connection.php");
?>



<?php

    class login
    {
        public static function validateLogin($userName,$password)
        {
            if(isset($userName) && isset($password))
            {
                $connection  = dbconnection::getConnection();
                $query = "Select * from tbllogin Where loginID ='" . $userName .
                "' and password = '" . $password . "'";

                $result = mysql_query($query);
                $rowsAffected =  mysql_affected_rows();

                if($rowsAffected==0)
                {

                        //header("Location: ../index.php/");
                        //exit();
                        return false;
                }
                else
                {

                    while($row = mysql_fetch_array($result))
                    {
                        //working

                        $role = $row["role"];
                        if($role == "Admin")
                        {

                            //header('Location: ../Admin/index.php');
                            //exit();
                            return true;
                        }
                        else
                        {
                            //echo "hello";
                            //header("Location: ../index.php/");
                            //exit();
                            return false;
                        }

                        //return $result;
                        //header("Location: ../index.php");

                    }
                }
            }
            else
            {
                //header("Location: ../index.php/");
                return false;
            }
        }
    }


?>


<?php

    if(isset($_POST["btnSumbit"]))
    {
        $isValid = login::validateLogin($_POST["userID"],$_POST["password"]);
        if(isset($isValid))
        {
            if($isValid ==true)
            {
                $host  = $_SERVER['HTTP_HOST'];
                $uri   = rtrim(dirname($_SERVER['PHP_SELF']), '/\\');
                $extra = 'Admin/index.php';
                header("Location: http://$host$uri/$extra");
                exit();
            }
        }
    }

    ob_end_flush();

?>

4

1 回答 1

0

不要将标头重定向与相对路径一起使用。您应该重定向到前端 URL 路径或绝对路径。

您的“classes/login.php”可能是包含在“index.php”中的文件——因此您实际上是在尝试跳出 Web 服务器目录——这就是它在本地工作但不在服务器上工作的原因。

于 2013-07-01T16:01:05.963 回答