2011-01-20 4 views
0

私はパスワードで保護されたページを保護しようとしています。私は以下のコードを使用していますが、動作しません。セッションリダイレクト

home.php

   session_start(); 



     // Process the POST variables 
      $username = $_SESSION["user_name"]; 
       //$password = $_POST["password"]; 


      // Set up the session variables 
      $_SESSION["user_name"] = $username; 

       if(!isset($_SESSION['user_name'])) { header('Location: login.php'); die('<a href="login.php">Login first!</a>'); } 

login.php

  <?php 

      session_start(); 



      // Process the POST variables 
      $username = $_SESSION["user_name"]; 
      //$password = $_POST["password"]; 


       // Set up the session variables 
       $_SESSION["user_name"] = $username; 
+1

**実際に**動作しないものを定義する必要があります。 – zerkms

+0

投稿されたコードはセッションを認識しないか、設定しません。 – AAA

+2

あなたがやりたいことを理解して、もう一度やり直してみてください! – MDI

答えて

2

の関連部分あなたが本当に完全に質問をしていないので、ただの推測。試してみてください

$username = $_SESSION["user_name"]; 

$username = $_POST["user_name"]; 
+0

私が意味するのは、私が上に掲示したコードは、セッションを設定していないか、ログインページからセッションを引き継ぎません。 – AAA

3

でこれ

session_start(); 

if(!isset($_SESSION['user_name'])) 
{ 
    header('Location: login.php'); 
    exit; 
} 

$username = $_SESSION["user_name"]; 
$password = $_SESSION["password"]; *//EDITED* 

EDIT:しかし、交換してみ

login.php上を

<?php 
    session_start(); 

    if(isset($_SESSION['user_name'])) 
    { 
     header('Location: home.php'); 
     exit; 
    } 
?> 

<input type = 'text' name = 'login' /> 
<input type = 'password' name = 'password' /> 
<input type = 'submit' name = 'submit' /> 

EDIT 2:あなたのログイン成功の書き込み後

この

$_SESSION["user_name"] = $_POST["user_name"]; 
$_SESSION["password"] = $_POST["password"]; 

それが返されます、あなたがif(isset($_SESSION['user_name']))をチェックするとき、これは は、だから、今、この のようになります。セッション変数にポストを設定します真実でホームページにリダイレクト

+0

まだ動作しません。ログインスクリプトの関連部分も投稿させてください。 – AAA

+0

まだ動作していない、私は問題が何であるか分かりません、それは簡単だと思います! – AAA

+1

あなたは直面している問題点を詳細に説明できますか?あなたの必要条件は何ですか? –

1

空のユーザー名をコピーしているようです空の$ユーザー名の値をセッションの配列に掛けます。

できるだけセッションの情報を変更したいと考えています。あなたの更新のページで非常に

更新
<?php 

session_start(); 

// is the line below necessary on this page? 
if ($_POST['user_name'] != "") { 
    $_SESSION['user_name'] = $_POST['user_name']; 
} 

if ((trim($_SESSION['user_name']) != "")) { 
    echo $_SESSION['user_name']; 
} else { 
    header("Location: login.php"); 
    die(); 
} 

:で意味をなさない

// Process the POST variables 
$username = $_SESSION["user_name"]; 
//$password = $_POST["password"]; 

// Set up the session variables 
$_SESSION["user_name"] = $username; 

を:あなたのlogin.phphome.php使用しているの両方でコメント行

+0

それでもlogin.phpにリダイレクトされます – AAA

+1

セッション値を決して初期化していない可能性があります。 – Duniyadnd

1

を削除すべて、ログイン条件が満たされたとき(成功ログイン)、それ以外のときにのみセッション変数を設定します。他の場所では、存在するかどうかをチェックするだけです。

ログインが処理される場所をまだ投稿していないので、他のエラーがあるかどうかは分かりません。