2016-12-30 12 views
1

セッションに問題があります。ユーザーがログアウトすると、そのことが機能するように見えます。ユーザーはメンバーエリアにアクセスできません。しかし、誰かがメンバーエリアページのURLバーにアドレスを書き込むと、メンバーページにアクセスしたり、メンバー専用ページをクリックしたりすることもできます。セッションはリンクをクリックすると機能しますが、URLにlinkadressを入力するかブラウザの「戻る」ボタンをクリックしても動作しません

これは、これはそれが一番上にすべてのメンバーシップのページを探す方法です私のコードは、login.php

<?php 
session_start(); 

if(isset($_SESSION['usr_id'])!="") { 
    header("Location: profileuser"); 
} 

include_once 'Db.php'; 

//check if form is submitted 
if (isset($_POST['login'])) { 

    $email = mysqli_real_escape_string($con, $_POST['email']); 
    $password = htmlentities(mysqli_real_escape_string($con, $_POST['password'])); 
    $result = mysqli_query($con, "SELECT * FROM table WHERE email = '" . $email. "' and password = '" . md5($password) . "'"); 

    if ($row = mysqli_fetch_array($result)) { 
     $_SESSION['usr_id'] = $row['id']; 
     $_SESSION['usr_name'] = $row['email']; 
     $_SESSION['usr_fname'] = $row['name']; 
     $_SESSION['usr_ename'] = $row['ename']; 
      $_SESSION['usr_vip'] = $row['vipoo']; 
     header("Location: profile"); 
    } else { 
     $errormsg = "<script>alert('Wrong!')</script>"; 
    } 
} 
?> 

のためにどのように見えるかです。

<?php 
session_start(); 
if(!isset($_SESSION["usr_id"])){ 
header("Location: index"); 
exit(); } 
include_once 'Db.php'; 
?> 
+0

キャッシュの問題のようです。あなたのPHPページでキャッシュヘッダーを送信しないことを確認してください。 –

答えて

0

問題が解決しました! session_start()の後にこの1行のコードを追加するだけでした。

ini_set("session.cache_limiter", "must-revalidate"); 
関連する問題