Tom: Mit php abfragen welches Formular an Seite übermittlet wurde?

Guten Tag,

also ich möchte in einer Klasse Search abfragen, welches Formular übermittelt wurde, so dass ich die weiteren Abfragen steuern kann.

Ist das überhaupt mit PHP möglich oder nur mit Javascript?

Danke

  1. Hallo,

    also ich möchte in einer Klasse Search abfragen, welches Formular übermittelt wurde, so dass ich die weiteren Abfragen steuern kann.

    Ich weiss nicht, was Du mit "Klasse Search" meinst.

    Gib jedem Formular etwas individuelles.

    * Z.B. ein Hidden Field.
      <input type="hidden" name="formularid" value="abc123">

    * Oder einen speziellen Namen fuer den Abschick-Button.
      <input type="submit" name="formularabc123" value="Abschicken">
      => http://www.dclp-faq.de/q/q-formular-absenden.html

    Gruesse,

    Thomas

    P.S. Vergiss JavaScript! Hat _nichts_ mit der Sache zu tun!

    1. Hallo,

      <input type="submit" name="formularabc123" value="Abschicken">
        => http://www.dclp-faq.de/q/q-formular-absenden.html

      Dort gerade (zu spaet) gelesen:
      "Wurde das Formular dagegen per JavaScript oder
      durch Drücken der Eingabetaste im einzigen Texteingabefeld
      des Formulars abgeschickt, ist die Variable nicht vorhanden."

      Fazit: Ein Hidden Field ist zuverlaessiger.

      mfg Thomas

      1. Hi,

        Fazit: Ein Hidden Field ist zuverlaessiger.

        Super.

        Werde ich also so machen!
        Vielen Dank

        Gruß Tom

        1. Hello,

          Fazit: Ein Hidden Field ist zuverlaessiger.

          Manipulierbar ist das aber genauso.

          Grüße

          Tom

  2. Hello Tom,

    also ich möchte in einer Klasse Search abfragen, welches Formular übermittelt wurde, so dass ich die weiteren Abfragen steuern kann.

    Ist das überhaupt mit PHP möglich oder nur mit Javascript?

    Aus dem Themenkreis entnehme ich, dass Du mit PHP arbeitest. Was hat dann javaScript damit zu tun? Das arbeitet auf dem Client und die von Dir vorgesehen Auswertung doch auf dem Server, oder?

    Schau in dem Parameter $_SERVER["REFERER"] nach.

    ACHTUNG: hier "REFERER" mit einem "R" in der Mitte

    Das gibt Dir Aufschluss

    Grüße

    Tom

    1. Hallo,

      Schau in dem Parameter $_SERVER["REFERER"] nach.

      Lieber nicht.
      dclp-FAQ: "Warum ist es schlecht, mit dem Referer zu arbeiten?"
      http://www.dclp-faq.de/q/q-http-referer.html

      Gruesse,

      Thomas

      1. Hello,

        Schau in dem Parameter $_SERVER["REFERER"] nach.

        Lieber nicht.
        dclp-FAQ: "Warum ist es schlecht, mit dem Referer zu arbeiten?"
        http://www.dclp-faq.de/q/q-http-referer.html

        Wieso, nachschauen kann nie schaden. Erst, wenn man sich drauf verlässt, wird's kritisch.

        Grüße

        Tom (dmdBt)

      2. Hi,

        nochmal eine andere Frage direkt hinterher, die mich auch beschäftigt.

        Kann ich nicht an eine Funktion das gesamte Array mit den Postvars übergeben?

        Bisher übergebe ich immer jeden Wert einzeln. Das nervt:

        testVars($_POST['name'],$_POST['vorname'],etc)

        Würde lieber ein Array übergeben, so dass ich es in der Funktion selber auseinandernemhem kann.

        Ist das möglich ?

        Danke

        1. hi,

          Kann ich nicht an eine Funktion das gesamte Array mit den Postvars übergeben?

          Bisher übergebe ich immer jeden Wert einzeln. Das nervt:

          testVars($_POST['name'],$_POST['vorname'],etc)

          Würde lieber ein Array übergeben, so dass ich es in der Funktion selber auseinandernemhem kann.

          ähm - warum heissen die arrays $_GET, $_POST etc. wohl "superglobal"?

          gruss,
          wahsaga

          1. Hi,

            ähm - warum heissen die arrays $_GET, $_POST etc. wohl "superglobal"?

            Ist mir schon klar, dass man sie nicht übergeben müsste, aber ich habe auch etlichen Seiten gelesen, dass es einen guten programmierer ausmacht, der wiederverwertbaren Code schreiben kann.

            Also sollte man IMMER Werte übergeben, damit man die Funktionen wiederverwenden kann.

            Oder nicht?

            Danke

        2. Hello Tom,

          Kann ich nicht an eine Funktion das gesamte Array mit den Postvars übergeben?

          Dass Du die Frage anders meinst, als Du sie hier stellst, kann ich schon vorhersehen. Ich bin nämlich das Original ;-)) Und ich habe zu diesem theme hier chon ein paar Überlegungen rausgelassen. Die wurden aber nicht verstanden, da ich ja scheinbar meiner Zeit voraus bin *noch mehr grins*

          Selbstverständlich kommen alle Parameter in $_POST bereits in einem Array an. Aber davon kann man sie immer noch nicht strukturiert bearbeiten. Du könntest Dir angewöhnen, alle Parameter im Formular, die DATEN enthalten (Bindung an Tabelle), mit einem Array-Prefix zu versehen:

          <input type="text" name="data[vorname]" size="30" ... >
          <textarea name="data[text][1]" ...>xyz</textarea>
          <input type="submit" name="btn[absenden]" value="Absenden">
          <input type="submit" name="btn[check]" value="erst prüfen">

          usw.

          Dann kommen alle zu verarbeitenden Daten in

          $_POST["data"][.....] an und Du kannst sie gezielt ansprechen.

          (method="Post" vorausgestzt -> für die Friseure unter uns...)

          Grüße

          Tom

          1. Moin!

            <input type="text" name="data[vorname]" size="30" ... >
            Dann kommen alle zu verarbeitenden Daten in

            $_POST["data"][.....] an und Du kannst sie gezielt ansprechen.

            Man kann sich den Krams aber auch sparen und einfach gleich direkt $_POST als Array der Funktion übergeben.

            - Sven Rautenberg

            --
            "Beim Stuff für's Web gibts kein Material, was sonst das Zeugs ist, aus dem die Sachen sind."
            (fastix®, 13. Oktober 2003, 02:26 Uhr -> </archiv/2003/10/60137/#m338340>)
            1. Hello,

              <input type="text" name="data[vorname]" size="30" ... >
              Dann kommen alle zu verarbeitenden Daten in

              $_POST["data"][.....] an und Du kannst sie gezielt ansprechen.

              Man kann sich den Krams aber auch sparen und einfach gleich direkt $_POST als Array der Funktion übergeben.

              Man kann sich auch eien Knopf an die Backe nähen ;o)

              Es geht dabei nur um die saubere Trennung der Daten und der Steuerfunktionen. Der Submit-Button wird wohl kaum mit in der Tabelle abgespeichert. Durch diese Trennung kann man die Verarbeitung polymorph abwickeln. Man fragt einfach nur noch per vorgefertigter Schleifenfunktion, ob das jeweilige Element von data[] in der Tabelle vorhanden ist und gut ist's. Da der Button nicht zur tabelle gehört, würde er einen Fehler auslösen und es dürfte sicherheitshalber nicht gespeichert werden.

              Durch passende Strukturierung muss man viele Dinge nur einmal erfinden...

              Grüße

              Tom