0

私はウェブサイトにいくつかのページを持っています。すべてのページにはバーがあり、次のように配置します。

session_start();
include('bar.php');
echo $bar;

bar.php の内容は多かれ少なかれ次のとおりです。

session_start();
$username=$_SESSION['username'];
if empty($username) {
    $bar='You are not logged in.';
} else {
    $bar='You are logged in.';
}

問題は、バーが機能する (つまり、実際にログインしているのに「ログイン済み」と表示される) 場合と、機能しない (ログインしていないユーザーのコンテンツを表示する) ことです。たとえば、インデックスを参照すると、ログに記録されていないユーザーのバーが表示されますが、ログイン ページに移動すると、ログに記録されたユーザーのバーが表示されます。

また、PHPSESSID Cookie を削除してからログインしようとしましたが、このバグは表示されませんでした。なんで?

4

1 に答える 1

1

2 番目の session_start(); 単に無視されるので、これは問題ではないと思います。session_start() が false を返すかどうかを確認できます: http://es.php.net/manual/en/function.session-start.php

于 2012-09-30T10:13:26.300 に答える