首页 > php学习 > 教你php中file_get_contents无法获取$_SESSION问题如何解决

教你php中file_get_contents无法获取$_SESSION问题如何解决

2013年6月25日 发表评论 阅读评论

今天在做一个功能,因为之前没有遇到过这样的问题,所以直接使用file_get_contents来获取含有$_SESSION的文件内容,结果没有办法使用,经过网络搜索为什么php中file_get_contents无法获取$_SESSION内容的相关问答,我总结出了如下办法:
1,如果你只是普通的单次(不是循环)操作file_get_contents来获取$_SESSION内容的值,我建议你这样操作:

[a.php]

[b.php]

相信使用php一年左右的人员都能看懂上面的代码,其实原理很简单,用来解决php中file_get_contents无法获取$_SESSION的问题也非常合理。

2,如果你涉及到循环,那么如何操作?
我的案例情况是这样的:
通过管理员登陆使用create.php(管理员的$_SESSION[“uid”]=1)
create.php需要读取数据库来读取其他用户包括自己,分别赋值$_SESSION[“uid”]来生成不同的left_(用户id).php文件(如:left_1.php),生成的读取来源是left_create.php,整个目录结构如下:

create.php
left_create.php
created(文件夹,用来存放生成的用户缓存文件left_uid.php)

ok,我们贴上代码如下:

[create.php]
query(“select uid from users”);
while($db->next_record()){
@session_start();//再下方的重新赋值之前,必须再次启用session,因为赋值之后需要关闭;
$_SESSION[“uid”]=$db->f(“uid”);
session_write_close();//赋值之后关闭session写
$content=file_get_contents(“left_create.php?sessionid=”.$session_id);
$file=fopen(“created/left_”.$db->f(“uid”).”.php”,”w”);
fwrite($file,$content);
}
@session_start();//在上方循环中最后一次是关闭session的,所以在此要开启,方便还原赋值session中的uid
$_SESSION[“uid”]=$temp_session_uid;
?>

[left_create.php]

通过以上2个列子,我们可以完整的解决php中file_get_contents无法获取$_SESSION的问题,还原纠正。

分类: php学习 标签: , ,
  1. 本文目前尚无任何评论.
您必须在 登录 后才能发布评论.
css.php