2012-03-20 11 views
-1

ログインページの後にセッションを作成し、以前に作成したセッションiで安全なページにリダイレクトしたいのですが、セッションデータが通過しません。問題..セッションデータがパスされていません

PHPのセッションは:まず

<?php session_start(); $_SESSION['login']; ?> 
    <p>Welcome 
    <?php 
    //retrieve session data 
    echo $_SESSION['login']; 
    ?> 
    to M-Cloud</b> 
+1

セッションデータを保存する直前に$ emの値を確認しましたか?完全なスクリプトがなければ、その時点で$ emに問題があるかどうかわかりません。また、コードの2番目のブロックでsession_start()の直後に$ _SESSION ['login']を呼び出す必要はなく、問題の原因となる可能性があります。 – kingcoyote

+0

'mysql_num_rows()'の前に何が起こりますか? –

+0

私はこの部分をここで更新しました.. TQ – henrykwl

答えて

3

$em = $_POST['email']; 
$pw = $_POST['password']; 
$em = mysql_real_escape_string($em); 
$pw = mysql_real_escape_string($pw); 
$query = "SELECT * FROM Register WHERE email = '$em' AND pass = '$pw'"; 

$result = mysql_query($query) or die("Unable to verify user because : " . mysql_error()); 

if (mysql_num_rows($result) > 0) { 

session_start(); 
// store session data 
$_SESSION['login']=$em; 

//echo 'Connected'; 
// Jump to secured page 
echo "<script>window.location='http://example.com/secure.php'</script>"; 
} 

ページは私がにリダイレクト。

session_startがページの上部にあることを確認してください。それがベストプラクティスです。

セッションが設定されているときに、$ emに値が設定されていることを確認してください。

使用しているウェブホスティングがSESSIONSをサポートしていることを確認してください。

2ページ目の一番上に、$ _SESSION ['login']は必要ありません。ビット

$ emには値があります。そのページにエコーして確認してください。

これで解決しない場合は、問題の原因を見つけるためにコードを貼り付けてください。

+0

警告:session_start()[function.session-start]:セッションCookieを送信できません - 既に送信されたヘッダ(/www/zymichost.comで開始された出力/m/y/c/mycloud/htdocs/login.php:6)/www/zymichost.com/m/y/c/mycloud/htdocs/login.php 7行目 警告:session_start()[関数.session-start]:セッションキャッシュリミッタを送信できません - すでに送信されているヘッダ(/www/zymichost.com/m/y/c/mycloud/htdocs/login.php:6で出力が開始されました)/www/zymichost.com/ m/y/c/mycloud/htdocs/login.php on line 7 – henrykwl

+0

ob_start();ページの上部に – HarryBeasant

0

2番目のページの最初のを削除してから$_SESSIONの配列全体をprint_r($_SESSION);と表示して、値が正しいかどうかを確認することができます。

関連する問題