PHP login skript und weiterleitungen

adblue

Well-known member
24 Juli 2009
57
2
hi

ich habe ein funktionierendes login skript und gebe dem user beim einloggen die information ob der login erfolgreich war oder ob die texteingabefelder leer waren. das realisiere ich mit weiterleitungen im php code per

header ("location: formular.php?error=2");

jede fehler nr hat eine bedeutung. auf der formularseite frage ich dann die error -variable ab und blende die jeweilige hilfe bzw status ein. kann man das auch intelligenter/schöner lösen?


danke
 
wie wäre es einfach mit ein paar Ifs direkt die richtige Ausgabe hinzuschreiben und den Nutzer erst gar nicht weiterzuleiten ?
 
mit einfachem PHP ?
Mach mir das mal vor Ice

Wenn Du das abgefeuerte Formular auswertest, gibst Du danach doch ohnehin irgendwas aus, sei es ein Willkommen, oder ein redirect zurück auf die Hauptseite. Statt dem redirect, per echo (oder Template-System) eine Meldung ausgeben und das Formular erneut anzeigen lassen. Den redirect zur Hauptseite gibt es dann eben erst mit erfolgreichem Login...

Sinnhaft:
PHP:
<?php

$error = '';
if ($_POST['submit'])
{
   // Formulardaten & Login checken
   $success = login($bla, $blubb); // Oder wie auch immer die Loginfunktion aussieht

   if ($success)
   {
        // Weiterleitung zur Zielseite
   }
   else
   {
       // Fehlerausgabe
       $error = 'Falsche Benutzerdaten';
   }
}
?>
<ein bissl html-fummel>
<?php if ($error) echo $error; ?>
<form action="formular.php" method="post">
...
Hier kommt das Login-Formular
...
</form>
<noch ein bissl html-fummel>

Was ist daran nicht einfach?
 
Ein Login kann man nicht abfragen, ob es erfolgreich war, man kann ausgeben das es erfolgreich war.
Die Prüfung bezieht sich doch nur auf Gleichheit der eingegebenen Daten.

Ich nutze dennoch redirect's, weil meine Formular Prüfung automatierst ist in nur einer Datei für alle Formulare. Dort wird nichts ausgegeben, nur ausgewertet.

If Abfragen ? Kenn ich nicht. :ugly:

Nachtrag:
Ich bevorzuge auch eine strikte Trennung von PHP und HTML Code. Ich mixe nicht beides in einer Datei.
 
Zuletzt bearbeitet:
HTML-PHP-Mix gibt es bei mir auch nicht, aber da steht auch "SINNHAFT" darüber. Das HTML-Gedöhns am Ende kann man auch in ein TPL-System stopfen, aber es ging hier um "einfach", oder nicht?

Natürlich kann man abfragen ob der Login erfolgreich war, oder nicht (bzw. dies durch einen Returncode prüfen).