2

ユーザーが自分のアカウントにサインインしていない場合にログインページに移動するリンクを作成したいのですが、それ以外の場合は、必要なページにアクセスできます

<li><?php session_start();
if (!(isset($_SESSION['login']) && $_SESSION['login'] != ''))
{
    //header ("Location: login.php");
    echo("<script>alert('login to see this page');</script>");
}
else 
    echo ('<a href="ask-expert.php">')?>Ask A Export</a></li>

上記のスニペットを自分で実行しようとしましたが、警告が表示され(意図的に与えられた)失敗し、リンクのテキストが非表示になりました。また、ヘッダーを使用して警告を表示しない場合、ログインに自動リダイレクトされますが、クリックでそれが必要です! どうすればそれが可能になりますか?

4

2 に答える 2

1

セッション (<li>タグ) を開始する前にデータを送信しないでください。

セッションは Cookie を使用し、Cookie は HTTP ヘッダーに設定されます。コンテンツが既に送信されている場合、サーバーはヘッダーを追加できません。

header()ところで、関数にも同じ問題があります。

于 2013-05-27T10:26:18.217 に答える