Zur Navigation

Sicherheitsabfragen im Formular

1 Marcel (Gast)

[Anm. Jörg: verschoben aus diesem Thread]

Ich probier's gleich mal aus.

Nun habe ich noch eine weitere Fragen zu meinem Programm.

Ich möchte gerne weitere Sicherheitsabfragen hinzufügem:

- Maximallänge
- Maximalzahl
- Minimalezahl
- Anzahl an Ziffern

Zu jedem möchte ich einen anderen Text ausgeben. Wie kann ich sowas realisieren? Liege ich mit einer switch-break-Schleife richtig?

***

09.02.2006 21:03

2 Jörg Kruse

Soweit ich weiß, kann switch nur bei einem Vergleich analog zu '==' eingesetzt werden, nicht bei Vergleichen mit '<' oder '>', die du hier benötigst. Du könntest stattdessen aber mit if - elseif - else arbeiten, z.B.:

if($a < 1 || $b < 1) {

echo "zu kleine Zahl";

} elseif($a > 999999 || $b > 999999) {

echo "zu große Zahl";

} else {

/* Ausgabe des Ergebnisses */

}

Zudem kannst du die Länge der Eingabe schon im Formular mithilfe des Attributs maxlength begrenzen (was du ja auch bereits getan hast)

10.02.2006 10:06

3 Marcel (Gast)

Hm. Ja, soweit habe ich das schon hinbekommen. Trotzdem danke.

Wie kann ich denn nun das zweite Feld auch noch überprüfen und dann erst die Funktion ausführen. D.h. erst wenn beide Felder die richtigen Zahlen beinhalten, dann wird das Ergebnis der gewünschten Zahl ausgegeben?!

***

10.02.2006 13:12

4 Jörg Kruse

In meinem Beispielcode werden beide Felder ($a und $b) geprüft

10.02.2006 14:13

5 Marcel (Gast)

Ah. Ich habe mal wieder nicht aufmerksam genug gelesen.

Wie kann ich denn weitere Prüfungen hinzufügen?

EDIT: Funktioniert alles einwandfrei. Wie kann ich bestimmte Zeichen blockieren bzw. eine Fehlermeldung ausgeben? Mein Rechner sollte ausschließlich Zahlen akzeptieren.

***

10.02.2006 14:39 | geändert: 10.02.2006 14:48

6 Jörg Kruse

Du kannst mit der Funktion is_numeric() überprüfen, ob ein Ausdruck eine Zahl ist

if(!is_numeric($a) || !is_numeric($b)) {

echo "keine Zahl";

} else {

/* Ausgabe */

}

10.02.2006 16:46

7 Marcel (Gast)

Funktioniert ebenfalls.

Aber wie kann ich für jeden "Mist" eine andere Meldung ausgeben. Z.B. für folgende Dinge:

- zu lang
- zu kurz
- falsche Zeichen
- keine Angaben

Mit ganz vielen if-Anweisungen?

Ich weiß das so etwas schwachsinnig ist. Es ist lediglich zum Üben gedacht.

***

10.02.2006 17:06

8 Jörg Kruse

Du kannst mehrere if-/else-Strukturen ineinander verschachteln, oder wie in meine zweiten Beitrag mit if - elseif - else mehrere Bedingungen hintereinander schalten

10.02.2006 18:39

Beitrag schreiben (als Gast)

Die Antwort wird nach der Überprüfung durch einen Moderator freigeschaltet.





[BBCode-Hilfe]