2011-10-27 10 views
0

これは基本的なPHPであり、私は初心者です。PHPの基本セッションの使用

はここで最初のファイルに私のコードです:

session_start(); 
$_SESSION['username'] = $username; 
$_SESSION['password'] = $password; 

header('Location: cms.php'); 

ここでは別のファイルに他の一つだ:

if (session_id() == '') { 
    header('Location: login.php'); 
} 

は基本的に、私は、最初のコードでセッションを作成しました。私が次にしようとしているのは、セッションが作成されたかどうかを判断することです。そうでなければ、ログインページにリダイレクトされます。ここでの問題は、全くセッションが作成されていないことです。それはsession_id()を表示しようとしたときに思ったことで、何も表示されませんでした。

ここで私は何が欠けていますか?私はそれがheader()機能と関係があると思います。しかし、それにもかかわらず、私は助けが必要であり、本当にこれについての説明とより良いコードを感謝するでしょう。

ありがとうございます!

+0

'のsession_start();'セッションを使用するすべてのページで。 – xdazz

+0

ありがとうございます。わかった。 – Turtel

答えて

2

良いコード:あなたが必要

session_start(); 
if (empty($_SESSION['username'])) { 
    header('Location: login.php'); 
    exit; 
} 
+0

これはこれを達成するための正しい方法です。ちょうどexplainationを追加したい:PHPマニュアルphp.net "session_start()で指定されているように、セッションを作成するか、GETまたはPOSTリクエストを介して渡されたセッション識別子に基づいて現在のセッション識別子を再開するか、 $ _SESSIONまたはsession_id()にアクセスする前にsession_start()を呼び出してください。 – davur

関連する問題