>  기사  >  백엔드 개발  >  window.location.href 跳转后 session失效

window.location.href 跳转后 session失效

WBOY
WBOY원래의
2016-06-20 12:33:341879검색

在一个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,但是思路才是重点。


 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,但是思路才是重点。


 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 跳转具体是怎么实现的

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

<?phpsession_start();$_SESSION['test'] = 'abcd';echo "<script>location='session_target.php'</script>";

session_target.
<?phpsession_start();print_r($_SESSION);

事实在那里,多说没有!

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

<?phpsession_start();$_SESSION['test'] = 'abcd';echo "<script>location='session_target.php'</script>";

session_target.
<?phpsession_start();print_r($_SESSION);

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

<?php  session_start();echo "<script>alert('登陆成功!');location='main.php'</script>";$_session["check"]=true;?>

main.php:
<?php session_start(); 	print_r($_SESSION);?>




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


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

<?phpsession_start();$_SESSION['test'] = 'abcd';echo "<script>location='session_target.php'</script>";

session_target.
<?phpsession_start();print_r($_SESSION);

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

<?php  session_start();echo "<script>alert('登陆成功!');location='main.php'</script>";$_session["check"]=true;?>

main.php:
<?php session_start(); 	print_r($_SESSION);?>




我的这个和你的差不多 但是输出就是空值
有段代码贴反了 是先赋值的 

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

<?phpsession_start();$_SESSION['test'] = 'abcd';echo "<script>location='session_target.php'</script>";

session_target.
<?phpsession_start();print_r($_SESSION);

事实在那里,多说没有!




然后我按照你的重新改了一下  
index.php
<?php  session_start();$_session["check"]=1;print_r($_SESSION);echo "location='session_target.php'</script>";?>


session_target.php:
<?phpsession_start();print_r($_SESSION);?>


也输出为空

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

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

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

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



哦哦哦哦哦       很抱歉耽误了你这么长时间  非常感谢!
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.