Homer: Formfeld auf Inhalt prüfen

Morgähn,

ich nutze das PHP-Form von fastix®. Läuft alles prima, danke dafür!

if($_POST['Mc2Nr'])
 {
  $strMailtext = "";

prüft ja nun ob das Feld "Mc2Nr" leer ist, wenn true dann kommt eine Fehlermeldung.....

Ich würde jetzt gerne diesem Plichtfeld einen Value setzten, zur besseren Verständniss für den User:

<input type="text" name="Mc2Nr" value="Bitte 16 Ziffer eingeben" onclick="this.value='';">

Durch den value ist das Feld ja schon ausgefüllt und die Prüfung findet keinen Fehler, Form wird abgeschickt. Doof! ;)

Meine Frage:

Wie lautet die richtige Syntax um das jetzt noch prüfen zu können:

$strMailtext = "Bitte 16 Ziffer eingeben";

Schreibe ich das hintereinander weg, ala

if($_POST['Mc2Nr'])
 {
  $strMailtext = "" or = "Bitte 16 Ziffer eingeben";

Danke für Eurer Hilfe

Euer PHP Newbe
Homer
PS: D'oh!

  1. if($_POST['Mc2Nr'])
    {
      $strMailtext = "";

    prüft ja nun ob das Feld "Mc2Nr" leer ist, wenn true dann kommt eine Fehlermeldung.....

    Nein tut es nicht, es überprüft ob $_POST['Mc2Nr'] aufgrund des automatischen Typecastings von PHP einem booleschen true entspricht.

    empty() ist die Funktion deiner Wahl zum prüfen ob das Feld leer ist - aber auch empty betrachtent z.B. Strings wie "0" als "leer". Definiere also, was du wirklich prüfen willst.

    isset() könnte übrigens auch eine möglicherweise interessante Funktion sein.

    Wie lautet die richtige Syntax um das jetzt noch prüfen zu können:

    Ich würde dein problem Clientseitig lösen und das Formularfeld auf andere Weise vorbelegen und wieder leeren (Beispiele vollständig, Beschreibung fehlt noch teilweise).

    Damit bist du auf Serverseiten unabhängig vom Vorgabewert in den Feldern (z.B. der Sprache).

    1. Ich würde dein problem Clientseitig lösen und das Formularfeld auf andere Weise vorbelegen und wieder leeren (Beispiele vollständig, Beschreibung fehlt noch teilweise).

      Damit bist du auf Serverseiten unabhängig vom Vorgabewert in den Feldern (z.B. der Sprache).

      Nachtrag: das gilt natürlich nur für Beispiel 3, bei den andren wird tatsächlich etwas ins Feld geschrieben und beim POST übertragen, das müsste man natürlich noch beim onsubmit entfernen (setz ich in mein Anmerkheft).

    2. Servus

      Ich würde dein problem Clientseitig lösen und das Formularfeld auf andere Weise vorbelegen und wieder leeren (Beispiele vollständig, Beschreibung fehlt noch teilweise).

      Habe ich kurz überflogen, der Ansatz gefällt mir.

      Danke für die Info!

      ABER: Schon mal die Kommentare auf der Seite gesehen ;) kleine Spamattacke gehabt!?

      gruß
      Homer
      ps: D'oh!

      1. ABER: Schon mal die Kommentare auf der Seite gesehen ;) kleine Spamattacke gehabt!?

        Ja - danke, scheint so - der Turing-Test ist selbst geschrieben, ist wohl noch Verbesserungsbedürftig. Ggf. sollte ich da auf Akismet oder ähnliches umstellen.

  2. Hi,

    Ich würde jetzt gerne diesem Plichtfeld einen Value setzten, zur besseren Verständniss für den User:

    Das heisst, Du möchtest das Feld vorbelegen, wenn es nicht ausgefüllt wurde?
    Sowas?
    // ist $_POST['Mc2Nr'] vorhanden und ist die stringlänge grösser 0...
    $str =  (isset($_POST['Mc2Nr']) && strlen($_POST['Mc2Nr']))? $_POST['Mc2Nr'] : "Was auch immer da reinsoll";

    Gruesse, Joachim

    --
    Am Ende wird alles gut.
    1. Servus

      Das heisst, Du möchtest das Feld vorbelegen, wenn es nicht ausgefüllt wurde?

      Nicht ganz. Ich will zwar das das Feld vorbelegt wird, aber soll dieses vom User geändert werden müssen!

      ZB.

      Vorbelegt mit Z.B "Gib Deine Seriennummer hier ein". Wenn der AW jetzt in diesem Feld nichts einträgt, also nur die Vorbelegung angezeigt wird, soll eine fehlermeldung kommen ala "Bitte alle Pflichtfelder ausfüllen...

      Wie schon gesagt gibt es im PHP-Form von fastix®  Quelltext hier, ist nicht viel ! eine Abfrage die prüft ob ein Formularfeld ausgefüllt ist:

      wenn $strMailtext = ""; = Fehlermeldung

      Ich möchte diese Fehlermeldung zusätzlich auch wenn $strMailtext = "Gib Deine Seriennummer hier ein";.

      Wie kann ich diese IF abfrage kombinieren

      Danke schonmal
      Gruß
      Homer

      1. Hi,

        Wie kann ich diese IF abfrage kombinieren

        if($strMailtext == "" || $strMailtext == "Was auch immer") ...

        Gruesse, Joachim

        --
        Am Ende wird alles gut.
        1. if($strMailtext == "" || $strMailtext == "Was auch immer") ...

          Eben mit dem Nachteil, dass dir "Was auch immer" in sämtlichen Sprachen für jedes Feld bekannt sein muss.

          1. Hi,

            Eben mit dem Nachteil, dass dir "Was auch immer" in sämtlichen Sprachen für jedes Feld bekannt sein muss.

            Da haste völlig Recht, ich finde Deinen Ansatz auch nicht schlecht, und es ging mir eher darum, die Kombination der Abfragen zu demonstrieren.

            Wobei ich grundsätzlich finde, dass _neben_ den Input gehört, was dort _hinein_ soll. Bei aller Schönheit ;-)

            Gruesse, Joachim

            --
            Am Ende wird alles gut.
            1. Wobei ich grundsätzlich finde, dass _neben_ den Input gehört, was dort _hinein_ soll. Bei aller Schönheit ;-)

              Darum gibts in dem Round-Up-Artikel auch mehrere Ansätze ;)