服务器不支持session怎么办
飞龙更新于 2012-02-10 03:30 加入书签 CTRL+D 有 12 个朋友来过在使用php和session存储数据的时候,本地xampp服务器能使用session,但ftp上传到远程虚拟主机服务器,飞龙发现竟然没有存储session。莫非服务器不支持session 还是php代码本日志更新网址:http://feilong.org/session-php-webserver-no 加入收藏夹,查看更方便。
我们下了解一下session的机制:Session数据保存在服务器端, 但是每一个客户端都需要保存一个SessionID, SessionID保存在Cookies中, 关闭浏览器时过期.在向服务器发送的HTTP请求中会包含SessionID, 服务器端根据SessionID获取获取此用户的Session信息。
飞龙用session的和php编写的存储程序参见: http://feilong.org/ajax-session-click-add-remove-favorate 本地服务器是win7+xampp集成环境,运行session结果显示正常存储了session数据。
然后放到上linux Apache mysql的虚拟主机上,用session的程序以后虽然提示成功,但是session数据在接受页并没显示,说明session数据并没有存储。
网上查了一些答案:session_start()的前面有echo之类的语句,包括html空行?如果服务器不支持session,先要开启?session 也要用到cookie,您看下您的cookie是否已禁用?本机不报错,因为你本机的php配置去掉了错误显示?
一般来说,不让header(); 之前有echo或html,这个是个很细致的检查工作,有没有办法避免呢,也就是如何使用session_start(); 才能让让header(); 之前有echo或html,也不会出错呢?
session的输入缓冲机制为我们解决了这个问题。
ob_start(); // some html // echo 'feilong before'; //anything @session_start(); //header(......); // some html // echo 'feilong after'; //some html //anything ob_flush(); |
经过测试,飞龙发现远程主机也可以运行session并成功存储数据了,并不是服务器不支持session的原因。
维护小站,感谢赞赏。
联系飞龙,请转淘宝。
飞龙初发:
2012-02-10 03:30
本文更新网址:
https://feilong.org/session-php-webserver-no
所在目录: 网站开发