Yadgar: Problem mit Rückgabewert

Beitrag lesen

Hi(gh)!

Folgende Funktion zur Überprüfung von Formulardaten:

  function check()  
  {  
    $ok = false;  
    if (!$_POST['Marke'])  
      echo "<p>Bitte wählen Sie eine Marke aus!</p>";  
    else if (!$_POST['Modell'])  
      echo "<p>Bitte geben Sie ein Modell ein!</p>";  
    else if ($_POST['Markteinfuehrung'] != "" && $_POST['EndeProduktion'] != "" && ((!is_numeric($_POST['Markteinfuehrung']) || !is_numeric($_POST['EndeProduktion']) || $_POST['Markteinfuehrung']<1934 || $_POST['EndeProduktion']<1934 )))  
      echo "<p>Bitte geben Sie nur Jahreszahlen ab 1934 ein!</p>";  
    else if ($_POST['Markteinfuehrung'] > date("Y") || $_POST['EndeProduktion'] > date("Y"))  
      echo "<p>Mindestens eine von Ihnen eingegebene Jahreszahl liegt in der Zukunft. Bitte geben sie Jahreszahlen von 1934 bis ".date("Y")." ein!</p>";  
    else if ($_POST['Markteinfuehrung'] > $_POST['EndeProduktion'])  
      echo "<p>Das Markteinführungsjahr muss früher als das Jahr des Produktionsendes sein. Bitte korrigieren Sie Ihre Eingabe!</p>";  
    else if (($_POST['Neupreis'] = "" && $_POST['Waehrung'] != "") || ($_POST['Neupreis'] != "" && $_POST['Waehrung'] == ""))  
      echo '<p>Bitte geben Sie Neupreis <span class="b">und</span> Währung ein!</p>';  
    else if ($_POST['Neupreis'] != "" && $_POST['Waehrung'] != "")  
    {  
      if (!is_numeric($_POST['Neupreis']) || $_POST['Neupreis'] <= 0)  
        echo '<p>Bitte geben Sie für den Neupreis einen Zahlenwert größer als 0 ein!</p>';  
    }  
    else if ($_POST['Breite'] != "")  
    {  
      if (!is_numeric($_POST['Breite']) || $_POST['Breite'] <= 0 || $_POST['Breite'] >= 500)  
        echo '<p>Bitte geben Sie für die Breite einen Zahlenwert zwischen 0 und 500 ein!</p>';  
    }  
    else if ($_POST['Hoehe'] != "")  
    {  
      if (!is_numeric($_POST['Hoehe']) || $_POST['Hoehe'] <= 0 || $_POST['Hoehe'] >= 500)  
        echo '<p>Bitte geben Sie für die Höhe einen Zahlenwert zwischen 0 und 500 ein!</p>';  
    }  
    else if ($_POST['Tiefe'] != "")  
    {  
      if (!is_numeric($_POST['Tiefe']) || $_POST['Tiefe'] <= 0 || $_POST['Tiefe'] >= 500)  
        echo '<p>Bitte geben Sie für die Tiefe einen Zahlenwert zwischen 0 und 500 ein!</p>';  
    }  
    else if ($_POST['Gewicht'] != "")  
    {  
      if (!is_numeric($_POST['Gewicht']) || $_POST['Gewicht'] <= 0 || $_POST['Gewicht'] >= 1000)  
        echo '<p>Bitte geben Sie für das Gewicht einen Zahlenwert zwischen 0 und 1000 ein!</p>';  
    }  
    else if ($_POST['Registerspeicher'] != "")  
    {  
      if (!is_numeric($_POST['Registerspeicher']) || $_POST['Registerspeicher'] < 0 || $_POST['Registerspeicher'] > 255)  
        echo '<p>Bitte geben Sie für die Anzahl der Registerspeicher einen Zahlenwert von 0 bis 255 ein!</p>';  
    }  
    else if ($_POST['Akkordspeicher'] != "")  
    {  
      if (!is_numeric($_POST['Akkordspeicher']) || $_POST['Akkordspeicher'] < 0 || $_POST['Akkordspeicher'] > 65535)  
        echo '<p>Bitte geben Sie für die Anzahl der Akkordspeicher einen Zahlenwert von 0 bis 65535 ein!</p>';  
    }  
    else if ($_POST['Schweller'] != "")  
    {  
      if (!is_numeric($_POST['Schweller']) || $_POST['Schweller'] < 0 || $_POST['Schweller'] > 9)  
        echo '<p>Bitte gegen Sie für die Anzahl der Schweller einen Zahlenwert von 0 bis 9 ein!</p>';  
    }  
    else if ($_POST['Gesamtleistung'] != "")  
    {  
      if (!is_numeric($_POST['Gesamtleistung']) || $_POST['Gesamtleistung'] <= 0 || $_POST['Gesamtleistung'] > 65535)  
      echo '<p>Bitte geben Sie für die Gesamtleistung einen Zahlenwert zwischen 0 und 65536 ein!</p>';  
    }  
    else $ok = true;  
  
    if ($ok == true)  
      return true;  
    else  
      return false;  
  }

soll true zurückgeben, falls keines der Fehler-Kriterien erfüllt ist.

Es wird aber, selbst wenn keine der Fehlerbedingungen erfüllt ist, immer false zurückgegeben! Warum?

Bis bald im Khyberspace!

Yadgar