0

フォーラムのページに取り組んでいview_category.phpますが、小さな問題があります。リンクが機能していません。ログインしていますが、ページにログインしていないことが示されているため、フォーラムを閲覧しているだけのゲストのように扱われています。フォーラムでトピックを作成できません。私の create_topic.php リンクにアクセスできません。

ここに私のコードがあります

// Assign local variables
$cid = $_GET['cid'];

// Check to see if the person accessing this page is logged in
if (isset($_SESSION['uid'])) {
    $logged = " | <a href='create_topic.php?cid=".$cid."'>Click Here To Create A Topic</a>";
} else {
    $logged = " | Please log in to create topics in this forum.";
}

なぜこうなった??

私はちょうど含めました

var_dump($_SESSION); 

そしてこれが出力

 array(2) { ["username"]=> string(7) "mura" ["password"]=> string(4) "1234" }
4

4 に答える 4

7

session_start();ファイルのヘッダーに置く

于 2012-12-07T17:21:37.220 に答える
1

if (isset($_SESSION['uid']))に変更if (isset($_SESSION['username']))

ユーザーに関する現在のセッション情報は$_SESSION['username']ではなく$_SESSION['uid']に保存されるため、ユーザー名を使用してユーザーがログインしているかどうかを確認するか、ユーザーがログインするときに uid をセッションに入れることができます。

ところで、パスワードをセッションに入れないでください。

于 2012-12-07T17:41:19.887 に答える
1

あなたがやっている

isset($_SESSION['uid'])

しかし、var_dump を実行すると、その値はダンプに含まれません。ある時点で (isset() を実行する前に) セッションに追加する必要があります。

関係のない話ですが、セッション内でパスワードを保存するのは安全ではありません。

于 2012-12-07T17:41:24.000 に答える
1

表示された出力に基づいて、問題が見つかったようです。2 つの変数が設定されています。

"username"
"password" 

上記のソリューションでは、参照しようとしています:

$_SESSION['uid']

存在しないようです。この変数を作成していないか、正しく設定されていません。いずれにせよ、ロジックは本来あるべきことを行っています。変数が設定されていないため、「作成」リンクが表示されることはありません。すでに設定した 2 つの変数のいずれかを指すようにロジックを変更するか、「$_SESSION['uid']」変数に値を割り当ててみてください。

お役に立てれば。

于 2012-12-07T17:42:49.883 に答える