ホームページ > バックエンド開発 > PHPチュートリアル > ジャンプ後に window.location.href セッションが無効になる

ジャンプ後に window.location.href セッションが無効になる

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
リリース: 2016-06-20 12:33:34
オリジナル
1992 人が閲覧しました

PHP で window.location.href を呼び出してジャンプすると、セッションが無効になり、ジャンプ後のページで使用できなくなります。


ディスカッションへの返信 (解決策)

どこにジャンプしますか?

コード

はどこにジャンプしますか?

コード

$url = "main.php";window.location.href='$url';
ログイン後にコピー


以上です

コードにはセッションがまったく設定されていません
セッションが見つからないのはなぜですか?

コードにセッションがまったく設定されていません。
セッションが見つからないのはなぜですか?



コードの前に設定があります。
その前に session=['check']=true を設定するだけです。 🎜> では、後でこれを行うと真の値が読み取れません

書き間違えていませんか? !

session=['check']=true
これは火星人の書き方なのでしょうか?

正しく書きましたか? !

session=['check']=true
これは火星人の書き方なのでしょうか?

これは間違いです。ジャンプしていないページではセッションの内容を読み取ることができますが、ジャンプしたページではセッションを読み取ることができません。

もうあなたには何も言いたくない

議論の前提は誠実であり、基本は互恵性です


あなたには何も言いたくないですもう

議論の前提は誠実であり、基礎は互恵性です


私の問題は非常に単純です。php で window.location.href を使用して Web ページにジャンプするとき、ジャンプした Web ページとセッション。元の Web ページの共有はできません

これはセッションの性質です。この問題は他の場所でも見つかっていますが、明確な解決策はありません。私のコードに問題があるわけでも、問題があるわけでもありません。コードの問題、つまり、Web ページにジャンプするためにコードを使用する必要があると思いますが、ジャンプ後に元の Web ページのセッションを読み取れないことがあります。この問題を解決するには。
さらに、私は十分に誠実であると思っており、私が知っていることはすべて話しました

Session の正しい書き方は

session_start()

$_SESSION['favcolor ' ] = 'green';
$_SESSION['animal'] = 'cat';
$_SESSION['time'] =
これと同様です。
ドメインが異なるとセッションが変更されます。以下はjspの例です。phpを使用していますが、考え方が重要です。

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%
文字列 JSESSIONID = request.getSession().getId();//現在の JSESSIONID を取得します (プライマリ ドメインからのアクセスによって生成されたか、セカンダリ ドメインからのアクセスによって生成されたかに関係なく)

Cookie cookie = new Cookie("JSESSIONID", JSESSIONID);
cookie.setDomain(".test.com"); //ここで重要なのは、Cookie の値を異なるドメイン間で取得できるようにするため、Cookie をプライマリ ドメイン名に設定し、それによって統一されたセッションを確保することです。
応答. addCookie(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>";
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

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 的变量名是区分大小写的



哦哦哦哦哦       很抱歉耽误了你这么长时间  非常感谢!
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート