2016-07-16 10 views
0

私はいくつかのユーザーがいくつかのコンテンツを編集できるバックエンドでサイトを作ろうとしています。同じセッション内でログインした後にPHPでリダイレクトする

私はindex.phpを持つフォルダを作成しました。 私はユーザーがindex.phpにログインするようにしたい、そして、有効な後、編集したいものを選択できるサイトにリダイレクトする必要があります(main.phpと呼ぶことができます)。

これでログイン確認が完了しました。ログインはヴァリデであれば、私は、ユーザーがある場合は、バックのindex.phpにリダイレクトしたかった私は、セッション

session_start(); 
$_SESSION['login'] = 1; 
header("location: main.php"); 

を始めていますし、main.phpに私はこの

if(!isset($_SESSION['login']) && ($_SESSION['login'] != 1)){ 
    header("location: index.php"); 
} 

のように起動したいです しかし、main.phpが$ _SESSION ['ログイン']を知らないので、私はちょっとしたことでログインします...

私の間違いがあって、どういうわけか私が何もしなかったのはポイントですセッション。 main.phpはどのようにSessionをindex.phpから得ることができますか?それを解決する最善の方法は何ですか?

+0

あなたは 'のsession_start()あなたは' $ _SESSION'にアクセスするたびに、 'を使用してセッションを開始する必要があります。あなたが読んでいるか、それに書いているかは関係ありません。 – Ahmad

答えて

1

main.phpからセッション変数にアクセスできます。 main.phpでは、あなたが$_SESSION['login']

if(!isset($_SESSION['login']) && ($_SESSION['login'] != 1)){ 
header("location: index.php"); 
} 

ちょうどsession_start();は、ページの上部にあるべきであることを覚えてアクセスすることができた後

session_start(); 

を使用してセッションを開始します。 Like:

<?php 
session_start(); 
if(!isset($_SESSION['login']) && ($_SESSION['login'] != 1)){ 
header("location: index.php"); 
} 
?> 
+0

thx。私はページの上にそれを書くのを忘れていました~~ – hatemjapo

+0

@hatemjapoあなたの問題を解決したら答えを受け入れてください。また、http://php.net/manual/en/function.session-nameでもっと詳しく調べることができます。 phpおよびhttp://php.net/manual/en/function.session-start.php –

0

$ _SESSIONグローバル配列にアクセスする前に、session_start();を追加してください。

session_start(); 
if(!isset($_SESSION['login']) && ($_SESSION['login'] != 1)){ 
    header("location: index.php"); 
} 
0

セッションは、ページ間でデータを渡すために使用されています。それはセッション

main.phpを再開docsを参照してください。あなたの場合、はい:セッションが必要です。ただし、両方のページで$_SESSIONがアクティブであることを確認する必要があります。以下のコードスニペット-は、この優れたを説明するかもしれない:

<?php 
     // FILE-NAME: index.php 
     //FIRST CHECK IF SESSION EXIST BEFORE STARTING IT: 
     if (session_status() == PHP_SESSION_NONE || session_id() == '') { 
      session_start(); 
     } 
     // CHECK IF USER HAS CORRECTLY LOGGED IN USING YOUR LOGIC. 
     // IF USER IS LOGGED IN, THEN SET THE SESSION TO 1 
     // OTHERWISE SET THE SESSION TO NULL... 
     $_SESSION['login']  = 0; 
     if($userIsLoggedIn){ 
      $_SESSION['login'] = 1; 
      header("location: main.php"); 
      exit; 
     } 


    ?> 

    <?php 
     // FILE-NAME: main.php 

     //FIRST CHECK IF SESSION EXIST BEFORE STARTING IT: 
     if (session_status() == PHP_SESSION_NONE || session_id() == '') { 
      session_start(); 
     } 

     // FILE-NAME: main.php 
     if(!isset($_SESSION['login']) && ($_SESSION['login'] != 1)){ 
      header("location: index.php"); 
     } 
関連する問題