2012-03-23 12 views
0

Ich habe eine Indexseite mit drei Links wie folgt. Wenn ich auf den ersten Link klicke (pageType1 im Beispiel unten), wird pageType1.php ausgeführt, das zuerst prüft, ob der Benutzer über einen Cookie eingeloggt ist. Wenn dies nicht der Fall ist, leiten Sie den Benutzer auf eine Anmeldeseite um. wenn ein Benutzer korrekt Login und Passwort Informationen über Login-Seite einreichen, möchte ich auf pageType1.phpVerweisen auf eine Seite, die eine bestimmte Seite aufgerufen

Datei die Informationen anzuzeigen: index.php

<a href="pageType1.php" target="_blank">PageType1</a> 
<a href="pageType2.php" target="_blank">PageType2</a> 
<a href="pageType3.php" target="_blank">PageType3</a> 

DATEI: pageType1.php

<?php 
include"auth/auth_check_header.php"; 
print("pageType1 contents"); 
?> 

DATEI: pageType2.php

<?php 
include"auth/auth_check_header.php"; 
print("pageType2 contents"); 
?> 

DATEI: pageType3.php

<?php 
include"auth/auth_check_header.php"; 
print("pageType3 contents"); 
?> 

DATEI: Auth/auth_check_header.php

$successful_login_url = ?????? //How to track this value. 

if (!cookie_enabled) 
    { 
    //login page 
    header("location:$successful_login_url"); 
    } 

Meine Frage ist, wie "$ successful_login_url" Wert zu verfolgen (oder was shoud ich als Wert dieser Variablen gesetzt) ​​in Auth/auth_check_header.php

Hinweis: Ich habe versucht, $ _SESSION ["referer"] als Wert von "$ successful_login_url" zu setzen, aber es zeigt index.php nach erfolgreicher Anmeldung. Vielen Dank im Voraus

Antwort

0

1) Benutzer versuchen, eine pageType1.php

2) der Benutzer umgeleitet wird auf die login.php zuzugreifen, die eine enthält Formular mit dem versteckten Feld:

<input type="hidden" name="redirectTo" value="<?php echo $_SESSION["HTTP_REFERER"]?>" /> 

3) Benutzer den Login eingeben und wenn erfolgreich authentifiziert:

$redirectTo = $_POST['redirectTo']

4) Wenn $redirectTo nicht leer ist, dann umleiten, sonst umleiten setzen auf eine Standardseite

+0

Danke Keynes, diese Herangehensweise funktionierte für mich in gewissem Maße, war aber sehr hilfreich und gab einen Hinweis darauf, wie man mit diesem Problem umgeht. – learner

+0

@learner Gern geschehen. Wenn Sie einen detaillierteren Code (anstelle von Snippets) veröffentlichen, kann ich Ihnen zeigen, wie Sie ihn richtig anwenden. Ihr Code beim Überprüfen des Cookies ist seltsam, Sie prüfen zuerst, ob der Cookie gesetzt ist, und wenn nicht, leiten Sie auf die Erfolgsseite um? 'header (" Speicherort: $ successful_login_url ");' –

0

Sie können die Seiten-URL als eine GET-Variable übergeben (Query String) und basierend darauf umleiten oder wenn Sie die Seite, in der das Include ist, erhalten möchten, können Sie 'PHP_SELF' verwenden und speichern in einer variablen und verwenden sie es umleiten zurück:

$_SERVER['PHP_SELF'] 

http://php.net/manual/pt_BR/reserved.variables.server.php

+0

Ich habe versucht, $ _SESSION ["HTTP_REFERER"] als Wert von "$ successful_login_url", zeigt aber nach erfolgreicher Anmeldung index.php an. – learner

+0

Vergiss das bitte. Es wird die URL von der Seite geben, auf die die URL angefordert wurde. Ich habe meine Antwort mit einer Lösung bearbeitet. – rcdmk

+0

irgendwie hilft es mir nicht und es fing an, mir falschen Benutzernamen und Passwort zu geben. – learner

Verwandte Themen