後の作業:私は設定していたログインページに:どのユーザのための
$_SESSION['user'] = $row['username'];
を正常にログインしました。 ログインページにリダイレクトされていない場合は、ランディングページに、私は、ユーザーがログインしているかどうかを確認するためのチェックを持っている:
if(!$session->is_loggedin()) {
// session no set redirects to login page
$session->redirect('index.php');
}
クラスファイル内部:
public function is_loggedin() {
if(isset($_SESSION['user'])) {
return true;
}
}
ので、私が直面している問題は、ローカルホストxampp上のインターネットサーバー上でのみ表示されます。すべて正常に動作します。問題は私がサイトにログインしている場合です。もしログアウトしてログインURLを入力すると、私はprint_r($ _ SESSION)を作成しているhome.phpにリダイレクトされており、セッションのように配列にセッションが存在することが示されます。メニューのリンクをクリックすると、セッションなしでログインページに戻ります。
とログインする必要があります。 index.phpページに
コードセッションが存在するかどうかを確認するには:彼がログインしているよう
if($login->is_loggedin()!="") {
$login->redirect('home.php');
}
は、したがって、この場合には、ユーザーがページに来るたびにそれが表示されますが、それはないですし、彼保護されるはずのhome.phpを見ることができます。ユーザーがメニューリンクをクリックすると、ログインページにリダイレクトされます。
私はローカルホスト上でXAMPPが動作しているので、これはいくつかのPHP設定かもしれないと思います。私はどこを見なければならない?
EDIT:そこセッションがあるので、私はURLを開くたびに、それがTRUEを示すかどうかを確認するために
if(isset($_SESSION['user']) && !empty($_SESSION['user'])) {
echo 'Set and not empty, and no undefined index error!';
}
:私はインデックスページで次のチェックを配置しています。 /home.phpを開くとホームページにリダイレクトされたリンクをクリックしてホームページを開き、何もエコーしません。私はそれを開くたびに、サーバーが最初のページをセッションでキャッシュしているように感じます。ブラウザが自動的にこの情報をサーバーに送信しています。
時には経験のある別のケースがあります。私はサイトを開いてログに記録しています。いずれかのボタンをクリックする私は2回目のログイン後にログインページにリダイレクトされます。すべて正常に動作します。
occuresもう一つは、偽のセッションが確立されたときに、すべてのブートストラップGlyphiconは多分これが問題である代わりに、私はPHP情報session.use_only_cookiesでONに設定されていることがわかり、実際のアイコン
の二乗を示していることです。初心者のための
必須質問(私は道オフベースここにありますか)? – Machavity
私はこの同じ種類の質問に最近数回答えました。回答は、すでに設定されていると思われるセッション配列を使用しようとしましたが、ページを再読み込みするとセッション配列が見つかりました。それ、そして/またはあなたは条件付きでセッションを開始しただけです。 –
したがって、常に最初にセッションを設定/開始してください。それが設定されていることを確認します。 –