2016-12-30 2 views
1

Ich habe ein Problem mit meinen Sitzungen. Es scheint, dass, wenn der Benutzer sich abmeldet, die Sache funktioniert. Der Benutzer kann nicht auf den Memberbereich zugreifen. Aber die Sache ist, wenn jemand die Adresse in die URL-Leiste für die Memberbereichsseite schreiben würde, dann könnten sie darauf zugreifen und auch auf einige Nur-für-Mitglieder-Seiten klicken. DieseSitzung funktioniert, wenn Sie auf den Link klicken, aber nicht beim Eingeben der Linkadresse in URL oder Klicken auf die Schaltfläche "Zurück" im Browser

ist, wie mein Code wie für 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>"; 
    } 
} 
?> 

sieht Dies ist, wie es für jede Mitgliedschaft Seite an der Spitze sieht.

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

Sieht aus wie ein Cache-Problem. Stellen Sie sicher, dass Sie keine Cache-Header mit Ihren PHP-Seiten senden. –

Antwort

0

Problem gelöst! Ich musste nur diese einzelne Codezeile nach session_start() hinzufügen;

ini_set("session.cache_limiter", "must-revalidate"); 
Verwandte Themen