PHP中奇怪的$\u会话变量behivor

PHP中奇怪的$\u会话变量behivor,php,session,Php,Session,我已经为此挣扎了两天了。 下面的代码在我的本地主机(WampServer 2.5版、Apache v2.4.9版、PHP 5.5.12版)上运行得非常好,但在我的主机服务器上却不行。 在注册新用户时,我试图将$\u会话从一个页面传递到另一个页面(两个文件位于同一文件夹下) page 1:(stepOne.php) 分配$\u会话['userid]: <?php session_start(); include_once (dirname(__FILE__) .'/classes/data

我已经为此挣扎了两天了。 下面的代码在我的本地主机
(WampServer 2.5版、Apache v2.4.9版、PHP 5.5.12版)上运行得非常好
,但在我的主机服务器上却不行。
在注册新用户时,我试图将
$\u会话
从一个页面传递到另一个页面(两个文件位于同一文件夹下)

page 1:(stepOne.php)
分配
$\u会话['userid]:

<?php
session_start();
include_once (dirname(__FILE__) .'/classes/data.php'); 
$_SESSION['userID'] = $user->id; /*user->id is set.*/
?>
已检查:
1.session\u start()
在每页`

2.会话已启用

3.session.save_handler = files on php.ini

4.session.save_path = "/tmp" - I've created "tmp" folder
我在“tmp”文件夹下也找不到会话文件。 如果您有任何建议和回答,我们将不胜感激

2015年7月15日更新-已解决 在与我的主机服务器进行检查后,找出两件事:

  • 有一个.htaccess显然指向了一个不同的php.ini,而不是我想要的
  • 在这个.htaccess中,有一条规则重定向页面,导致$\u会话重置
所以, 我从中学到的是:

  • 始终检查是否指向正确的php.ini
  • 在你所有的文件夹中搜索.htaccess——可能有一个旧的文件夹会把配置弄得一团糟
  • 已解决 在与我的主机服务器进行检查后,找出两件事:

  • 有一个.htaccess显然指向另一个 那就是我想要的
  • 在这个.htaccess中,有一条规则重定向导致错误的页面 $\要重置的会话
  • 因此,我从中学到:

    • 始终检查是否指向正确的php.ini
    • 在你所有的文件夹中搜索.htaccess——可能有一个旧的文件夹会把配置弄得一团糟
    我在搜索解决方案时选择的其他建议:

    使用AJAX时,请尝试添加

    会话设置cookie参数(0,“/”,“.yourWebsite.com”)


    );在session_start()

    之前,您可以只
    包含_一次(dirname(u文件)'/classes/data.php')
    to
    include_once('classes/data.php')并重试。这可能是因为您正在获取的目录可能不同,并且可能没有显示错误,因为您可能已关闭了错误。请确保运行web服务器的用户可以写入tmp目录,并确保tmp目录位于文件系统的根目录上(或将session.save_path中的/tmp更改为tmp目录所在位置的完整绝对路径)这可能是这里的问题。另外,请检查web服务器上的错误日志,以了解有关发生了什么的任何提示。@PratikSoni,尝试了这一点,我得到了“无法打开流”,这就是我包含的方式(dirname(FILE)..@Orangepill将root/tmp修改为0777(仅用于测试),并在php.ini中更改为完整路径-仍然不起作用。是否在temp目录中创建会话文件?还要确保url中的主机名在调用之间没有更改。最好执行phpinfo页面,以确保您的Web服务器接收到您的ini更改。
    
    [14-Jul-2015 23:31:40 America/Denver] session at start=Array
    (
    )
    
    3.session.save_handler = files on php.ini
    
    4.session.save_path = "/tmp" - I've created "tmp" folder