2012-03-18 7 views
0

PHPのログインファイルがあるので、ユーザー名とパスワードが正しいかどうかを確認した後、メインページにリダイレクトされます。要は、どのユーザーかを覚えておきたいので、彼のセッションだけになります。PHPでセッションを作成してログイン

if(mysql_num_rows($result) > 0) 
{ 
    session_start(); 
    $_SESSION['username'] = $username; 
    $_SESSION['password'] = $password; 
    header('Location: ../Main_page/main_page.php'); 
} 

をだから今、私が使用してメインページに:

<?php 

$user = $_SESSION['username']; 
?> 

と私の後に私は、出力のユーザー名に、たとえばたい場合は、私が使用していた間、のは、一部のログイン

例:

<dt>Welcome, <em><?php echo $_SESSION['username']?></em></dt> 

しかし、それは動作しません... は、このコードでエラーを見つけるために私を助けてください

+0

スクリプトの冒頭で常に 'session_start()'を呼び出しますか? – evotopid

+3

セッションに平文パスワードを入れる正当な理由は全くありません。 – bkconrad

+3

パスワードをセッション変数に入れないでください! – Shackrock

答えて

2

すべてのスクリプトの先頭行にsession_start()とコールし、常に変数が許可/デバッグの目的で設定されているかどうかをチェックします。この

if(isset($_SESSION['username'])){ 

//welcome user 
    } 
else 
{ 
    //sorry, you need to log in 
} 

ような何かはあなたにも、あなたがsession_start()あなたのスクリプトの先頭に置く前error_reporting(E_ALL)ini_set("display_errors", 1);を設定していることを確認します。このアドバイスは、「このコードでエラーが見つかりましたら教えてください」

+0

私のウェブサイトの他のセクションにその部分を追加するまではうまくいきました。その後、同じセッションであることを認識せず、再度ログインするように求められます... –

+0

上記を各スクリプトの先頭に追加しましたか? if条件は好きな場所にすることができますが、 'session_start()'は最上部にあるべきです – jmishra

+0

yesです。ログインするとメインページに行きますが、そこから他のページにリダイレクトしようとすると、ログインする必要があることがわかります。このコードを使用しました<?php session_start(); if(!isset($ _ SESSION ['username'])) die( "

このページを表示するにはログインする必要があります"); –

0

出力またはヘッダーがブラウザに送信される前に、すべてのページの先頭にsession_start()を挿入します。

関連する問題