Nach Login auf vorige Seite zurückkehren?

sam

Erfahrenes Mitglied
salve php'ler

hab mal wieder ein kleines "problem"
für euch ;)

ich habe mir mit hilfe dieses tutorials
einen kleinen login-bereich gebastelt.
auf jeder unterseite ist im menü ein
kleines formular zum einloggen.
so weit, so gut :)
aber wie schaffe ich es, dass nach
dem einloggen nicht die index.php,
sondern eben die seite erscheint,
auf der der user sich eingeloggt hat?
wenn möglich ohne lange vars in der url ;)

mfg
sam
 
Überprüf in der index.php doch einfach noch mal, ob die Session gültig ist und gerade läuft. Dann baust Du Dir noch eine Seite zusammen, in der Du nach dem Starten der Session (also sprich nach dem Einloggen) wieder zu der index.php zurückgehst und die Session mit übergibst.
Eine andere Möglichkeit fällt mir nicht ein, aber das muss nichts heissen.
 
1. Variante wäre, ein javascript:history.go(-1) (oder: history.back())
zu lösen. Allerdings wird, je nach Browsereinstellung, die Seite, von der der Besucher herkommt, nicht neu geladen wird (wegen Cache)

2. Variante: Du bringst in dein Einlogg-Formular ein unsichtbares Eingabefeld mit rein, in dem die aktuelle Seite steht. Dieses Argument wird in der login-Datei ausgewertet (=in eine Variable gespeichert :) ) und dann der header-Befehl oder der Metatag, oder was auch immer du zum zurücknavigieren benutzt, angepasst.

3. Variante: die Funktion getenv("HTTP_REFERER"); liefert als Rückgabewert die Ursprungsseite (den Referrer). Das kannst du allerdings auch per Javascript lösen.

hth
 
auf punkt 1 bin ich auch noch gekommen,
aber das bringt mir leider nix, da das,
wie gesagt, dann aus dem cache geladen
wird ;)

punkt 2 und 3 werde ich mal versuchen
einzubauen. danke

@asphixia: häh? :-)
 
humm, machs mal ungefähr so :)
PHP:
<?
function login(){
session_start (); // Starte eine Session.

// ======== AUFBAU DER DATENBANKVERBINGUN ========
$connID = mysql_connect ("host", "user", "password");
@mysql_select_db ("dbname", $connID);

// Generiere und starte die Abfrage
$sql = "SELECT * FROM Benutzerdaten WHERE (Benutzername like '$username') AND (Kennwort = '$password')";
$result = mysql_query ($sql, $connID);

if (mysql_num_rows ($result) > 0) {
  // Ein Datensatz wurde gefunden.
  $datenrichtig = true;

  // Variable $user_eingeloggt erstellen.
  $user_eingeloggt = true; 
} else {
  // Die Benutzerdaten waren falsch.
  $datenrichtig = false;

  // Variable $user_eingeloggt erstellen.
  $user_eingeloggt = false;
}

// Variable $user_eingeloggt in der Session registrieren.
session_register ("user_eingeloggt");

}//funktion ende...

if(isset($_POST['username'])){
  login();
}

//bla bla bla, seite halt...

edit: axxo vergessen, dass muss dann natürlich in die seite rein, die aufgerufen werden soll nach dem login...
 
Zuletzt bearbeitet:
alles viel zu umständlich ;)
getenv("HTTP_REFERER") erfüllt
alle meine wünsche :)
danke an alle, problem is aus der
welt geschafft...
 
Zurück