この記事の動作環境: Windows7 システム、PHP7.1 バージョン、DELL G3 コンピューターphp がセッションを渡せない問題の解決策: 1. クライアントで cookie を有効にする; 2. ブラウザの問題を確認して cookie にアクセスする; 3. php.ini で session.use_trans_sid を有効にする。
PHP で SESSION をページ間で渡せない問題の解決策
1. クライアントで Cookie が無効になっている
2. ブラウザに問題があり、一時的に Cookie にアクセスできません
3. php のセッション。 ini.use_trans_sid = 0 またはコンパイル中に --enable-trans-sid オプションがオンになっていませんでした
PHP のセッションは、デフォルトでクライアントの Cookie を使用してセッション ID を保存するため、クライアントの Cookie に問題があると、セッションに影響します。セッションは必ずしも Cookie に依存する必要はないことに注意してください。これが、Cookie と比較したセッションの優れた点でもあります。クライアントの Cookie が無効になっている場合、または問題が発生している場合、PHP は自動的にセッション ID を URL に付加し、セッション ID を介してセッション変数をページ間で使用できるようにします。ただし、この添付ファイルには特定の条件もあります。つまり、「php.ini の session.use_trans_sid = 1、またはコンパイル中に --enable-trans-sid オプションがオンになっている」ということです。
2. URL を通じて値を手動で渡し、非表示のフォームを通じてセッション ID を渡します。
3. session_id をファイル、データベースなどに保存し、クロスページ プロセス中に手動で呼び出します。
## phpここで、クライアント上の Cookie を手動で閉じて再度実行すると、結果が得られない可能性があります。結果が得られない場合は、php.ini で session.use_trans_sid = 1 を設定するか、コンパイル時に --enable-trans-sid オプションをオンにすると、「中華人民共和国」という結果が得られますセッション開始 (); $_セッション [ ' var1 ' ] = 」 中華人民共和国 」 ; ;
$url = 」 次のページ 」 ;
エコー $url ; ?>
php
上記のコードを実行すると、クライアント Cookie が正常であれば、「中華人民共和国」という結果が得られるはずです。
セッション開始 (); エコー 」 渡されたセッション変数 var1 の値は次のとおりです。 」 。 $_セッション [ ' var1 ' ];
?>
これは上記のアプローチ 1 です。
アプローチ 2 について話しましょう:
変更されたコードは次のとおりです:
s1.phpphpセッション開始 (); $_セッション [ ' var1 ' 】 = 」 中華人民共和国 」 ; ; $sn = セッションID (); $url = 」 次のページ 」 ;
エコー $url ; ?>
s2.php メソッド 3: login.html# php
セッションID ( $_GET [ ' s ' ]);
セッション開始 ();
エコー 」 転送のセッション量var1の値は次のとおりです: 」 。 $_セッション [ ' var1 ' ];
?>mylogin1.php<; タイトル > ログイン タイトル >
<; html >< 頭 >
<; メタ http - 相当する = 」 コンテンツタイプ 」 コンテンツ = 」 テキスト/html;文字セット=GB2312 」 >
頭 >
<; 体 > 请登录:
<; フォーム名 = 」 ログイン 」 方法 = 」 役職 」 ### アクション = 」 mylogin1.php 」 >
用户名 :< 入力方式 = 」 文章 」 名前 = 」 名前 」 >< br >
口 令 :< 入力方式 = 」 パスワード 」 名前 = 」 合格 」 >< br >
<; 入力方式 = 」 提出する 」 価値 = 」 登录 」 >
形状 >
体 >
html >dab9e16aa2ce38d1b59590711cd18413
mylogin2.phpデータベース方式については例を挙げませんが、ファイル方式と同様です。 要約すると、上記のメソッドには 1 つの共通点があります。それは、前のページでセッション ID を取得し、それを次のページに渡す方法を見つけることです。コード session_id (それを渡します) を追加します。 ) 次のページの session_start(); コードの前にあります。表示されたセッション ID);推奨学習: 「# php
Cookie テストもオフにしてください。ユーザー名: laogong パスワード: 123 これは、セッション ID をファイルに保存するためのものです。ファイルは: e:/tmp/phpsid.txt です。ファイル名を決定してください。独自のシステムに従ったパスです。
$fp = フォーペン ( 」 e:/tmp/phpsid.txt 」 、 」 r 」 );
$sid = 恐れる ( $fp 、 1024 );
f閉じる ( $fp );
セッションID ( $sid );
セッション開始 ();
もし ( セット ( $_セッション [ ' ユーザー ' ]) && $_セッション [ ' ユーザー ' 】 = 」 老公 」 ) {
エコー 」 ログインしました! 」 ;
}
それ以外 {
// 正常にログインして関連操作を実行します
エコー 」 ログインしていません、アクセス権がありません 」 ;
エコー 」 閲覧するにはログインしてください 」 ;
死ぬ ();
}
?>
PHP ビデオ チュートリアル 」
以上がPHPがセッションを通過できない場合はどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。