art-d-sign
-


Hinweise


Antwort
 
LinkBack Themen-Optionen Thema durchsuchen Thema bewerten
Alt 05.03.2003, 14:34   #1
TP-Insider
 
Benutzerbild von dieter99
 
Registriert seit: Dec 2001
Ort: Oberfranken
dieter99 ist auf einem guten Weg

Ü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???
dieter99 ist offline   Mit Zitat antworten


Alt 05.03.2003, 14:48   #2
TP-Veteran
 
Benutzerbild von Flow09
 
Registriert seit: Jun 2001
Ort: Wien
Flow09 ist auf einem guten Weg
Versuchs mal damit!

PHP-Code:
if ($feld2 != || $feld != || $feld != || $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.
Flow09 ist offline   Mit Zitat antworten
Alt 05.03.2003, 14:49   #3
TP-Insider
 
Benutzerbild von freefonzo
 
Registriert seit: May 2002
Ort: Colonia
freefonzo macht alles soweit korrekt
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 ?
freefonzo ist offline   Mit Zitat antworten
Alt 05.03.2003, 14:56   #4
TP-Veteran
 
Benutzerbild von Flow09
 
Registriert seit: Jun 2001
Ort: Wien
Flow09 ist auf einem guten Weg
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.
Flow09 ist offline   Mit Zitat antworten
Alt 05.03.2003, 14:58   #5
TP-Veteran
 
Benutzerbild von holunda
 
Registriert seit: Oct 2001
Ort: Oberau
holunda macht alles soweit korrekt
dann noch Superglobale verwenden und das Script ist perfekt
$_GET['deinevar']
__________________
Gruß vom holu
holunda ist offline   Mit Zitat antworten
Alt 05.03.2003, 15:02   #6
TP-Specialist
 
Benutzerbild von mike
 
Registriert seit: Jan 2002
Ort: TP/Dynamik
mike bringt sich richtig ein
@fonzo: seit wann?

|| = oder
&& = und

http://www.php.net/manual/de/languag...rs.logical.php
__________________
Gehelft? Hier kannst du dich bedanken.

mike
mike ist offline   Mit Zitat antworten
Alt 05.03.2003, 15:07   #7
TP-Supporter
 
Benutzerbild von Filou
 
Registriert seit: Aug 2002
Ort: Erde
Filou macht alles soweit korrekt
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)
Filou ist offline   Mit Zitat antworten
Alt 05.03.2003, 15:14   #8
TP-Veteran
 
Benutzerbild von Flow09
 
Registriert seit: Jun 2001
Ort: Wien
Flow09 ist auf einem guten Weg
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.
Flow09 ist offline   Mit Zitat antworten
Alt 05.03.2003, 15:29   #9
TP-Insider
 
Benutzerbild von dieter99
 
Registriert seit: Dec 2001
Ort: Oberfranken
dieter99 ist auf einem guten Weg
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 :-(((
dieter99 ist offline   Mit Zitat antworten
Alt 05.03.2003, 15:36   #10
TP-Veteran
 
Benutzerbild von Flow09
 
Registriert seit: Jun 2001
Ort: Wien
Flow09 ist auf einem guten Weg
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 ist offline   Mit Zitat antworten
Alt 05.03.2003, 15:42   #11
TP-Insider
 
Benutzerbild von dieter99
 
Registriert seit: Dec 2001
Ort: Oberfranken
dieter99 ist auf einem guten Weg
@ 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 ...
dieter99 ist offline   Mit Zitat antworten
Alt 05.03.2003, 15:52   #12
TP-Specialist
 
Benutzerbild von mike
 
Registriert seit: Jan 2002
Ort: TP/Dynamik
mike bringt sich richtig ein
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
mike ist offline   Mit Zitat antworten
Alt 05.03.2003, 16:01   #13
TP-Specialist
 
Benutzerbild von mike
 
Registriert seit: Jan 2002
Ort: TP/Dynamik
mike bringt sich richtig ein
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
mike ist offline   Mit Zitat antworten
Alt 05.03.2003, 16:10   #14
TP-Insider
 
Benutzerbild von dieter99
 
Registriert seit: Dec 2001
Ort: Oberfranken
dieter99 ist auf einem guten Weg
@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?)
dieter99 ist offline   Mit Zitat antworten
Alt 05.03.2003, 16:28   #15
TP-Specialist
 
Benutzerbild von mike
 
Registriert seit: Jan 2002
Ort: TP/Dynamik
mike bringt sich richtig ein
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
__________________
Gehelft? Hier kannst du dich bedanken.

mike
mike ist offline   Mit Zitat antworten
Antwort

  Aktuelles Thema
  TP Hilfe Forum > Web-Editoren & Coding > Traum-Dynamik
Überprüfen ob im Formularfeld eine bestimmte Zahl eingegeben wurde... Überprüfen ob im Formularfeld eine bestimmte Zahl eingegeben wurde...
« mysql problem | Script zum sicheren/zugriffsgeschützten Dateidownload - wie? »

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Thema bewerten
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.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 02:58 Uhr.

Powered by: vBulletin Version 3.7 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd. / Search Engine Friendly URLs by vBSEO 3.2.0 ©2008, Crawlability, Inc.
Traum-Projekt.com | Suchen | Archiv | Impressum | Kontakt | | | Nach oben |



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67