Kurze Frage zu Switch und Case

funnyzocker

Erfahrenes Mitglied
Hallo.
Für mein Registrierungs Script schreibe ich gerade das Script zum anlegen der User.

Nun ist es so das der User sein Passwort 2 mal eintragen muss (zur sicherheit das er sich nicht verschrieben hat)

Bisher sieht mein code so aus
PHP:
switch($abschicken) {
        case $_POST['name'] !="":
             echo"Bitte den Namen eingeben";
             break 1;
        case $_POST['vorname'] !="":
             echo"Bitte den Vornamen eingeben";
             break 1;
        case $_POST['email'] !="":
             echo"Bitte die Emailadresse eingeben";
             break 1;
        case $_POST['nick'] !="":
             echo"Bitte einen Nicknamen eingeben";
             break 1;
        case $_POST['passwort'] !="":
             echo"Bitte ein Passwort eingeben";
             break 1;
        
}
Nur komme ich jetzt nicht weiter.
Welche Anweisung muss ich geben das das passwort und passwort1 übereinstimmen müssen und wenn nicht dann fehlermeldung. Hänge da gerade auf dem Schlauch
 
PHP:
        case $_POST['passwort'] != $_POST['passwort1']:
             echo "Kennwörter stimmen nicht überein";
             break 1;
So sollte das funktionieren. Wobei ich so eine Art [phpf]switch[/phpf] wie bei dir noch nie gesehen habe. Üblicherweise prüft man damit nur den Inhalt der an [phpf]switch[/phpf] übergebenen Variable. Aber wenn es klappt... Jedem das seine ;)
 
Bei einem switch-Kontrollkonstrukt werden die evaluierten Werte der nach dem Schlüsselwort „case“ angegebenen Ausdrücke werden mit dem evaluierten Wert des in den Klammern stehenden Ausdrucks verglichen.

Deinen Algorithmus auf ein if/else-Konstrukt umgeformt, würde wie folgt aussehen:
PHP:
if( $abschicken == ($_POST['name'] !="") ) {
	echo"Bitte den Namen eingeben";
} else if( $abschicken == ($_POST['vorname'] !="") ) {
	echo"Bitte den Vornamen eingeben";
} else if( $abschicken == ($_POST['email'] !="") ) {
	echo"Bitte die Emailadresse eingeben";
} else if( $abschicken == ($_POST['nick'] !="") ) {
	echo"Bitte einen Nicknamen eingeben";
} else if( $abschicken == ($_POST['passwort'] !="") ) {
	echo"Bitte ein Passwort eingeben";
}
Ist das denn das was du wolltest?
 
Also das klappt einwandfrei mit meinem Switch. Jedes nicht eingegebene Formularfeld wird bemängelt.

Ich lerne ja noch. Ist es so wie ich es dort löse nicht zu empfehlen?
 
Warum macht ihr es euch denn so schwer ...

Also ich selber habe es zwar noch nicht so gemacht, aber switch nehme ich persönlich nur für's Seiten inlcuden her ... index.php?site=xxx

Habe bisher immer folgenden Code verwendet.

PHP:
if(empty($_POST['name'])) {
    echo"Bitte den Namen eingeben";
} else if(empty($_POST['vorname'])) {
    echo"Bitte den Vornamen eingeben";
} else if(empty($_POST['email'])) {
    echo"Bitte die Emailadresse eingeben";
} else if(empty($_POST['nick'])) {
    echo"Bitte einen Nicknamen eingeben";
} else if(empty($_POST['passwort'])) {
    echo"Bitte ein Passwort eingeben";
} else if($_POST['passwort'] != $_POST['passwort2']) {
    echo"Passwörter stimmen nicht überein";
}
 
Zuletzt bearbeitet:
Zurück