1

ユーザー名とパスワードに基づいて特定のページにユーザーをリダイレクトするこのphpスクリプトがあります。

ログインして自分のページにリダイレクトされたら、(たとえばホームページに移動して) 離れてから、再度クライアント ログインをクリックして自分のページに戻ると、既にログインしていることを示すメッセージがポップアップ表示されます。ここをクリックして表示します。あなたのページ。ログインしたユーザーのページにリダイレクトするにはどうすればよいですか?

理解できない場合は、私のサイトにアクセスして確認してください (ユーザー: tyler パス: ログイン情報は tyler) splitlinemedia.com

login.php

<?php
    if(!defined("SESSION")){
    session_start();
    define("SESSION", true);
 }
    if(isset($_GET["log_out"])){
    unset($_SESSION["logged_in"]);
    header('refresh: 3; url=login.php');
    echo "You're logged out, and will be redirected in about 3 seconds";
    exit;
 }

 $login = true;
 require "protect.php";

 $logins[0]["user"] = "tyler";
 $logins[0]["pass"] = "tyler";
 $logins[0]["redirect"] = "test.php";

 $logins[1]["user"] = "x";
 $logins[1]["pass"] = "y";
 $logins[1]["redirect"] = "z.php";

  // No need to edit below, except the errors

 if(isset($_POST['submit'])){ //is the form submitted?
   if(empty($_POST['user']) || empty($_POST['pass'])){
     echo "You have to fill out the user name and password!";
     exit;
   } //check for empty user name or password
   $is_logged = false; 
   foreach($logins as $login){
      $user = $_POST;
      if(($user["user"] == $login["user"]) && ($user["pass"] == $login["pass"])) {
         $is_logged = true;
         $_SESSION["logged_in"] = array($login["redirect"], true); 
         header("Location: ".$login["redirect"]);
     exit;
     }
 }
 if(!$is_logged){ echo '<script type="text/javascript">alert("Inncorect username or     password");window.history.go(-1);</script>'; } 
 }
 ?>

プロテクト.php

<?php
if(!defined("SESSION")){
   session_start();
   define("SESSION", true);
}
   if((!isset($_SESSION["logged_in"])) || !$_SESSION["logged_in"][1]){
     if(!isset($login)){
        header("Location: login.php"); //check to see if logged in, otherwise go to the login
    exit;
   }
  } else if (isset($login) || isset($index)){
  echo "Your already logged in!! <a href='login.php?log_out'>Click here</a>, to logout.   Or, go back to your <a href='{$_SESSION['logged_in'][0]}'>page</a>.";
  exit;
 }
?>

次に、これは私のtest.phpページの上部にあります

<?php
include("protect.php");
?>
4

2 に答える 2

0

これはあなたを助けるかもしれません、

<?php
if(!defined("SESSION")){
session_start();
define("SESSION", true);
}
 if((!isset($_SESSION["logged_in"])) || !$_SESSION["logged_in"][1]){
 if(!isset($login)){
 header("Location: login.php"); //check to see if logged in, otherwise go to the login
exit;
}
} else if (isset($login) || isset($index)){
header("Location: " . $_SESSION['logged_in'][0]);
}
?>
于 2013-03-24T01:00:02.760 に答える
0

protect.phpで、すでにログインしていることを示すエコー行を、次のようなヘッダー リダイレクト行に置き換えるだけです。header("Location: ".$_SESSION['logged_in'][0]);

于 2013-03-24T00:54:50.307 に答える