从不同路径访问 PHP 会话变量 [英] Accessing PHP session variable from different paths

查看:61
本文介绍了从不同路径访问 PHP 会话变量的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在 PHP 会话中遇到了一个非常奇怪的问题,以下是事实:

I am facing a very weird problem in PHP sessions, here are the facts:

创建会话变量代码 - mydomain/a/b/c/create_session.php

<?
    session_start();
    $_SESSION['test'] = "Hello World";
?>

读取会话变量 read mydomain/a/b/c/read_session.php

<?
    session_start();
    echo $_SESSION['test'];
?> 

问题

当我从同一个 URL 中访问 read_session.php 代码时,它工作正常.但是当我试图从不同的路径读取会话变量时,它不起作用.

When I access the read_session.php code from within the same URL it works fine. But when I'm trying to read the session variable from a different path, it doesn't work.

示例

mydomain/a/b/c/read_session.php - 有效!

mydomain/a/b/c/read_session.php - works!

mydomain/a/b/read_session.php - 有效!

mydomain/a/b/read_session.php - works!

mydomain/a/read_session.php - 有效!

mydomain/a/read_session.php - works!

mydomain/read_session.php - 不起作用!

mydomain/read_session.php - doesn't works!

mydomain/d/read_session.php - 不起作用!

mydomain/d/read_session.php - doesn't works!

推荐答案

您可以尝试使用 session_set_cookie_params,以防你有一个配置设置把事情搞砸了:

You could try using session_set_cookie_params, in case you have a configuration setting muddling things up somewhere:

session_set_cookie_params(0, '/');
session_start();

您可以将 cookie 配置为仅在域中的某些路径上可用.这可能发生在这里.请注意,如果这是问题,解决它的最佳方法是更改​​ php.ini 中的值:

You can configure cookies to be usable only on certain paths on the domain. It's possible that that has happened here. NB that if this is the issue, the best way to fix it is by changing the value in php.ini:

session.cookie_path = "/"

这篇关于从不同路径访问 PHP 会话变量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆