1

私はこのコードを持っています:

function logout()
{
    $_SESSION = array(); //destroy all of the session variables
    session_destroy();
}

// defaults to welcome view unless a different view is requested
$view = empty($_GET['view']) ? 'welcome' : $_GET['view'];

switch ($view) {
    case "logout";
        logout();
        header('Location: index.php');
        break;
}

if(isset($_SESSION['valid']) && $_SESSION['valid']) {
    include 'views/main/layout.php';
}
include 'views/main/loggedin.php';

私がしたいことは次のとおりです。

  1. ログアウトをクリックすると (ログアウトの case ステートメントが実行されます)。
  2. セッションの内容は破棄されます。
  3. ユーザーは、このコード ページ (index.php) の先頭にリダイレクトされます。
  4. ウェルカム ビュー (デフォルト)
  5. ログアウトをクリックする前に設定された「loggedin.php」ではなく、「layout.php」を含む include ステートメントを使用します。

そのため、レイアウトをテンプレートとして使用し、本体にウェルカムを配置する必要があります。

ただし、loggedinlayout をテンプレートとして使用しており、本体にようこそ

したがって、これを修正するには、ログアウト ケース ステートメントの最後で何らかの方法で、php を最後にリダイレクトし、使用するレイアウトを決定する方法が必要です。

誰か提案はありますか?GOTO コマンドを使用することを考えていました。

4

1 に答える 1

1

ケース条件は、セミコロンではなくコロンで終了する必要があります。

 case "logout":

いいえ

 case "logout";
于 2012-11-15T14:34:51.870 に答える