High!
Folgende Ausgangssituation:
Ein Formular mit vier Eingabeelementen:
1. Titel (Textzeile)
2. Interpret (Auswahlmenü, aus MySQL-Abfrage generiert)
3. Dauer Minuten (Textzeile)
4. Dauer Sekunden (Textzeile)
Angaben für 1. und 2. sind obligatorisch, 3. und 4. sind optional.
Wenn Daten bei 3. und 4. eingegeben werden, sollen sie auf korrekte Werte überprüft werden - also Minuten zwischen einschließlich 0 und 255 (die empfangende MySQL-Datenbank verwendet für das Minuten-Feld TINYINT), Sekunden zwischen einschließlich 0 und 59.
Abgefangen werden sollen also bei 3. alle $DauerMinuten, für die gilt:
- nicht leer
- ist ein Integer-Wert
- kleiner als 0 oder größer als 255
Auf PHP:
if ($DauerMinuten && (!is_integer($DauerMinuten) || $DauerMinuten < 0 || $DauerMinuten > 255))
{
echo "Bitte geben Sie eine Zahl zwischen 0 und 255 ein.<br>"
}
Merkwürdigerweise wird aber jetzt *jede* Eingabe, auch solche mit korrekten Minutenwerten, abgefangen - warum?
Mit ereg() wäre es wahrscheinlich noch komplizierter...
Bis bald im Khyberspace!
Yadgar