1
非常に問題があります。別のページにリダイレクトした後にsession_id()を取得するときにエラーが発生する
Post/Redirect/Getパターンを使用してPHPでログインフォームを開発したいと考えています。ログインフォームを含むページが、このようなものです:デバッグの目的のために
<?php
if (try_login()) {
session_regenerate_id();
session_start();
header('Location: main.php');
exit();
}
?>
<html>
<head>
<!-- etc, etc -->
</head>
<body>
<form action="<?php echo htmlentities($_SESSION['PHP_SELF']); ?>" method="post">
<!-- etc, etc--></head>
</form>
</body>
</html>
、main.php
は、私だけが正常にログインした後main.php
に取られて、私のsession_id()
を示すことを期待
<?php
echo htmlentities(session_id());
?>
が含まれています。しかし、自分でログインフォームをテストすると、main.php
にリダイレクトされますが、私のsession_id()
は表示されません。私のコードに何が問題なのですか?
'session.auto_start'を使用していない限り、セッションデータに応じて*すべての*ページで' session_start() 'を使って明示的にセッションを開始する必要があります。 –
すみません言い訳はありますが...どうしたの?実際には起動していなくても、セッションを再開しても 'session_start()'を使用する必要がありますか? – pyon
プログラミング時には、ドキュメントを読んではいけません。 HTTPはステートレスであることを忘れないでください。これは、前のページで何かを呼び出したことをサーバーが知らないことを意味します。それはページ要求を持っていることだけを知っています。だからあなたはセッションで何かをする前にsession_start()を呼び出さなければなりません。 http://www.php.net/manual/en/session.examples.basic.php –