php在服务器中获取不到session的值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php在服务器中获取不到session的值相关的知识,希望对你有一定的参考价值。

php在服务器中获取不到session的值,

确定一下几点
1之前的代码逻辑是否已经给session赋值,使用var_dump($_SESSION)来查看
2请求中是否回传了PHPSESSID,如果没有,则可能导致获取session失败
3是否在操作时清除了浏览器的cookie?追问

你说的PHPSESSID是什么意思,小白不怎么懂,还有就是在本页面的session里是有值的,在别的页面接收是就没有了,在操作时没有清除cookie

追答

p1.php

<?php
    session_start();
    $_SESSION[\'var1\']=\'session val\';
    $sn = session_id();
    $url="<a href="."\\"p2.php?s=".$sn."\\">下一页</a>";
    echo $url;
?>

p2.php

<?php
    session_id($_GET[\'s\']);
    session_start();
    echo "传递的session变量var1的值为:".$_SESSION[\'var1\'];
?>

先创建2个php页面,代码如上,测试一下你的环境session是否正常工作

参考技术A 确定一下几点
1之前的代码逻辑是否已经给session赋值,使用var_dump($_SESSION)来查看
2请求中是否回传了PHPSESSID,如果没有,则可能导致获取session失败
3是否在操作时清除了浏览器的cookie?
参考技术B 贴代码.......追问

(php)获取不到session的值 在其他页面 我在这边存储了一个session 跳转到其他页面就获取不到了

语法应该没什么问题 输出session也没报错 大概是配置问题 php.ini 改如何配置Session
(详解)

这个问题是你的页面没有关联
比如你有a.php b.php 和c.php
你在a.php里面使用session,那么b.php和c.php肯定是取不到session的啦
你这样,把a.php作为公共页面
你用b.php引用a.php
c.php也引用a.php
然后你在a.php使用session,b和c就都能取到session
简单的说, 你要使用session,必须这几个页面有关联追问


这样也取不到

追答

你可能要强制刷新一下页面
这个是session特殊的原因

追问

表单跳转到index页面 赋值session 可以获取的到 当我跳转下面的页面就不行了

不知道什么原因

追答


这段代码是index.php是么?
如果是,那么引用这个index.php的其他页面里面
不需要再session_start();
还有if(isset($_SESSION['aaa']))
有时候这个isset函数判断的不是你想要的,我是遇到过的,你还是直接输出一下session里面的值吧

追问

现在如果是公用页面可以获取到session的值了 但是我从login跳到index 不可能吧login这页面都公用吧 具体怎么做呢 唉 加分!!!

追答

你这样吧
你的程序不需要连接数据库么
你可以用一个main.php作为公用页面,在里面开启session
里面可以放连接数据库的代码呀
这样你后面的php文件也可以方便操作数据库了呀
这样不好么
还有,比如初始化一些程序需要的东西
比如使用smarty框架,使用语言包
都可以在这个main.php文件里初始化呀

参考技术A 注意个问题,session不能跨域名。追问

表单跳转到index页面 赋值session 可以获取的到 当我跳转下面的页面就不行了

不知道什么原因

追答

你在index.php中,$_SESSION['aaa'] = $_POST['aaa']; 这句有问题。
在第二个页面你include了index.php,这时没有post数据,所以$_SESSION['aaa']被置空了。

参考技术B session是在浏览器的一个进程里,你的页面如果是两个进程,session是不能共享的。 参考技术C 我用的tp5.0 框架,也遇到这个问题,楼主解决了吗 参考技术D 应该不是配置的问题.
你的代码贴出来看看.

以上是关于php在服务器中获取不到session的值的主要内容,如果未能解决你的问题,请参考以下文章

php 基础

dedecms怎么获取session

如何在js中获取session中的对象的属性值

怎样在php中得到js的值

如何让php获取session的值

php中怎么取得session里面的值