郁闷的php的session

今天碰到一个错误
Notice: Undefined index: seccode 因为seccode是session中保存的一个值,我想应该是这个值为空引发的错误
但是网上说是变量使用前未定义
引用:
首 先,这个不是错误,是warning。所以如果服务器不能改,每个变量使用前应当先定义。

方法1:服务器配置修改
修改 php.ini配置文件,error_reporting = E_ALL & ~E_NOTICE

方法2:对变量进行初始 化,规范书写(比较烦琐,因为有大量的变量)。但还没有找到好定义方法,望大家指教

方法3:每个文件头部加 上:error_reporting(0); 如果不行,只有打开php.ini,找到display_errors,设置为display_errors = Off。以后任何错误都不会提示。


方法4 :做判断:isset($_GET["page"])      if-else判断
或者加上 '@'表示这行如果有错误或是警告不要輸出
如:@$page=$_GET["page"]

方法5:file1.php文件 把$xx变量付一个值,用post传递给file2.php,
如果file2.php没有$xx的定义,而直接使用$yy=$xx; 系统就会报错:"undifined variaable $xx", 如果file2.php的文件开始用$xx="";定义,那么file1.php的$xx值就传不过来了!

file2.php里可以这样
if(!isset($xx)) $xx="";


试了半天没有用,除了变量前加@
但是这个只是不报告改变量的错误,并不 能解决问题
于是搜了半天php的session设置
最后发现两个地方可能有问题
session.auto_start = Off
在客户访问任何页面时都自动初始化会话,默认禁止。
因为类定义必须在会话启动之前被载入,所以若打开这个选项,你就不能在会 话中存放对象。

session.use_trans_sid = Off
是否使用明码在 URL中显示SID(会话ID)。
默认是禁止的,因为它会给你的用户带来安全危险:
1- 用户可能将包含有效sid的URL通过email/irc/QQ/MSN…途径告诉给其他人。
2- 包含有效sid的URL可能会被保存在公用电脑上。
3- 用户可能保存带有固定不变sid的URL在他们的收藏夹或者浏览历史纪录里面。
基 于URL的会话管理总是比基于Cookie的会话管理有更多的风险,所以应当禁用。

经过反复实验设置
session.auto_start = 1
就好了
原因是修改的这个程序很多页面没有session_start();
可能服务 器上配置的session.auto_start = 1
但是这样不能在会话中存放对象
唉,晕死
没办法别人写的,还是不改的好
浪费时间郁闷的php的session

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值