Post oder GET überprüfen

xtratz

Gesperrt
Guten Morgen allerseits,

ich schicke ein Formular per POST an eine Datei.
Jetzt möchte ich, bevor die Datei die Daten verarbeitet, diese mit einer Bedingung verknüpfen.
Da die Datei noch anders genutzt wird sollen die Daten erst verarbeitet werden wenn geprüft wurde ob was per POST geschickt wurde.
Ich kenn mich mittlerweile mit if Anweisungen aus, aber ich weis nicht wie ich prüfen soll ob was per POST gesendet wurde.

Für eine kleine Hilfestellung wäre ich dankbar.

Gruss
 
Prüfen ob eine Varaible gesetzt ist, kannst Du mit

if(isset($variablenname)){

}

Ob ein Array einen Inhalt enthält überprüfst Du mit count.

if(count($_POST)>0){

}

Marcus.
 
Oder Du prüfst, ob der Submit-Button gedrückt wurde, dann ist der Index in $_POST mit dessen Namen nämlich gesetzt:
PHP:
if (isset($_POST['nameDesSubmitButton'])) {
    //Formular verarbeiten
}
Gruß hpvw
 
Das geht ja schneller als die Polizei erlaubt.
Danke euch ich werd gleich mal probieren was am besten passt.

Gruss
 
Ich hätt noch ein kleines Problem wo mir nix mehr einfält mit meinen Kentnissen.

Und zwar will ich die EIngaben überprüfen und anhand des Fehlers einen bestimmten Parameter in die URL übergeben den ich dann mit GET Analysiere und die entsprechenden Fehlermeldungen ausgebe.

a) ob die Emailadresse schon existiert
b) ob das Passwort korrekt bestätigt wurde.

Eigentlich kein Problem.....aber ich würde gerne wissen wie man das eleganter Lösen könnte.
Kann man den Code vielleicht irgendwie anders schreiben, ich lerne gerne dazu.

PHP:
if($mail['benutzer_email'] == $_REQUEST['benutzer_email'] ){
   header ("Location: anmeldung.php?fehler=email");
   }else{
   header ("Location: ok.php");
   }
   
    if($_REQUEST['benutzer_passwort'] != $_REQUEST['benutzer_passwort_2'] ){
   header ("Location: anmeldung.php?fehler=pw");
   }else{
   header ("Location: ok.php");
   }
   
   
    if($_REQUEST['benutzer_passwort'] != $_REQUEST['benutzer_passwort_2']  && $mail['benutzer_email'] == $_REQUEST['benutzer_email']){
   header ("Location: anmeldung.php?fehler=pw+email");
   }else{
   header ("Location: ok.php");
   }

Gruss
 
Am besten packst du das Formular und dessen Verarbeitung in ein Skript. Dann ist es einfacher Fehleingaben entsprechend zu behandeln.
 
Mein Vorschlag:
PHP:
if($_REQUEST['benutzer_passwort'] != $_REQUEST['benutzer_passwort_2']
        && $mail['benutzer_email'] == $_REQUEST['benutzer_email']) {
    header ("Location: http://www.deineDomain.tld/"
        ."verzeichnis/anmeldung.php?fehler=pw+email");
} elseif ($mail['benutzer_email'] == $_REQUEST['benutzer_email']) {
    header ("Location: http://www.deineDomain.tld/"
        ."verzeichnis/anmeldung.php?fehler=email");
} elseif ($_REQUEST['benutzer_passwort']
        != $_REQUEST['benutzer_passwort_2']) {
    header ("Location: http://www.deineDomain.tld/"
        ."verzeichnis/anmeldung.php?fehler=pw");
} else {
    header ("Location: http://www.deineDomain.tld/"
        ."verzeichnis/ok.php");
}
Erläuterung:
In Deiner Variante wird bereits, wenn ddie E-Mail geprüft wurde zu ok.php weitergeleitet, der Rest wird nicht mehr beachtet. Daher habe ich elseif eingeführt und prüfe die "härteste" Bedingung zuerst.
Das HTTP-Protokoll sieht für Location einen absoluten URI vor. Ich habe bisher zwar noch keine Probleme mit irgendeinem Browser feststellen können, aber sicher ist sicher.
Hier handelt es sich offensichtlich um eine Anmeldung, da sind detaillierte Fehlermeldungen hilfreich, aber bei einem späteren Login würde ich auf Details in der Fehlermeldung verzichten, um Cheatern nicht unnötig Informationen zu geben.

Gruß hpvw

PS: Verstehe ich es richtig, dass die E-Mail-Prüfung doppelte Anmeldungen unter einer E-Mail-Adresse verhindern soll?
 
DAnke für die Beiträge.
Ich weis das es nicht allzu sicher ist mit GET Parametern zu Arbeiten.
Ich wüsste aber leider nicht wie ich entsprechende Fehlermeldungen anders ausgeben oder verarbeiten könnte.

PS: Verstehe ich es richtig, dass die E-Mail-Prüfung doppelte Anmeldungen unter einer E-Mail-Adresse verhindern soll?

Ja das ist korrekt.
Ist da was faul drann

Gruss und vielen Dank.
 
xtratz hat gesagt.:
Ja das ist korrekt.
Ist da was faul drann
Eigentlich war die Frage nur, um sicher zu gehen, dass ich das Problem verstehe. Prinzipiell ist da nichts faul dran. Es könnte aber faul werden, da ich nicht weiß, wie und woher Du $mail ermittelst.
Gruß hpvw
 
Zurück