php

位置:IT落伍者 >> php >> 浏览文章

PHP session


发布日期:2023年05月21日
 
PHP session

本文将这些问题做一个简单的汇总以便大家查阅

错误提示
Warning: Cannot send session cookie headers already sent
Warning: Cannot send session cache limiter headers already sent
分析及解决办法
这 一类问题的原因是你在程序中使用PHP  session_start()时之前已经有实际的html内容输出了或许你说我没有啊我只不过是echo或print一条消息了很抱歉你的  echo或print语句所产生的输出就是实际的html内容输出解决此类问题的办法是将你的session_start()调到程序的第一行


错误提示
Warning: open(F:/phpsessiondatasess_abfdaecfedcb O_RDWR) failed
分析及解决方法
出现这样的错误语句一般是因为你的phpini中关于sessionsave_path一项没有设置好解决的方法是将 sessionsave_path和sessioncookie_path 设置置为
session_save_path = c: emp
sessioncookie_path = c: emp
然后在c:目录下建立一个temp目录即可


错误提示
Warning: Trying to destroy uninitialized session in
分析及解决方法
出 类这样的提示一般情况都是你直接调session_destroy()函数造成的很多的朋友认为session_destroy()函数可以独立的  运行其实不然解决的方法是在你调session_destroy()函数之前要用PHP  session_start()开启session的功能

问题:怎么获得当前session的id值呢?
最简单的方法是:
echo SID;
你会发现的

问题:我的程序在调用header函数之前没有任何的输出虽然我include了一个configphp文件但在configphp 文件中也没有任何的输出为什么session还是会报出与问题同样的错误呢是不是因为我在header之前用了PHP session_start()的缘故呢?

答: 或许你确实认真的检查了你的php程序在引用header()之前确实也没有任何的输出并且在你的include文件中也没有任何的输出!  但是你是否用光标键在?>这个PHP代码结束语句后移动检查呢?那么你会发现在?>这个后面有一个空行或几个空格你删除了这几个空行或空  格那么问题就解决了
此问题会出PHP更高版本没有测试过

问:用session做登录主页面后其它页面怎么用session限制登录
最简单的方法是
session_start();
if(!session_registered
(login)
││ $login != true) {
echo "你没有登陆";
exit;
}

问:我用session_register()注册了session变量可是当我用header或用javascript的重定向语句那么 在一下页面中我却访问不到session所注册的变量值请问如何解决?
问题的程序片段
session_start();
$ ok = love you;
session_register(ok);
header("location : nextphp");
?>
nextphp
session_start();
echo $ok;
?>
解决的方法
当你用header函数或windowlocation这样的功能后你上一个页面所注册的session变量就会容易的丢失关于这个问题的原因 至今仍没有一个详细的回答
不过有解决的方法如下所示
header("Location: nextphp" "?" SID);
在跳转到下一页面的时候将session的当前id做为一个参数传到后一个页面

session如何传数组
session_register
(data);
$ data = array ();
方法是先注册后赋值

问题:我是不是可以用像$HTTP_GET_VARS[**]方式来访问session值呢?
回答可以你可以使用如下global数组来访问session以加强网页的安全性
$HTTP_SESSION_VARS
$_SESSION
例程:
session_start();
$ username = stangly
wrong;
session_register(
username);
echo $HTTP_SESSION_VARS
[username];
echo
;
echo $_SESSION
[username];
?>
请参照此例程修改符合您自己的程序

问题:session_unregister() 和 session_destroy() 有何区别?
session_unregister()函数主要作用是注消当前的一sion(译自于phpnet)
例程
if(isset($_COOKIE[session_name()])) {
session_start();
session_destroy();
unset($_COOKIE[session_name()]);
}
以上所述是一些新手经常遇到的PHP session_start()问题或许是详述不清难免有误所在请高手指点批评

               

上一篇:分享25个顶级PHP模板引擎整理

下一篇:PHP使用DES进行加密与解密的方法