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')
toinclude_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