Michi: Identität des Submit-Buttons feststellen

Hallo,

war paar Tage nicht da.
Habs leider nach einigen weiteren Versuchen immer noch nicht geschafft, in meinem PHP-Skript die Identität des aufrufenden Submit-Buttons festzustellen.

Den Mini-Artikel aus dem PHP_FAQ: "Wie verarbeite ich mehrere Submit-Buttons?" hab ich gelesen.

Weder funktioniert die Abfrage mit $submit noch die mit $HTTP_POST_VARS['submit'] bzw. $HTTP_GET_VARS['submit'].
In allen Fällen krieg ich einen Leerstring.

Wie in dem Artikel erklärt ist, sollte die $HTTP_...-Variante ja in jedem Fall eine funktionierende Alternative zu $submit darstellen, wenn register_globals on ist (Ist nicht mein Server).

Woran kanns noch liegen?

MfG
Michi

  1. Hallo,

    Weder funktioniert die Abfrage mit $submit noch die mit $HTTP_POST_VARS['submit'] bzw. $HTTP_GET_VARS['submit'].

    <input type='submit' name='dieses' value='Halli'>
    <input type='submit' name='jenes' value='Hallo'>

    dann sollte
    $wert1 = $HTTP_POST_VARS['dieses'];
    $wert2 = $HTTP_POST_VARS['jenes'];

    In $wert1 steht "Halli" und in $wert2 "Hallo".

    Du musst den NAMEN, nicht die TYPE abfragen.

    LG Kalle

    1. pardon,

      $wert1 = $HTTP_POST_VARS['dieses'];
      $wert2 = $HTTP_POST_VARS['jenes'];

      du bekommst natürlich nur den Wert des gedrückten Buttons zurück, der andere Wert ist NULL, also
      if ( $HTTP_POST_VARS['dieses'] ) echo "Button 1 wurde geklickt";
      if ( $HTTP_POST_VARS['jenes'] )  echo "Button 2 wurde geklickt";

      LG Kalle

      1. hi,

        du bekommst natürlich nur den Wert des gedrückten Buttons zurück, der andere Wert ist NULL, also
        if ( $HTTP_POST_VARS['dieses'] ) echo "Button 1 wurde geklickt";
        if ( $HTTP_POST_VARS['jenes'] )  echo "Button 2 wurde geklickt";

        da wird aber eine von beiden zeilen ein
        Notice: undefined index '...' in ...
        provozieren.

        wenn du gar nicht weißt, ob ein element mit dem jeweiligen index existiert, solltest du das vorher mit isset(), empty(), array_key_exists() o.ä. prüfen.

        wenn schon, denn schon,
        wahsaga

        --
        /voodoo.css:
        #GeorgeWBush { position:absolute; bottom:-6ft; }
    2. Du musst den NAMEN, nicht die TYPE abfragen.

      Ach so, naja, da find ich die Erklärung in dem Artikel etwas irreführend fürn Anfänger, aber Du hast mir auf jeden Fall geholfen, denn nun klappt das, danke. ;)

      MfG
      Michi

    3. echo $begrüßung;

      Du musst den NAMEN, nicht die TYPE abfragen.

      Wenn der OP diesen Artikel meinte, ist 'submit' der Wert des Attributs name.
      Der Fehler muss woanders gelegen haben, vielleicht an nicht beachteter Groß-/Kleinschreibung.

      Interessant wäre eine Ausgabe von print_r($HTTP_POST_VARS) [*] gewesen. (Davor ein <pre> erhöht die Übersichtlichkeit der Ausgabe.)

      echo "$verabschiedung $name";

      [*] oder besser print_r($_POST), denn die $HTTP_*_VARS sind veraltet