Eingabefelderüberprüfung

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Eingabefelderüberprüfung

    PHP-Code:
    <input type="text" name="heim2" size="2" value="<?php
        
    if (isset($_GET['heim2']) && !is_array($_GET['heim2'])) {
          echo 
    htmlspecialchars($_GET['heim2']);
        }
      
    ?>"/>
    <input type="text" name="gast2" size="2" value="<?php
        
    if (isset($_GET['gast2']) && !is_array($_GET['gast2'])) {
          echo 
    htmlspecialchars($_GET['gast2']);
        }
      
    ?>"/>
    Hi!

    Ich möchte bei dem oben geschriebenen Quelltext die beiden Variablen heim2 sowie gast2 überprüfen. Es soll beim Eingeben überprüft werden, daß keine Werte über 2 eingeben werden und das in beide Felder nicht das gleiche z.B. 1 eingeben werden kann.
    In die Eingabefelder dürfen nur die Zahlen 0 - 1 - 2 eingegeben werden.

    Das ganze Script soll eine Onlineabgabe für Spielberichtsbogen werden und dann per Mail an den Ligaleiter gesendet werden. Das Grundgerüst steht soweit bis auf die Überprüfung.

    Gruß
    WRLEV

  • #2
    naja du schickst das formular ab und machst dann dort mit if schleifen abfragen rein ob 1 2 oder 0 eingetragen ist, wenn nicht gibst du ne fehlermeldung aus und der user soll seine eingabe wiederholen.
    genauso prüfst du auch ob bei beiden das selbe drin is oda nich
    Mess with the Besth, die like the rest!

    Kommentar


    • #3
      Eleganter jedoch mit Javascript
      Und dann falls Javascript deaktiviert ist mit den PHP.
      Wenn du mir mal einen Ansatz gibst dann Poste ich hier das Ganze ...

      Kommentar


      • #4
        @Besth

        Mit folgenden Code prüfe ich ob in den Eingabefeldern heim2 und gast2 überhaupt etwas drin steht.

        PHP-Code:
        if (isset($_GET['heim2']) && !is_array($_GET['heim2']) && $_GET['heim2'] != '') {
              
        $ausgabe .= ' ' htmlspecialchars($_GET['heim2']) . ' ';
            } else {
              
        $fehler .= 'Kein Ergebniss eingetragen!<br />';
            }
            if (isset(
        $_GET['gast2']) && !is_array($_GET['gast2']) && $_GET['gast2'] != '') {
              
        $ausgabe .= ' ' htmlspecialchars($_GET['gast2']) . ' ';
            } else {
              
        $fehler .= 'Kein Ergebniss eingetragen!<br />';
            } 
        Nun muss ich nur irgendwo die Abfragen reinsetzen. Nur weiss ich immo nicht wo und wie ich das realisiere.

        Gruß
        WRLEV

        Kommentar


        • #5
          PHP-Code:
          if (isset($_GET['heim2']) && !is_array($_GET['heim2']) && $_GET['heim2'] != '') {
            if ( 
          $_GET['heim2'] == OR $_GET['heim2'] == OR $_GET['heim2'] == ) {
              
          $ausgabe .= ' ' htmlspecialchars($_GET['heim2']) . ' ';
            }
            else {
              
          $fehler .= 'Auswahl muss 0 1 oder 2 sein';
            }
          } else {
            
          $fehler .= 'Kein Ergebniss eingetragen!<br />';
          }
          if (isset(
          $_GET['gast2']) && !is_array($_GET['gast2']) && $_GET['gast2'] != '') {
            
          $ausgabe .= ' ' htmlspecialchars($_GET['gast2']) . ' ';
          } else {
          $fehler .= 'Kein Ergebniss eingetragen!<br />';

          so gehts (jetzt erstma nur für heim2 das andere wirste ja selber hinkriegen
          mach am besten nen select feld
          Mess with the Besth, die like the rest!

          Kommentar


          • #6
            Danke für die Hilfe!

            Jetzt hab ich auch meinen Fehler gesehen. Ich hab die Anweisungen in der ersten if-Schleife geschrieben. Hab zwar keine Fehlermeldung bekommen aber hat auch nicht funktioniert.

            Nun hab ich aber ein weiteres Problem mit dem Script:
            Wenn ich in die Eingabefelder ein Unentschieden eintrage wird dieses auch so übergeben. Doch bei uns gibt es keine Unentschieden. Man gewinnt entweder 2 : 1 oder 2 : 0.
            Wenn ich jetzt die Abfrage erstelle und beide Eingabefelder sind gleich, dann sollte zuerst die Fehlermeldung kommen bevor das Script abgeschickt werden kann.

            Hab schon versucht ne weitere if-Schleife einzubauen, aber das hat nicht funktioniert.

            Gruß
            WRLEV
            Zuletzt geändert von WRLEV; 17.05.2006, 11:15.

            Kommentar


            • #7
              Warum so kompliziert? Wenn du Zahlen hast, dann verwende doch auch Zahlen, z.b. so:

              PHP-Code:
              function is_valid_input$zahl ) {
                static 
              $valid = array(0,1,2);
                
              $zahl = (int)$zahl;
                if (
              in_array($zahl$valid)) {
                  return 
              $zahl;
                }
                return 
              FALSE;
              }

              if (isset(
              $_GET['heim2'])) {
                
              $ausgabe .= is_valid_input( (int)$_GET['heim2'] );
              } else {
                
              $fehler .= 'Kein Ergebniss eingetragen!<br />';
              }
              if (isset(
              $_GET['gast2'])) {
                
              $ausgabe .= is_valid_input( (int)$_GET['gast2'] );
              } else {
                
              $fehler .= 'Kein Ergebniss eingetragen!<br />';

              htmlspecialchars() brauchst du bei Zahlen nicht unbedingt.

              Wenn ich jetzt die Abfrage erstelle und beide Eingabefelder sind gleich, dann sollte zuerst die Fehlermeldung kommen bevor das Script abgeschickt werden kann.
              Das geht prinzipbedingt nicht mit PHP. Javascript kann das aber.
              http://aktuell.de.selfhtml.org/tipps...olle/index.htm

              Kommentar

              Lädt...
              X