+ Antworten
Seite 1 von 2 1 2 LetzteLetzte
Ergebnis 1 bis 15 von 19

Thema: Überprüfen ob im Formularfeld eine bestimmte Zahl eingegeben wurde...

  1. #1
    TP-Insider dieter99 ist auf einem guten Weg Avatar von dieter99
    Registriert seit
    Dec 2001
    Ort
    Oberfranken
    Beiträge
    719

    Ü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???

  2. #2
    TP-Veteran Flow09 ist auf einem guten Weg Avatar von Flow09
    Registriert seit
    Jun 2001
    Ort
    Wien
    Beiträge
    1.436
    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.

  3. #3
    TP-Insider freefonzo macht alles soweit korrekt Avatar von freefonzo
    Registriert seit
    May 2002
    Ort
    Colonia
    Beiträge
    881
    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 ?

  4. #4
    TP-Veteran Flow09 ist auf einem guten Weg Avatar von Flow09
    Registriert seit
    Jun 2001
    Ort
    Wien
    Beiträge
    1.436
    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.

  5. #5
    TP-Veteran holunda macht alles soweit korrekt Avatar von holunda
    Registriert seit
    Oct 2001
    Ort
    Oberau
    Beiträge
    1.867
    dann noch Superglobale verwenden und das Script ist perfekt
    $_GET['deinevar']

  6. #6
    TP-Specialist mike bringt sich richtig ein Avatar von mike
    Registriert seit
    Jan 2002
    Ort
    TP/Dynamik
    Beiträge
    2.876
    @fonzo: seit wann?

    || = oder
    && = und

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

    mike

  7. #7
    TP-Supporter Filou macht alles soweit korrekt Avatar von Filou
    Registriert seit
    Aug 2002
    Ort
    Erde
    Beiträge
    348
    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)

  8. #8
    TP-Veteran Flow09 ist auf einem guten Weg Avatar von Flow09
    Registriert seit
    Jun 2001
    Ort
    Wien
    Beiträge
    1.436
    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.

  9. #9
    TP-Insider dieter99 ist auf einem guten Weg Avatar von dieter99
    Registriert seit
    Dec 2001
    Ort
    Oberfranken
    Beiträge
    719
    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 :-(((

  10. #10
    TP-Veteran Flow09 ist auf einem guten Weg Avatar von Flow09
    Registriert seit
    Jun 2001
    Ort
    Wien
    Beiträge
    1.436
    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.

  11. #11
    TP-Insider dieter99 ist auf einem guten Weg Avatar von dieter99
    Registriert seit
    Dec 2001
    Ort
    Oberfranken
    Beiträge
    719
    @ 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 ...

  12. #12
    TP-Specialist mike bringt sich richtig ein Avatar von mike
    Registriert seit
    Jan 2002
    Ort
    TP/Dynamik
    Beiträge
    2.876
    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

  13. #13
    TP-Specialist mike bringt sich richtig ein Avatar von mike
    Registriert seit
    Jan 2002
    Ort
    TP/Dynamik
    Beiträge
    2.876
    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

  14. #14
    TP-Insider dieter99 ist auf einem guten Weg Avatar von dieter99
    Registriert seit
    Dec 2001
    Ort
    Oberfranken
    Beiträge
    719
    @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?)

  15. #15
    TP-Specialist mike bringt sich richtig ein Avatar von mike
    Registriert seit
    Jan 2002
    Ort
    TP/Dynamik
    Beiträge
    2.876
    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

+ Antworten
Seite 1 von 2 1 2 LetzteLetzte

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

     

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