当前位置:Gxlcms > PHP教程 > window.location.href跳转后session失效

window.location.href跳转后session失效

时间:2021-07-01 10:21:17 帮助过:29人阅读

在一个php中调用window.location.href跳转后,在跳转后的页面中session失效无法使用,怎么解决


回复讨论(解决方案)

跳转到哪里?

你的代码

跳转到哪里?

你的代码

$url = "main.php";window.location.href='$url';


就是这样

你的代码中根本就没有设置 session
何来的 session 丢失?

你的代码中根本就没有设置 session
何来的 session 丢失?



有设置啊,在代码前面 我以为你要看是这怎么跳转的呢
就是在前面设置了session=['check']=true
然后在后面都这个的时候读不出这个真值

你这不有写错啦?!
session=['check']=true
这是火星人的写法吧?

你这不有写错啦?!
session=['check']=true
这是火星人的写法吧?


是这个写错了 代码里没有问题 我在 没跳转的那个页面里可以读出来session里的东西
但是在跳转到的那个页面就读不到session了

不想和你说什么了
讨论的前提是真诚,基础是对等

不想和你说什么了
讨论的前提是真诚,基础是对等


我这个问题就是很简单的 在php中用window.location.href 来跳转网页的时候,跳转的网页和原网页的session不能共享
这是session的性质,我在别的地方也是查到这个问题但没有明确的解决办法,不是说我的代码有问题,也不是代码的问题,我认为我已经把我的问题已经说明白了,就是当用跳转网页的时候,原网页的session 对于跳转后的网页是无法读取的,这样怎么解决。
另外 我觉得我已经够真诚了,并且我已经把我所知道的都告诉你了

Session 正确的写法是
session_start();
$_SESSION['favcolor'] = 'green';
$_SESSION['animal'] = 'cat';
$_SESSION['time'] = time();
类似这样。
不同的域会导致session的改变。下面是要给jsp的例子,一看就懂,虽然你使用php,但是思路才是重点。

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%
String JSESSIONID = request.getSession().getId();//获取当前JSESSIONID (不管是从主域还是二级域访问产生)

Cookie cookie = new Cookie("JSESSIONID", JSESSIONID);
cookie.setDomain(".test.com"); //关键在这里,将cookie设成主域名访问,确保不同域之间都能获取到该cookie的值,从而确保session统一
response.addCookie(cookie); //将cookie返回到客户端

request.getRequestDispatcher("indes.jsp").forward(request, response);

%>
引用页面
http://www.cnblogs.com/nicholas_f/archive/2010/11/05/1869811.html

Session 正确的写法是
session_start();
$_SESSION['favcolor'] = 'green';
$_SESSION['animal'] = 'cat';
$_SESSION['time'] = time();
类似这样。
不同的域会导致session的改变。下面是要给jsp的例子,一看就懂,虽然你使用php,但是思路才是重点。

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%
String JSESSIONID = request.getSession().getId();//获取当前JSESSIONID (不管是从主域还是二级域访问产生)

Cookie cookie = new Cookie("JSESSIONID", JSESSIONID);
cookie.setDomain(".test.com"); //关键在这里,将cookie设成主域名访问,确保不同域之间都能获取到该cookie的值,从而确保session统一
response.addCookie(cookie); //将cookie返回到客户端

request.getRequestDispatcher("indes.jsp").forward(request, response);

%>
引用页面
http://www.cnblogs.com/nicholas_f/archive/2010/11/05/1869811.html


你的我懂了 但是我还想问一下window.location.href 跳转具体是怎么实现的

你的态度是真诚的,但你我掌握的信息(是你不愿提供)是不对等的
你的代码有问题,所以会有错误的表现!

  
session_target.
    
事实在那里,多说没有!

你的态度是真诚的,但你我掌握的信息(是你不愿提供)是不对等的
你的代码有问题,所以会有错误的表现!

   
session_target.
      
事实在那里,多说没有!
index.php:


main.php:




我的这个和你的差不多 但是
输出就是空值


你的态度是真诚的,但你我掌握的信息(是你不愿提供)是不对等的
你的代码有问题,所以会有错误的表现!

    
session_target.
        
事实在那里,多说没有!
index.php:


main.php:




我的这个和你的差不多 但是
输出就是空值


有段代码贴反了 是先赋值的

你的态度是真诚的,但你我掌握的信息(是你不愿提供)是不对等的
你的代码有问题,所以会有错误的表现!

   
session_target.
      
事实在那里,多说没有!




然后我按照你的重新改了一下
index.php
";?>


session_target.php:


输出为空

这有你的!明明写错了,还不认账
$_session["check"]=true;
应写作
$_SESSION["check"]=true;

php 的变量名是区分大小写的

这有你的!明明写错了,还不认账
$_session["check"]=true;
应写作
$_SESSION["check"]=true;

php 的变量名是区分大小写的



哦哦哦哦哦 很抱歉耽误了你这么长时间 非常感谢!

人气教程排行