PHP:会话在本地主机但服务器上工作

在发布之前,我已经阅读了:

但是,我没有找到解决问题的方法。

好的,我正在编写一个应用程序,该应用程序使用jQuery AJAX进行用户登录页面,以检查它们是否被管理,然后将SESSION变量传递到页面中。如果未设置 SESSION,则显示 403 禁止页面。admin.php

我已经在我的机器上运行了代码,但是,在将所有内容部署到服务器后,它总是显示 403 禁止。我检查了 SESSION,发现它的长度仅为 0;Array()

现在我正在尝试通过以下方式做到这一点:

ini_set('session.save_path', $sessdir); 
session_start();

但我无法让它在我的本地机器上工作,这里有两个示例:

  • 第一个 PHP 文件

   <!DOCTYPE html>

    <html>

    <head>

        <meta charset="UTF-8">

        <title>Document</title>

    </head>

    <body>

    

    <?php 

    // abs path of this file

    function inve(){return "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";}

    

    // remove n items from end of a path in string format

    function rewind_url($dire, $ind){

        $pieces = explode('/', $dire);

        for($i=0; $i<$ind; $i++){

            array_pop($pieces);

        }

        $pieces = implode('/', $pieces);

        return $pieces;

    }

    

    function put($str){

        print_r("<h2>" . $str . "</h2>");

    }

    

    $sessdir = rewind_url(inve(), 1);

    ini_set('session.save_path', $sessdir); 

    session_start();

    $_SESSION['name'] = 'joseph';

    

    put($sessdir);

    put(count($_SESSION));


    ?>


    <a href='another.php'>here</a>

    </body>

    </html>

第二个 PHP 文件

    <!DOCTYPE html>

    <html>

    <head>

        <meta charset="UTF-8">

        <title>Document</title>

    </head>

    <body>

    

    <?php 

    // abs path of this file

    function inve(){return "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";}

    

    // remove n items from end of a path in string format

    function rewind_url($dire, $ind){

        $pieces = explode('/', $dire);

        for($i=0; $i<$ind; $i++){

            array_pop($pieces);

        }

        $pieces = implode('/', $pieces);

        return $pieces;

    }

    

    function put($str){

        print_r("<h2>" . $str . "</h2>");

    }

    

    $sessdir = rewind_url(inve(), 1);

    ini_set('session.save_path', $sessdir); 

    

    session_start();

    

    put(count($_SESSION));

    

    ?>  

    

    </body>

    </html>

简而言之,我想在单击链接后看到数字 1。 我非常感谢您的帮助。


HUH函数
浏览 60回答 1
1回答

繁星coding

很难说,我们甚至不知道是否启用了 phpsession,我应该签出 phpinfo();此外,我应该在之后检查两件事:让所有的东西都在每一页的顶部。session_starts();此外,没有带有https的完整路径,而是您提供的第一个链接中解释的相对目录路径。the ini_set('session.save_path', $sessdir);用:$sessdir = dirname(dirname(__FILE__)).'/session_dir'
打开App,查看更多内容
随时随地看视频慕课网APP