飞龙博客

feilong.org 前端开发教程

服务器不支持session怎么办

飞龙修订于 20120210 03:30 34 次浏览

在使用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的原因。

网址:https://feilong.org/session-php-webserver-no
初发:20120210 03:30

想学前端?长按二维码加我微信

想学前端?点击飞龙QQ

分类: 网站开发

新作:

旧文:

关闭

长按二维码 -> 识别图中二维码

打开微信,发现,扫一扫

支付完成后,点击下一步

感谢大力支持

然后你手机号:

最后点这,稍等即可