0

index.php にセッションを登録して印刷しました。

$_SESSION['login'] = 'ok'; //print 'ok'

次に、page1.php でこのセッションを取得して変更します。

<?$_SESSION['login'] = 'no';?>
setTimeout('window.location="index.php"', 100);

現在、index.php にはまだ「ok」という出力があります。どのようにすることができます?

4

2 に答える 2

3

あなたのコメントから、あなたはsession_start()両方の権利を持っていましたか?しかし、これを段階的に見てみましょう:

  1. index.phpに移動し、セッション変数を「ok」に設定します
  2. この後、 page1.phpに移動し、セッションを「いいえ」に設定すると
    、ページがindex.phpにリダイレクトされます。
  3. index.phpのセッション変数の値を出力し、 page1.phpの値を「いいえ」に設定した後でも「OK」を返しますよね?しかし、 index.phpにリダイレクトされたときに、セッションの値を「ok」に戻したのを忘れていました。

index.php には条件がまったくないため、他のページに設定しても、常に「ok」と出力されます。

于 2013-06-08T02:47:31.700 に答える
0

スクリプトごとに、次のコード行を含める必要があります。

<?php session_start(); ?>

これを行わないと、PHP は$_SESSION変数を保持せず、最初に設定されたものにデフォルト設定されます。

PHP$_SESSION変数の詳細については、こちらをご覧ください: PHP: session_start()

于 2013-06-08T02:40:04.307 に答える