为什么不能读取sseion的内容

asdf_ndsc 2010-12-23 12:29:28
我在本地用下面的测试代码是正常的;同样代码放到服务器上, 测试就不正常, page2.php是读不到session内容的.

代码如下:
page1.php
<?php
//所用的保存seesion 的代码
Session_start(); //使用SESSION前必须调用该函数。
$_SESSION['name']="我是黑旋风李逵!"; //注册一个SESSION变量
$_SESSION['passwd']="mynameislikui";
$_SESSION['time']=time();
echo '<br /><a href="page2.php">通过COOKIE传递SESSION</a>'; //如果客户端支持cookie,可通过该链接传递session到下一页。
echo '<br /><a href="page2.php?' . SID . '">通过URL传递SESSION</a>';//客户端不支持cookie时,使用该办法传递session.
?>

page2.php:
<?php
//所用的读取seesion 的代码
session_start();
echo $_SESSION['name']; //
echo $_SESSION['passwd']; //
echo date('Y m d H:i:s', $_SESSION['time']);
echo '<br /><a href="page1.php">返回山一页</a>';
echo '<br />'.highlight_file(__FILE__,true);
?>


也查看了服务器和本地的 phpinfo() 信息中的session内容是相同的的:
服务器的php session:

Session Support enabled
Registered save handlers files user sqlite
Registered serializer handlers php php_binary wddx

Directive Local Value Master Value
session.auto_start Off Off
session.bug_compat_42 On On
session.bug_compat_warn On On
session.cache_expire 180 180
session.cache_limiter nocache nocache
session.cookie_domain no value no value
session.cookie_httponly Off Off
session.cookie_lifetime 0 0
session.cookie_path / /
session.cookie_secure Off Off
session.entropy_file no value no value
session.entropy_length 0 0
session.gc_divisor 100 100
session.gc_maxlifetime 1440 1440
session.gc_probability 1 1
session.hash_bits_per_character 4 4
session.hash_function 0 0
session.name PHPSESSID PHPSESSID
session.referer_check no value no value
session.save_handler files files
session.save_path /var/www/php /var/www/php
session.serialize_handler php php
session.use_cookies On On
session.use_only_cookies Off Off
session.use_trans_sid 0 0

PHP Version 5.2.16


我看到存session文件夹 /var/www/php 的内容不停的增加 文件上也是完全所有用户完全读写权限777
ll /var/www/php -d
drwxrwxrwx 2 apache apache 897024 12-23 12:21 /var/www/php
浏览器端 page1.php 每次f5刷新 都看到cookie里的phpsssionid 每次都重新设置一个新的值.

帮帮忙. 哪里出问题了?


...全文
230 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
asdf_ndsc 2011-01-12
  • 打赏
  • 举报
回复
不知道怎么的 . 又正常了. 前些天 编译加 --enable-session 重起服务器都不能用. 突然今天正常了.谢谢大家!
happy664618843 2010-12-26
  • 打赏
  • 举报
回复
asdf_ndsc 2010-12-23
  • 打赏
  • 举报
回复
echo 我都试的去了, 没用. 还是不能用
--enable-session 单位项编译我也试了, 没用.

我又做一个这样的页面, 里面只有一行代码.
page3.php
<?php
Session_start();
?>

每次访问这个页面 用firefox bug 查看请求和返回的header里的 cookie(PHPSESSIONID) 每次都被重新设一个新的值.
去服务器上看 /tmp 文件夹里sess_开头的文件一直在增加.也就我一个人在访问.

大家都知道 session 要想正常工作,就不能每次返回header 重新设置PHPSESSIONID一个新值.
  • 打赏
  • 举报
回复
session都没读完,你echo啥?
zhang6464 2010-12-23
  • 打赏
  • 举报
回复
神马我的代码的问题,复制粘贴的lz的代码,懒得回答鸟~
[Quote=引用 7 楼 zhaojunwww 的回复:]
引用 6 楼 zhang6464 的回复:
我在本地测试,session_start前面加上个echo 1都能有输出,这让我情何以堪

不可能 这是你代码的问题 楼主把page2.php中的echo '<br />'.highlight_file(__FILE__,true);
注释掉就没有问题了
[/Quote]
zhongqixing1104 2010-12-23
  • 打赏
  • 举报
回复
--with-session \
--enable-session \
这两个选项不能同时使用
asdf_ndsc 2010-12-23
  • 打赏
  • 举报
回复
我加了 --with-session 和 --enable-session \ 这两个编译参数. 重想apache 还是读不到session
php 5.3.4 php 5.2.16 两个版本都试过了.
./configure --prefix=/usr/local/php5 \
--with-config-file-path=/usr/local/lib \
--with-apxs2=/usr/local/apache2/bin/apxs \
--with-MySQL=/usr/local/mysql \
--with-pdo-mysql=/usr/local/mysql \
--enable-ftp \
--enable-soap \
--enable-sockets \
--enable-mbstring=all \
--with-session \
--enable-session \
--with-gd \
--with-jpeg-dir=/usr/local/jpeg6/ \
--with-zlib-dir=/usr/local/lib/ \
--with-curl=/usr/local/curl \
--with-freetype-dir=/usr/local/freetype/ \
--with-libxslt-dir=/usr/local/libxslt && make && make install
asdf_ndsc 2010-12-23
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 ihefe 的回复:]
--enable-session 有没有这项
[/Quote]

上网一查 php 编辑还有这个选项enable session. 我刚也加上了重新编译,重启apache. linux 下还是读不出session.

那些代码在倒是能在xp 上能用辑
zhaojunwww 2010-12-23
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 zhang6464 的回复:]
我在本地测试,session_start前面加上个echo 1都能有输出,这让我情何以堪
[/Quote]
不可能 这是你代码的问题 楼主把page2.php中的echo '<br />'.highlight_file(__FILE__,true);
注释掉就没有问题了
zhang6464 2010-12-23
  • 打赏
  • 举报
回复
我在本地测试,session_start前面加上个echo 1都能有输出,这让我情何以堪
zhaojunwww 2010-12-23
  • 打赏
  • 举报
回复
这个问题一般都是Session_start();之前有输出了 即使是头文件信息也是不允许的
zhaojunwww 2010-12-23
  • 打赏
  • 举报
回复
page2.php

<?php
Session_start();
?>
html
head
title</title>
</head>
<body>
<?php
echo $_SESSION['name'];
echo $_SESSION['passwd'];
?>
</body>
</html>

如果确实是这样的 绝对不应该有问题
ihefe 2010-12-23
  • 打赏
  • 举报
回复
--enable-session 有没有这项

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧