2016-04-03 18 views
0

Ich benutze angepasste Seiten auf meiner Website, wo ich überprüfen muss, ob der Benutzer angemeldet ist, und wenn nicht, umleiten auf eine andere Seite. Bei erfolgreicher Anmeldung ein Session-Variable eingerichtet ist, wie:Benutzer umleiten, wenn nicht angemeldet

session_start(); 
$_SESSION['login'] = "1"; 

Um zu überprüfen, ob der Benutzer in oder nicht auf einer Seite angemeldet ist, verwende ich diesen Code am Anfang der Seite:

session_start(); 
if($_SESSION['login']=='') 
{ 
    @header("location:login.php"); 
} 

jedoch die Seite nicht selbst wenn der Benutzer angemeldet ist, nicht in nicht umleiten der gezeigte Fehler ist

Hinweis:. Undefined index: Login in XXXX/XXXX/XXXX/XXXX

Gibt es eine andere Methode, um andere Benutzer als header() umzuleiten, oder vielleicht kann ein anderer Code verwendet werden, um den gleichen Zweck zu erreichen?

+0

Haben Sie erstellen eine login.php als Vorlage oder nur eine benutzerdefinierte Datei? ODER Sie können es mit is_user_logged_in() versuchen. – user1990

+0

Verwenden Sie die Funktion is_user_logged_in(), um zu überprüfen, ob der Benutzer sich anmeldet oder nicht. Verwenden Sie dann die Funktion wp_redirect, um auf den gewünschten Speicherort umzuleiten. –

+0

Ich benutze login.php als benutzerdefinierte Datei. – NewLander

Antwort

0

Es erscheint der login Index $_SESSION nicht an der Zeit stellen Sie es sind überprüft, höchstwahrscheinlich das $_SESSION['login'] = "1"; Bit nach dem Check kommt, so dass Sie Sie gehen zu müssen, um sicherzustellen, überprüfen, ob er eingestellt ist oder nicht verwenden die array_key_exists Funktion wie folgt:

if (array_key_exists('login', $_SESSION) && $_SESSION['login']=='') { 
    @header("location:login.php"); 
} 

Alternativ können Sie explizit $_SESSION['login'] = 0, zum Beispiel festlegen, die standardmäßig und setzen nur $_SESSION['login'] = "1"; wenn die Anmeldung erfolgreich ist.

Zur gleichen Zeit, empfehle ich Ihnen nicht, Ihre eigenen Login-Mechanismus zu verwenden, stattdessen Skripts und Techniken, die ursprünglich von sachkundigen Programmierer von WordPress entwickelt und gut von der Community getestet. Ein solcher Ansatz wird in this question on the wordpress support site beschrieben (fügen Sie diese zu Ihrem Thema des functions.php):

add_action('init', 'redirect_visitors'); 

function redirect_visitors() { 
    if (! is_user_logged_in()) { 
    wp_redirect('http://your-site.com/wp-login.php'); 
    exit; 
    } 
} 
Verwandte Themen