window.location.href 跳转后 session失效

WBOY
Release: 2016-06-20 12:33:34
Original
1876 people have browsed it

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


回复讨论(解决方案)

跳转到哪里?

你的代码

跳转到哪里?

你的代码

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


就是这样

你的代码中根本就没有设置 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 跳转具体是怎么实现的

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

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

session_target.
<?phpsession_start();print_r($_SESSION);
Copy after login
Copy after login
Copy after login
Copy after login

事实在那里,多说没有!

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

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

session_target.
<?phpsession_start();print_r($_SESSION);
Copy after login
Copy after login
Copy after login
Copy after login

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

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

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




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


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

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

session_target.
<?phpsession_start();print_r($_SESSION);
Copy after login
Copy after login
Copy after login
Copy after login

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

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

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




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


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

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

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

session_target.
<?phpsession_start();print_r($_SESSION);
Copy after login
Copy after login
Copy after login
Copy after login

事实在那里,多说没有!




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


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


也输出为空

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

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

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

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



哦哦哦哦哦       很抱歉耽误了你这么长时间  非常感谢!
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template