2016-05-17 6 views
0

大文字と小文字を区別し、スイッチとセッションを使用して1ページの管理パネルを作成しようとしています。phpログイン/ログアウトを1ページにする

私のコードは次のとおりです。

<?php 
    if (isset($_SERVER['QUERY_STRING'])) { 
     switch ($_SERVER['QUERY_STRING']) { 
      case "logout": 
       break; 
      case "restpassword": 
       break; 
      // Default Page 
      default: 
       session_start(); 
       if (isset($_POST['username']) && isset($_POST['password']) && $_POST['username']) { 
        $username = $_POST['username']; 
        $password = $_POST['password']; 
        $userid = login($username, $password); 

        if ($userid != "0") { 
         //Correct username and password set session & redirect 
         if (isset($_SESSION['user_id'])) { 
          $userid = $_SESSION['user_id']; 
          $username = $_SESSION['username']; 
          echo "Welcome " . $username; 
         } 
         break; 
        } else { 
         $msg = "Incorrect username or password"; 
        } 
       } 
       ?> 
       <html> 
        <head> 

        </head> 
        <body> 
         <form method="post"> 
          <?php 
           //Print error message 
           if (isset($msg)) { 
            echo $msg; 
           } 
          ?> 
          <label>Username:</label> 
          <input name="username" type="text" required="true"/> 
          <label>Password :</label> 
          <input name="password" type="password" required="true"/> 
          <input type="submit" name="submit" value="Login" required="true"/> 
         </form> 
        </body> 
       </html> 
       <?php 
       break; 
     } 
    } 
?> 

問題は、私はページを再入力ならば、それはすべてのセッションを保存していないと私は再度ログインしなければならなかったです。

私はそれをどのように解決すればよいのでしょうか?あなたのページの最上部へ

おかげでたくさん

+2

あなたのページの最上部に 'session_start()'を移動し、 'switch'コードの一部ではありません。 – mitkosoft

+0

あなたのログインリンクからは、変数を渡すことをお勧めします。 www.login.com?user=accessのように。 $ _GET [user] = accessの場合、このようにしてログイン機能を実行し、チェックを行い、セッションを保存することができます。その後、ログアウトリンクでは、あなたのログアウト機能を実行する別の変数。あなたはまだ1つのページに固執したい場合は、アイデアを得ることを願って –

+0

私にそれを行うには、コード例を与えることができます – Markos

答えて

0

移動のsession_start()。 PHPの開始タグの後の最初の行...

+0

同じ問題、まだ動作していません – Markos

+0

あなたのコードを分解して、いくつかのものを取り出して、あなたの方法をトラブルシューティングできますか? –

-1

ページの最上部に追加する必要があります。私はこれがうまくいくと思います。

関連する問題