飞龙博客

feilong.org 前端开发教程

服务器不支持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

所在目录: 网站开发

新作:

旧文:

  • html css js
  • angular react vue
  • flutter python