Versuchs mal damit!
Habs jetzt nicht getestet aber vielleicht funktionierts!?!PHP-Code:if ($feld2 != 3 || $feld != 4 || $feld != 5 || $feld != 6)
{
die ("Fehlermeldung99");
}
lg
Flow
Hallo,
ich möchte in einem Formularfeld nur die Zahlen 3, 4, 5 und 6 zulassen. Da ich in diesen Fall nicht mit Dropdownmenüs arbeiten möchte, muß ich ein Script schreiben welches die Eingabe auf Richtigkeit prüft.
1. Problem: Ich möchte überprüfen ob der User einen Text oder eine Zahl eingeben hat. Ich habs mit dem Befehl "gettype" versucht. Dabei musste ich feststellen, das ausschließlich "STRING" erkannt werden, auch wenn ich eine Zahl (z.B. 5) eingeben habe. Das liegt wohl am Formular (input type="text")? Was kann ich tun?
2. Problem:
Wenn ich schreibe
if ($feld2 != 3)
{die ("Fehlermeldung99");
}
dann erscheint die Fehlermeldung99 nur dann nicht, wenn die Zahl 3 eingetragen wurde (wie gewünscht).
Jetzt möchte ich das Script erweitern um die Zahlen 4, 5 und 6.
Ich schreibe
if ($feld2 != 3 OR 4 OR 5 OR 6)
{die ("Fehlermeldung99");
}
Nun erscheint die Fehlermeldung99 immer, auch wenn ich z.B. die Zahl 3 eingebe. Was mache ich falsch???
Versuchs mal damit!
Habs jetzt nicht getestet aber vielleicht funktionierts!?!PHP-Code:if ($feld2 != 3 || $feld != 4 || $feld != 5 || $feld != 6)
{
die ("Fehlermeldung99");
}
lg
Flow
Lesser known Programming Languages #13: SLOBOL
... Although many compilers allow you to take a coffee break while they compile, SLOBOL compilers allow you to travel to Bolivia to pick the coffee. Forty-three programmers are known to have died of boredom sitting at their terminals while waiting for a SLOBOL program to compile. Weary SLOBOL programmers often turn to a related (but infinitely faster) language, COCAINE.
Die korrekte Syntax in PHP für "OR" ist: "|"
Der Code sollte wie folgt aussehen:
Alternativ könntest Du auch erstmal den String durch ne Regex jagen.Code:if ($feld2 != 3 | $feld2 !=4 | $feld2 !=5 |$feld2 != 6) {die ("Fehlermeldung99"); }
Gruss freefonzo
"Ein Experte ist ein Mann, der hinterher genau sagen kann, warum seine Prognose nicht gestimmt hat."
Sir Winston Churchill
1. lesen || 2. suchen || 3. posten || 4. Traum Scripts einbauen || 5. So sehen also TP'ler aus ?
Ups! Freefonzo hat recht nicht || sondern | !!!
Mein Fehler!
lg
Flow
Lesser known Programming Languages #13: SLOBOL
... Although many compilers allow you to take a coffee break while they compile, SLOBOL compilers allow you to travel to Bolivia to pick the coffee. Forty-three programmers are known to have died of boredom sitting at their terminals while waiting for a SLOBOL program to compile. Weary SLOBOL programmers often turn to a related (but infinitely faster) language, COCAINE.
dann noch Superglobale verwenden und das Script ist perfekt
$_GET['deinevar']![]()
@fonzo: seit wann?
|| = oder
&& = und
http://www.php.net/manual/de/languag...rs.logical.php
genau ?
warum |
verwende immer or oder ||
ciao filou
ich liebe dich, Hans-Jörg. gebt schwulen gleiche rechte.
erst wenn wir alles verloren haben, haben wir die freiheit alles zu tun.(tyler durden)
Muss mich schon wieder entschuldigen!!![]()
Die anderen haben recht!
|| is der logische Operator für ODER!
| is der bitweise Operator für ODER!
Kommt davon wenn man nicht richtig liest was im Buch steht!
I'am very sorry!![]()
Lesser known Programming Languages #13: SLOBOL
... Although many compilers allow you to take a coffee break while they compile, SLOBOL compilers allow you to travel to Bolivia to pick the coffee. Forty-three programmers are known to have died of boredom sitting at their terminals while waiting for a SLOBOL program to compile. Weary SLOBOL programmers often turn to a related (but infinitely faster) language, COCAINE.
weder
if ($feld2 != 3 || $feld2 != 4 || $feld2 != 5 || $feld2 != 6)
{die ("Fehlermeldung99");
}
noch
if ($feld2 != 3 | $feld2 != 4 | $feld2 != 5 | $feld2 != 6)
{die ("Fehlermeldung99");
}
funktioniert. Die Fehlermeldung99 erscheint IMMMER, egal welche Eingabe ich tätige :-(((
Setz mal die Zahlen unter Anführungsstriche!
Sprich: if ($feld != "3" || $feld != "4" || usw. )
lg
Flow
Lesser known Programming Languages #13: SLOBOL
... Although many compilers allow you to take a coffee break while they compile, SLOBOL compilers allow you to travel to Bolivia to pick the coffee. Forty-three programmers are known to have died of boredom sitting at their terminals while waiting for a SLOBOL program to compile. Weary SLOBOL programmers often turn to a related (but infinitely faster) language, COCAINE.
@ Flow09: funktioniert auch nicht.
Wenn ich in der If Schleife nur eine Zahl anspreche, dann funktioniert es (auch ohne Anführungszeichen). Sobald ich den or-Befehl einfüge funktioniert es nicht mehr ...
if (!is_numeric($feld) || $feld < 3 || $feld > 6)
echo "FEHLER";
else
echo "RICHTIG";
alternativ kannst du auch noch eine explizite typkonvertierung für dein feld 'erzwingen' indem du
$feld=$feld*1; schreibst.
noch ein Wort zu:
if ($feld2 != 3 || $feld2 != 4 || $feld2 != 5 || $feld2 != 6)
das kann nicht gehen.
nehmen wir an feld = 3 -> so wäre das ansich ein OK.
ist es aber nicht, da
zwar der erste check
$feld2 != 3 = false ergibt,
der rest aber mit true abgearbeitet wird und nach der boolschen algebra, die für die or verknüpfung soviel wie alles ist TRUE ergibt.
= in eurem Fall die Fehlermeldung.
eure Syntax müsste in dem Fall etwa so aussehen:
if (!($feld2 == 3 || $feld2 == 4 || $feld2 == 5 || $feld2 == 6))
Die Bedingung wird nur dann wahr, wenn keine der Zahlen im Feld 2 vorkommt.
dann fuktioniert es auch mit Zahlen die nicht hintereinander am Zahlenstrahl sitzen.
@Longfang:
es funktioniert jetzt nicht nur, sondern anhand deiner letzten Erklärung weiss ich auch warum! Danke!
Nochmal zur aller ersten Frage: warum erkennt "gettype" immer nur einen STRING? (Auch wenn ich die Zahl 5 eingebe?)
k.a. warum dein gettype nicht funktioniert hat, aber scheinbar ist gettype nicht wirklich DIE funktion für solche Sachen:
http://www.php.net/manual/en/function.gettype.php
hier noch ein bissl lesestoff für die geneigten user bezüglich typkonvertierung:
http://www.php.net/manual/en/languag...e-juggling.php
http://www.php.net/manual/en/languag...ing.conversion
speziell die usercomments habens in sich![]()
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)