ilch Forum » Allgemein » HTML, PHP, SQL,... » Prüfen ob bestimmtes formular abgesendet

Geschlossen
  1. #1
    User Pic
    CeeJay Hall Of Fame
    Registriert seit
    23.03.2007
    Beiträge
    2.425
    Beitragswertungen
    18 Beitragspunkte
    Moin,

    ich stehe wieder vor einer kleinen Herausforderung:

    Ich möchte mit PHP prüfen, ob ein bestimmtes Formular abgesendet wurde.

    Beispiel:

    Ich habe 2 Formulare in einer Datei
    <!-- Formular 1 -->
    <form name="merken" action="index.php?meins" method="post">
     <input type="hidden" value="15"></input>
     <input type="submit" value="senden"></input>
    </form>
    <!-- Formular 2 -->
    <form name="kaufen" action="index.php?meins" method="post">
     <input type="hidden" value="15"></input>
     <input type="submit" value="senden"></input>
    </form>


    Jetzt möchte ich z.B. das Formular "kaufen" abfangen - wie müsste dann der Code dafür aussehen?
    Nichts ist so sicher, wie die Änderung.
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    Saarlonz Hall Of Fame
    Registriert seit
    07.08.2008
    Beiträge
    3.003
    Beitragswertungen
    235 Beitragspunkte
    Hmm, könntest du dein anliegen mal genauer äußern, ich persönlich kann mir so nichts drunter vorstellen.
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    Pion Hall Of Fame
    Registriert seit
    25.07.2007
    Beiträge
    870
    Beitragswertungen
    51 Beitragspunkte
    if(!empty($_POST['kaufen_sub'])


    Am besten gibts du auch deinen Submits einen Namen also zum Beispiel merken_sub/kaufen_sub
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    CeeJay Hall Of Fame
    Registriert seit
    23.03.2007
    Beiträge
    2.425
    Beitragswertungen
    18 Beitragspunkte
    ZitatZitat geschrieben von Pion
    if(!empty($_POST['kaufen_sub'])


    Am besten gibts du auch deinen Submits einen Namen also zum Beispiel merken_sub/kaufen_sub


    Danke Dominik, das hat geholfen!

    Übrigens: Wenn man seinen Submit´s nicht nur einen Namen, sondern auch einen Wert zuweist, kann man in PHP auch mit ner if-Abfrage den Submit auswerten, anstatt mit isset zu überprüfen, ob der Submit true ist.

    Bsp:

    HTML
    ...
    <input type="submit" name="merken" value="ja"></input>
    ...
    
    PHP
    ...
    $merken_submit = escape($_POST['merken'], 'string');
    ## Abfrage, ob der Merken-Submit geklickt wurde
    if($merken_submit = 'ja'){
     echo 'Das Fahrzeug wurde gemerkt!';
     };
    ...


    Viele Grüße
    Nichts ist so sicher, wie die Änderung.
    0 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    Pion Hall Of Fame
    Registriert seit
    25.07.2007
    Beiträge
    870
    Beitragswertungen
    51 Beitragspunkte
    Klar kannst du das, allerdings hast du dann das Problem, wenn das Formular nicht abgesetzt wurde, dass du ohne vorherige Prüfung einen "undefined" - Fehler bekommst.

    Deswegen kann ich oft die Funktion "empty" - Empfehlen.
    0 Mitglieder finden den Beitrag gut.
  6. #6
    User Pic
    dastiii Mitglied
    Registriert seit
    27.12.2005
    Beiträge
    2.354
    Beitragswertungen
    84 Beitragspunkte
    und if ($merken_submit = 'ja') wird immer true sein, da es ja gar kein Vergleich ist... zunge

    PS: Das ist uebrigens einer der Gruende, warum man true == $bar oder auch null == $foo schreibt, ein true = $bar waere auf der Stelle ein Parse error und man wuerde im schlimmsten Fall nicht stundenlang nach dem Fehler suchen. zwinker


    Zuletzt modifiziert von dastiii am 12.05.2014 - 12:26:22
    1 Mitglieder finden den Beitrag gut.
  7. #7
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Eine weitere Hilfe ist auch, immer typsicher zu vergleichen, wo es möglich ist. Mal abgesehen, dass es etwas schneller ist (was zu vernachlä#ssigen ist) wenn man === schreibt, ist vertippt man sich auch nicht mit = zunge
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  8. #8
    User Pic
    dastiii Mitglied
    Registriert seit
    27.12.2005
    Beiträge
    2.354
    Beitragswertungen
    84 Beitragspunkte
    Ja, das sowieso.

    Ich glaube bevor man == und === von der Zeit vergleicht, gibt es genug andere Baustellen - egal wo. lachen

    Aber es gibt eben nicht viel ärgerlicheres als eine Stunde vergebens nach dem Fehler zu suchen, jeden möglichen Mist zu debuggen, um dann festzustellen, dass man statt === oder == einfach nur = geschrieben hat. Da nehme ich das gerne in Kauf, dass true === $foo sich "schlechter" lesen lässt als umgekehrt.
    0 Mitglieder finden den Beitrag gut.
  9. #9
    User Pic
    Pion Hall Of Fame
    Registriert seit
    25.07.2007
    Beiträge
    870
    Beitragswertungen
    51 Beitragspunkte
    Ich kann mich nicht zurück erinnern das ich jemals ein "=" statt zwei geschrieben hab. Also so oft kams also nicht vor^^
    0 Mitglieder finden den Beitrag gut.
  10. #10
    User Pic
    CeeJay Hall Of Fame
    Registriert seit
    23.03.2007
    Beiträge
    2.425
    Beitragswertungen
    18 Beitragspunkte
    ZitatZitat geschrieben von Pion
    Klar kannst du das, allerdings hast du dann das Problem, wenn das Formular nicht abgesetzt wurde, dass du ohne vorherige Prüfung einen "undefined" - Fehler bekommst.

    Deswegen kann ich oft die Funktion "empty" - Empfehlen.


    das Problem habe ich gerade gehabt -.-

    und natürlich die Fehlersuche - zum Kotzen!

    ich versuchs jetzt mit !empty... mal schauen, obs dann besser klappt.
    Nichts ist so sicher, wie die Änderung.
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu HTML, PHP, SQL,...

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten