【问题标题】:Strange $_SESSION var behivor in PHPPHP中奇怪的$_SESSION var behivor
【发布时间】:2015-07-15 06:32:12
【问题描述】:

我已经为此苦苦挣扎了 2 天。 下面的代码在我的本地主机(WampServer Version 2.5, Apache v2.4.9, PHP 5.5.12) 上完美运行,但在我的主机服务器上却不行。 在注册新用户期间,我试图将$_SESSION 从一个页面传递到另一个页面(两个文件都在同一个文件夹下。)。

page 1:(stepOne.php)

分配$_SESSION['userid']:

<?php
session_start();
include_once (dirname(__FILE__) .'/classes/data.php'); 
$_SESSION['userID'] = $user->id; /*user->id is set.*/
?>

第 2 页:(steps.php)

<?php
session_start();
include_once (dirname(__FILE__) .'/classes/data.php');
$data = new data();
error_log("session at start=".print_r($_SESSION,true));
?>

结果是:

[14-Jul-2015 23:31:40 America/Denver] session at start=Array
(
)

已检查: 1.session_start() 在每一页上`。

2.sessions are 已启用。

3.session.save_handler = files on php.ini

4.session.save_path = "/tmp" - I've created "tmp" folder

我在“tmp”文件夹下也找不到会话文件。 希望有任何建议和答案

15/7/15 更新 - 已解决 在与我的主机服务器核对后,找出几件事:

  • 有一个 .htaccess 显然指向不同的 php.ini,然后是我想要的那个
  • 在这个 .htaccess 中有一个重定向页面的规则导致 $_SESSION 重置。

所以, 我从中学到了什么:

  1. 始终检查您是否指向正确的 php.ini
  2. 在您的所有文件夹中搜索 .htaccess - 可能有一个旧文件夹会弄乱配置。

【问题讨论】:

  • 你能不能把include_once (dirname(__FILE__) .'/classes/data.php'); 转成include_once ('classes/data.php'); 再试一次。这可能是您获取的目录可能不同,并且它可能不会显示错误,因为您可能已关闭错误。
  • 确保 tmp 目录对运行 Web 服务器的用户是可写的,并确保 tmp 目录位于文件系统的根目录(或将 session.save_path 中的 /tmp 更改为tmp 目录所在位置的完整绝对路径),这可能是这里的问题。还要检查您的网络服务器上的错误日志,以获取有关正在发生的事情的任何提示。
  • @PratikSoni,试过了,我得到“无法打开流”,这就是我包含的方式 (dirname(FILE)..
  • @Orangepill 将根 /tmp 修改为 0777(仅用于测试)并更改为 php.ini 中的完整路径 - 仍然无法正常工作。
  • 会话文件是否正在临时目录中创建?还要确保 url 中的主机名在调用之间没有改变。做一个 phpinfo 页面以确保您的网络服务器正在接收您的 ini 更改可能是个好主意。

标签: php session


【解决方案1】:

已解决 在与我的主机服务器核对后,找出几件事:

  1. 有一个.htaccess 显然指向不同的 php.ini 然后是我想要的那个
  2. 在这个 .htaccess 中有一个重定向页面的规则,导致 $_SESSION 重置。

所以,我从中学到了什么:

  • 始终检查您是否指向正确的 php.ini
  • 在您的所有文件夹中搜索 .htaccess - 可能有一个旧文件夹会弄乱配置。

我通过搜索解决方案挑选的其他建议:

使用 AJAX 时尝试添加

session_set_cookie_params(0, '/', '.yourWebsite.com')

;在 session_start() 之前

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-30
    • 1970-01-01
    • 1970-01-01
    • 2010-10-11
    • 2014-04-04
    • 2010-11-24
    相关资源
    最近更新 更多