2017-07-29 1 views
0

Ich möchte, dass meine Website entweder per Sitzung oder Cookie aufgerufen wird. Aber nach dem Schreiben dieses Codes benötigt die Seite beide Bedingungen, um wahr zu sein. Was ist hier falsch?Dieser Code leitet zur Anmeldeseite um, anstatt auf derselben Startseite zu bleiben.

<?php 
    if(((isset($_SESSION['SUCCESS']) && $_SESSION['SUCCESS'] != "") || 
    (isset($_COOKIE['is_logged_in']) && $_COOKIE['is_logged_in'] != "")) 
    == false){ 
     $_SESSION['ERROR'] = "Please login first"; 
     header('location: login.php'); 
    } 

?> 
+1

Versuch zu überprüfen, spaltete es in ein 'if..else if..' und zu testen. –

Antwort

0
if(isset($_COOKIE['is_logged_in']) && $_COOKIE['is_logged_in'] != ""){ 
    if(!isset($_SESSION['SUCCESS'])){ 
     $_SESSION['SUCCESS'] = true;//or whatever you want 
    } 
} 

Und dann Sitzung

if(!isset($_SESSION['SUCCESS']) || $_SESSION['SUCCESS'] == ""){ 
    $_SESSION['ERROR'] = "Please login first"; 
    header('location: login.php'); 
}else{ 
    //move to home page 
} 
+0

Wenn ich versuche mich anzumelden, wenn ich nicht auf "remember me" klicke, bekomme ich keinen Zugriff auf die Homepage. Das bedeutet, dass ich mich ohne Cookie nicht anmelden kann. –

+0

@OzThewizard versuchen aktualisiert Code – programmingArrow

+0

Warum ist Code, den ich früher nicht für Sie arbeiten? Es funktioniert für mich. – programmingArrow

0

Keine Notwendigkeit zu schreiben == false. Versuchen Sie mit dem Entfernen es

if((isset($_SESSION['SUCCESS']) && $_SESSION['SUCCESS'] != "") || 
(isset($_COOKIE['is_logged_in']) && $_COOKIE['is_logged_in'] != "") 
){ 
    $_SESSION['ERROR'] = "Please login first"; 
    header('location: login.php'); 
} 
+0

Dies gibt direkten Zugriff auf die Homepage, ohne sich einzuloggen. –

Verwandte Themen