 |
| Hinweise |
Willkommen im TP-Hilfe-Forum!Dies ist ein Forum zu den Themen Photoshop, Dreamweaver, Flash, Selbständigkeit und mehr, in dem Du Hilfe, Anleitung oder eine Lösung zu Deinen Problemen erhältst. Aktuell bist Du in unseren Foren als Gast mit reinen Leserechten unterwegs. Wenn Du Dich registrierst, kannst Du eigene Themen verfassen, Deine Frage stellen und privat mit anderen TPlern kommunizieren. Weitere Foren werden zugänglich, und Du wirst – falls gewünscht – per Mail über neue Beiträge informiert. Die Registrierung ist schnell und kostenlos. Sollten bei der Registrierung Fragen auftauchen, reicht ein Klick in unsere Hilfe - Häufig gestellte Fragen oder eine kurze Mitteilung an das Support-Team. Viel Spaß bei Traum-Projekt.com |
05.03.2003, 14:34
|
#1
|
|
TP-Insider
Registriert seit: Dec 2001
Ort: Oberfranken
|
Überprüfen ob im Formularfeld eine bestimmte Zahl eingegeben wurde...
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???
|
|
|
05.03.2003, 14:48
|
#2
|
|
TP-Veteran
Registriert seit: Jun 2001
Ort: Wien
|
Versuchs mal damit!
PHP-Code:
if ($feld2 != 3 || $feld != 4 || $feld != 5 || $feld != 6)
{
die ("Fehlermeldung99");
}
Habs jetzt nicht getestet aber vielleicht funktionierts!?!
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.
|
|
|
05.03.2003, 14:49
|
#3
|
|
TP-Insider
Registriert seit: May 2002
Ort: Colonia
|
Die korrekte Syntax in PHP für "OR" ist: "|"
Der Code sollte wie folgt aussehen:
Code:
if ($feld2 != 3 | $feld2 !=4 | $feld2 !=5 |$feld2 != 6)
{die ("Fehlermeldung99");
}
Alternativ könntest Du auch erstmal den String durch ne Regex jagen.
__________________
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 ?
|
|
|
05.03.2003, 14:56
|
#4
|
|
TP-Veteran
Registriert seit: Jun 2001
Ort: Wien
|
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.
|
|
|
05.03.2003, 14:58
|
#5
|
|
TP-Veteran
Registriert seit: Oct 2001
Ort: Oberau
|
dann noch Superglobale verwenden und das Script ist perfekt
$_GET['deinevar'] 
|
|
|
05.03.2003, 15:02
|
#6
|
|
TP-Specialist
Registriert seit: Jan 2002
Ort: TP/Dynamik
|
__________________
Gehelft? Hier kannst du dich bedanken.
mike
|
|
|
05.03.2003, 15:07
|
#7
|
|
TP-Supporter
Registriert seit: Aug 2002
Ort: Erde
|
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)
|
|
|
05.03.2003, 15:14
|
#8
|
|
TP-Veteran
Registriert seit: Jun 2001
Ort: Wien
|
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.
|
|
|
05.03.2003, 15:29
|
#9
|
|
TP-Insider
Registriert seit: Dec 2001
Ort: Oberfranken
|
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 :-(((
|
|
|
05.03.2003, 15:36
|
#10
|
|
TP-Veteran
Registriert seit: Jun 2001
Ort: Wien
|
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.
|
|
|
05.03.2003, 15:42
|
#11
|
|
TP-Insider
Registriert seit: Dec 2001
Ort: Oberfranken
|
@ 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 ...
|
|
|
05.03.2003, 15:52
|
#12
|
|
TP-Specialist
Registriert seit: Jan 2002
Ort: TP/Dynamik
|
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.
__________________
Gehelft? Hier kannst du dich bedanken.
mike
|
|
|
05.03.2003, 16:01
|
#13
|
|
TP-Specialist
Registriert seit: Jan 2002
Ort: TP/Dynamik
|
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.
__________________
Gehelft? Hier kannst du dich bedanken.
mike
|
|
|
05.03.2003, 16:10
|
#14
|
|
TP-Insider
Registriert seit: Dec 2001
Ort: Oberfranken
|
@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?)
|
|
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
Thema durchsuchen |
|
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 02:58 Uhr.
|
 |