1

したがって、私はPHPに非常に慣れていないため、おそらく愚かな間違いを犯しています。しかし、私はかなり長い間検索してきましたが、何が問題なのかを理解できませんでした。

XAMPP を使用すると、すべての PHP が正常に動作します。しかし、それを Web サーバーにロードすると、ログイン フォームを規定する if ステートメントによって、「ログイン」フォームと「ログアウト」フォームの両方が同時に表示されます。明らかに私が欲しいものではありません!

コード スニペットは次のとおりです。

<?php
   if ( isset( $_SESSION['email'] ) ) { // Check to see if user is logged in.  If so, display log out button.
?>
    <form class="navbar-form pull-right" action="logout.php" method="POST">
    <button name="submit" type="submit" class="btn btn-success">Log Out</button>
    </form>
<?php 
   } else { // display log in form
?>
    <form class="navbar-form pull-right" action="login.php" method="POST">
    <input name="email" type="text" class="span2" placeholder="email">
    <input name="password" type="password" class="span2" placeholder="password">
    <button name="submit" type="submit" class="btn btn-success">Log In</button>
    </form>
<?php 
   } 
?>

これは index.php ファイルに含まれています。

基本的なロジックは、ユーザーがログインしているかどうかを確認するために、セッション用に電子メール変数が作成されているかどうかを確認するテストです (login.php の実行で行われます)。

これがログインを作成する最良の方法かどうかはわかりませんが、それが私がやろうとしたことです.

繰り返しますが、私はこれに非常に慣れていないので、次にどこを見るべきかについての洞察をいただければ幸いです!

ありがとうございました!

4

4 に答える 4

5

ソースを表示して、PHP コードが実際に解釈されていることを確認します。ブラウザのソースに PHP タグが表示される場合は、Web サーバーが正しく構成されていません。

于 2013-01-08T23:51:06.173 に答える
0

試す

if(!empty( $_SESSION['email'] ))

最初に session_start() を実行していただければ幸いです。

于 2013-01-08T23:52:10.077 に答える
0

あなたの *.php ファイルは PHP ファイルのように動作しないと思います。Web サーバーの設定を確認する必要があります。

于 2013-01-08T23:52:51.507 に答える
0

を使用しませんでしたecho。前にステートメントなしでテキストを表示してみてもいいechoですか?

于 2013-09-22T09:55:42.750 に答える