2016-05-03 9 views
0

現在、私はログインシステムのコードをやっています。ログインシステムは私の機能を覚えています(次の30日間あなたを覚えています)。 Remember me機能でユーザーが「はい」を選択した場合、サーバーはCookieを作成してセッションを開始します。ユーザがRemember機能に対してyesを選択しない場合、サーバはセッションユーザのみを起動します。 ログインしたユーザーがログイン用のページ(prijava.phpファイル)を開こうとしたときに私は参加しました。私はこのコードをjQueryファイルに入れます。セッションは機能しませんか? | PHPとjQuery

$.ajax({ 
    type: "POST", 
    url: "_hsync_scripts/_hsync_prijavljen.php", 
    success: function(response) 
    { 
     if(Number(response) == 1) window.location.href = "index.php";   
    }  
}); 

これはすべてのページの読み込み時に実行されます。ログインしたユーザーは、ログインページを開くためにtrys場合は、ファイル_hsync_prijavljen.phpは、次のコード

<?php 

if(isset($_COOKIE['_hsync_prijavljen'])) echo '1'; 
else if(isset($_SESSION['_hsync_prijavljen'])) echo '1'; // MAYBE PROBLEM IS HERE? 
else echo '0'; 
?> 

とログインコード

session_start(); 
if($_hsync_zapamti == 1) setcookie("_hsync_prijavljen", $_hsync_id, time() + 2592000, "/"); 
$_SESSION['_hsync_prijavljen'] = $_hsync_id; // MAYBE PROBLEM IS HERE? 
echo '0'; 

が含まれている、彼はindex.phpにリダイレクトされます - その部分は動作します。次に動作しない部分は - 私が私の機能を覚えていない状態でログインすると、(URLバーに)ログインページへのリンクを入力すると、サーバーはindex.phpにリダイレクトされません。どうして?これは私がPHPセッションで働いていた時代です。多分私はPHPセッションのポイントを理解していませんか?私はタブを閉じなかったので、seesionはまだアクティブでなければならないのですか?か否か?ありがとう!

+1

'_hsync_prijavljen.php'にも' session_start() 'があります。 – Maximus2012

+0

'session_start()'を追加しましたが、いつも私がログインしているということを知っています。 – SilvioCro

+1

'var_dump($ _ SESSION);を追加してみてください。 exit;を '_hsync_prijavljen.php'に送り、あなたが得るものを見てください。 – Maximus2012

答えて

2

あなたのコードは罰金だが、_hsync_prijavljen.phpsession_start();を必要とする、すなわち:

<?php 
session_start(); 
if(isset($_COOKIE['_hsync_prijavljen'])) echo '1'; 
else if(isset($_SESSION['_hsync_prijavljen'])) echo '1'; // MAYBE PROBLEM IS HERE? 
else echo '0'; 
?> 

あなたは$_SESSION(Webサーバに保存されている情報)と$_COOKIE(ユーザデバイスに保存されている)の違いを理解することを確認してください。

+0

私は知っていますが、ブラウザのタブを閉じた後、Webサーバーのセッションを停止する必要がありますか?セッションが停止するとき? – SilvioCro

+1

この回答を確認http://stackoverflow.com/a/8311400/797495 –

+0

私はセッションの時間の範囲を望んでいません。私は、なぜユーザーがブラウザー(またはタブ)を閉じるとセッションが止まらないのか分かりません。 – SilvioCro

関連する問題