Submit button -> in php verarbeiten

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Submit button -> in php verarbeiten

    Guten Morgen an alle,

    ich möchte gerne auf einen durch eine while Schleife erzeugtes Formular (den submit button) zugreifen, jedoch komme ich nicht weiter.

    Ich erzeuge ein Formular:

    PHP-Code:
    <table>
    <
    tr>
    while(
    $inhalt mysql_fetch_array($db_ergMYSQL_ASSOC))
        {
            echo 
    $inhalt['daten_name'].'<br>';
            echo 
    '
                <form method="POST" action="index.php">
                <input type="submit" value="Zu den Info\'s" name="'
    .$inhalt['daten_id'].'"/>
                <input type="hidden" name="send" value="ja"/>
                </form> '
    ;
        }
    </
    tr>
    </
    table

    nun möchte ich später im Script feststellen, welchen Button der Nutzer gedrückt hat:

    PHP-Code:
    if ($_POST['send'] == 'ja'){
    $sql 'SELECT * FROM daten WHERE daten_id = '.$_POST['daten_id'];

    ...
    Ausgabe
    ...

    Funzt leider nicht ... $inhalt['daten_id'] gibt die ID korrekt wieder also :
    <input type="submit" value="Zu den Info\'s" name="18"/>

    Ich habe glaube ich alles was ich in div. Foren gefunden habe ausprobiert...
    via $_REQUEST (was ja nicht so der Knüller sein soll)
    dann hab ich sogar versucht $_POST['daten_id'] in einem hidden Feld zu übergeben...

    Ich denke mal das Problem werden schon mehrere Leute hier gehabt haben.. jemand eine Lösung parat?

    Danke im Vorraus Mathias

  • #2
    Hi,

    warum erstellst Du Formulare über While Schleifen?? Klingt erstmal nach nem Struktur Problem, wenn Du das so aufbaust!
    Wenn Du wissen willst, ob ein Submit Button gedrückt wurde, musst Du ihn über den Namen ansprechen, z.B.:

    PHP-Code:
    <?php

    //Button geklickt?
    if (isset($_POST["submit"]))
    {
    //dann mache was...
    }
    ?>
    <form method="post" action="">
    ...
    <input type="submit" name="submit" value="Senden" />
    </form>
    mfg streuner

    P.S. Stichwort: SQL Injection bei

    [COLOR=#000000][COLOR=#0000CC]$sql [/COLOR][COLOR=#006600]= [/COLOR][COLOR=#CC0000]'SELECT * FROM daten WHERE daten_id = '[/COLOR][COLOR=#006600].[/COLOR][COLOR=#0000CC]$_POST[/COLOR][COLOR=#006600][[/COLOR][COLOR=#CC0000]'daten_id'[/COLOR][COLOR=#006600]];

    [COLOR=black]du öffnest Tür und Tor für nen Angreifer![/COLOR]
    [/COLOR][/COLOR]
    Erst wenn der letzte FTP Server kostenpflichtig, der letzte GNU-Sourcecode verkauft, der letzte Algorithmus patentiert,
    der letzte Netzknoten verkommerzialisert ist, werdet Ihr merken, dass Geld nicht von alleine programmiert.

    "Diese Software verdient die 3 großen GGG: --- Gesehen --- Gelacht --- Gelöscht ---"

    Kommentar


    • #3
      Zitat von streuner Beitrag anzeigen
      Hi,

      warum erstellst Du Formulare über While Schleifen?? Klingt erstmal nach nem Struktur Problem, wenn Du das so aufbaust!
      Wenn Du wissen willst, ob ein Submit Button gedrückt wurde, musst Du ihn über den Namen ansprechen, z.B.:

      PHP-Code:
      <?php

      //Button geklickt?
      if (isset($_POST["submit"]))
      {
      //dann mache was...
      }
      ?>
      <form method="post" action="">
      ...
      <input type="submit" name="submit" value="Senden" />
      </form>
      mfg streuner

      P.S. Stichwort: SQL Injection bei

      [COLOR=#000000][COLOR=#0000CC]$sql [/COLOR][COLOR=#006600]= [/COLOR][COLOR=#CC0000]'SELECT * FROM daten WHERE daten_id = '[/COLOR][COLOR=#006600].[/COLOR][COLOR=#0000CC]$_POST[/COLOR][COLOR=#006600][[/COLOR][COLOR=#CC0000]'daten_id'[/COLOR][COLOR=#006600]];

      [COLOR=black]du öffnest Tür und Tor für nen Angreifer![/COLOR]
      [/COLOR][/COLOR]
      Danke für die schnelle Antwort,

      Ich Erzeuge die Tabelle über die Schleife, da ich eine Übersicht von Angeboten erstelle und dazu ein Button "zu den Info's".. bei Klick soll dann das jeweilige Angebot gezeigt werden.
      Wenn ich z.B. einen Link statt dem Button erstelle kann ich ja nur über $_GET zugreifen und das wollte ich eigentlich vermeiden..
      Ist also mein Ansatz falsch?

      Gruß Mathias

      Kommentar


      • #4
        Ich Erzeuge die Tabelle über die Schleife, da ich eine Übersicht von Angeboten erstelle und dazu ein Button "zu den Info's"
        die Übersicht kannst du ja in einer Tabelle/Liste s.w darstellen und Infos über nen Tooltip ausgeben lassen.

        Ich Erzeuge die Tabelle über die Schleife, da ich eine Übersicht von Angeboten erstelle und dazu ein Button "zu den Info's".. bei Klick soll dann das jeweilige Angebot gezeigt werden.
        wenn Du Infos dazu anzeigen willst, macht man das z.B. auch eleganter über nen Tooltip (Bsp.: http://flowplayer.org/tools/demos/tooltip/form.htm)

        Wenn ich z.B. einen Link statt dem Button erstelle kann ich ja nur über $_GET zugreifen und das wollte ich eigentlich vermeiden..
        korrekt, dann mit GET. Musst die Werte halt validieren, oder ne Whitelist nutzen.

        Ist also mein Ansatz falsch?
        ...sagen wir mal: es geht optimaler

        mfg streuner
        Erst wenn der letzte FTP Server kostenpflichtig, der letzte GNU-Sourcecode verkauft, der letzte Algorithmus patentiert,
        der letzte Netzknoten verkommerzialisert ist, werdet Ihr merken, dass Geld nicht von alleine programmiert.

        "Diese Software verdient die 3 großen GGG: --- Gesehen --- Gelacht --- Gelöscht ---"

        Kommentar


        • #5
          Hey, also das mit dem Tooltip habe ich vor dem neuen Ansatz benutzt (funzt super) nur wollte ich es anders haben, dass man direkt auf ein "Angebot" klicken kann und nicht aus einem Drop Down Menü "raussuchen" muss..

          Hmm also entweder ich mache das jetzt über $_GET oder ich behalte die jetzige Übersicht der Angebote und klatsche dann das drop Down drunter.

          Optimaler geht meistens immer ;P

          Danke für deine Hilfe streuner.
          Muss mich dann mal entscheiden..

          Gruß Mathias

          Kommentar


          • #6
            Tooltip mit link ist auch möglich

            Und wenn du das so mit Formularen machen möchtest, dann vergib nicht für den Submit Button ständig neue Namen (nimm imemr denselben) und übergib die id einfach an das hidden Feld in dem jeweilig neu generierten Formular.

            mfg streuner
            Erst wenn der letzte FTP Server kostenpflichtig, der letzte GNU-Sourcecode verkauft, der letzte Algorithmus patentiert,
            der letzte Netzknoten verkommerzialisert ist, werdet Ihr merken, dass Geld nicht von alleine programmiert.

            "Diese Software verdient die 3 großen GGG: --- Gesehen --- Gelacht --- Gelöscht ---"

            Kommentar


            • #7
              Und wenn du das so mit Formularen machen möchtest, dann vergib nicht für den Submit Button ständig neue Namen (nimm imemr denselben) und übergib die id einfach an das hidden Feld in dem jeweilig neu generierten Formular.
              -> Check

              Nein wie geil

              Passt jetzt !

              ein
              Code:
              <input type="hidden" name="daten_id" value="'.$inhalt['daten_id'].'"/>
              hats dann letztendlich gelöst.

              Kommentar

              Lädt...
              X