Ankündigung

Einklappen
Keine Ankündigung bisher.

Nummerisches Textfeld - Genaue Zeichenlänge - Validierung

Einklappen

Neue Werbung 2019

Einklappen
Dieses Thema ist geschlossen.
X
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Nummerisches Textfeld - Genaue Zeichenlänge - Validierung

    Hi,

    ich möchte ein nummerisches Textfeld auf eine bestimmte Zeichenlänge hin prüfen. Per HTML kann man ja einfach angeben, ob ein Feld auf eine bestimmte Zeichenlänge (wie etwa 6) hin begrenzt ist. Nun möchte ich aber, dass mein eine Rückmeldung erfolgt, wenn weniger als 6 Zeichen (nummerische Werte) eingegeben worden sind.

    Das ist mein bisheriger Code:
    PHP-Code:
    if (!isset($_SESSION['ok']) || $_SESSION['ok'] !== true){
        
    header('Location:../Login.php');
    }
    if (isset(
    $_POST['submit'])) {
        if (isset(
    $_POST['IDSuche']) && !is_array($_POST['IDSuche']) && $_POST['IDSuche'] != '') {
        
            if (
    is_numeric ($_POST['IDSuche']) && (($_POST['IDSuche']) > ) ) {
            
    $IDSuchehtmlspecialchars($_POST['IDSuche']);
            
    $db = new MySQLi('localhost''root''''base');
            
    $sql "SELECT * FROM diagnoseprotokoll WHERE StudieID='$IDSuche' ";
            
    $ergebnis $db->query($sql);
            
    $zeile $ergebnis->fetch_object();
            if(
    $zeile == false){
                
    $_SESSION['IDNeu'] = '*ID ' $IDSuche ' is nicht vorhanden.';
                
    $_SESSION['IDnichtvorhanden'] = htmlspecialchars($_POST['IDSuche']);
                
    header('Location:Eingabe_Anlegen.php');
                }else{
                
    $_SESSION['IDAlt'] = '*ID ' $IDSuche' befindet sich bereits in der Datenbank!';
                
    $_SESSION['IDvorhanden'] = htmlspecialchars($_POST['IDSuche']);
                
    header('Location:Eingabe_Editieren.php');
            }
            } else {
    $Fehler 'Bitte einen positiven nummerischen Wert eingeben!';}
            
            } else {
            
    $Fehler '*Es wurde keine ID angegeben!';
         }
        
    }
    ?> 
    Bisherige Pruefung:
    Wurde gesetzt? isset($_POST['IDSuche']
    Kein leeres Feld? $_POST['IDSuche'] != ''
    Ist nummerisch? is_numeric ($_POST['IDSuche'])

    Jetz fehlt mir noch die Pruefung ob es genau 6 Zeichen lang is...kann mir jmd helfen?

  • #2
    das kannst du mit strlen() machen, wenn du $_POST auswertest.
    Oder als "int" mit einer " if($zahl < 999999 && $zahl< 99999) Abfrage.
    Letzeres solltest du dann aber mit is_numeric() kombinieren....

    Kommentar


    • #3
      besten dank

      Kommentar


      • #4
        Ob dein Feld leer ist, kannst du auch mit der Funktion empty() prüfen. Dazu ist sie nämlich da Ich empfehle dir ausserdem, die Variable mit intval() tatsächlich in eine Variable vom Typ Integer zu konvertieren. Denn wenn du eine Prüfung vornehmen willst, wie es halskrause empfiehlt, dann funktioniert das nur mit "echten" Integerwerten. Zwar kann PHP automatische Typumwandlung, aber du solltest trotzdem auf "Nummer sicher" gehen.
        [URL="http://blog.service2max.ch/"]Blog für Softwarearchitekten und Programmierer[/URL] - [URL="http://twitter.com/service2max"][B]Folge mir auf Twitter![/B][/URL]

        Kommentar


        • #5
          Zitat von halskrause Beitrag anzeigen
          if($zahl < 999999 && $zahl< 99999)


          Mal abgesehen von dem Schreibfehler, aber wurde die Angabe "000001" schon als unzulässig verworfen? Ich denke nicht!

          Kommentar


          • #6
            Ob dein Feld leer ist, kannst du auch mit der Funktion empty() prüfen.
            Und was soll das bringen, bei dieser Fragestellung:
            Jetz fehlt mir noch die Pruefung ob es genau 6 Zeichen lang is...
            Competence-Center -> Enjoy the Informatrix
            PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

            Kommentar


            • #7
              Reguläre Ausdrücke wurden seltsamerweise noch nicht erwähnt... damit kann man Länge UND Format gleichzeitig prüfen.
              Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

              Kommentar


              • #8
                Hast du vollkommen Recht...ich kannte den Begriff gestern noch nicht aber gelöst habe ich diesen Problem GENAU mit dem Vorgehen...

                hier ein schönes Tutorial...for Dummies (also für mich wars perfekt, um es zu verstehen :P)

                php-dummies.de - Tutorials - RegExpressions - Basics

                Kommentar


                • #9
                  Also ich finde nen normalen Zahlenvergleich in Verbindung mit einem Type-Casting immer noch die beste Lösung.
                  [COLOR="#F5F5FF"]--[/COLOR]
                  [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
                  „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                  [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
                  [COLOR="#F5F5FF"]
                  --[/COLOR]

                  Kommentar


                  • #10
                    Und schneller als reguläre Ausdrücke auf jeden Fall auch...
                    Competence-Center -> Enjoy the Informatrix
                    PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

                    Kommentar


                    • #11
                      Es ging ja auch nur darum, Möglichkeiten aufzuzeigen
                      Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

                      Kommentar


                      • #12
                        Dann gibt es hier jetzt die restlichen Möglichkeiten:

                        Nummerisches Textfeld - Genaue Zeichenlänge - Validierung - Forum: phpforum.de

                        Gruß Jens

                        Kommentar


                        • #13
                          Das ist aber schön!

                          Bitte beachten: Anmerkungen zu Crosspostings

                          [MOD: Thread geschlossen]
                          [COLOR="#F5F5FF"]--[/COLOR]
                          [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
                          „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                          [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
                          [COLOR="#F5F5FF"]
                          --[/COLOR]

                          Kommentar

                          Lädt...
                          X