tommyboy: Eine Variable über 2 Formulare weitergeben

Servus Selfhtmler...

bin so langsam am verzweifeln...
Ich versuche ein Serverseitiges Kontaktformular aufzubauen, das an mehrere E-Mailaddis versenden kann,
Hierfür habe ich in den Seiten wo eine Kontaktaufnahme zu den Personen erwünscht ist einen Button unter die jeweilige Person gesetzt und als Form Deklariert.
<form name="1" action="kontakt.php" method="post">
<input name="1" type="submit" value="Mail-Kontakt">
</form>
Hierüber wird jetzt afair der Wert "1" an die kontakt.php übergeben.
Soweit so gut... das funktioniert auch jetzt.
In der Kontakt.php wird nun aus einer MySQL Tabelle die zugehörige E-Mail ausgelesen (Auch das klappt).
Nun soll diese E-Mailadresse an die Mail.php weitergeleitet werden und das klappt nicht da siese ja nicht im Form-Tag steht... ;(
Wie kann ich das erreichen ?
zum anschauen:
http://www.schuetzenverein-sande.de/php/gesetz_vorstand.php

  1. Hallo Tommy!

    [...] der Wert "1" an die kontakt.php übergeben.
    In der Kontakt.php wird nun aus einer MySQL Tabelle die zugehörige E-Mail ausgelesen (Auch das klappt).
    Nun soll diese E-Mailadresse an die Mail.php weitergeleitet werden und das klappt nicht da siese ja nicht im Form-Tag steht... ;(
    Wie kann ich das erreichen ?

    Also, kontakt.php erzeugt ein weiteres Formular, oder sehe ich das falsch?
    Dann kannst Du doch dort einfach ein hidden-Feld mit der ID einbauen, und erst in der mail.php aus dieser ID dann die E-Mail-Adresse machen?!

    Ähm, ich hab mir grad den ersten Button angeschaut, der sieht im Moment anders aus, wie du gepostet hast, nämlich so:
    <form action="kontakt.php?mailan={ID}">
    <input type="submit" name="{ID}" value="Mail-Kontakt">
    Wozu die ID zweimal übergeben?

    Ich befürchte, ich habe Dein Problem noch nicht so ganz verstanden - aber die selbe ID zweimal zu übergeben ist definitiv einmal zu viel ;)

    MfG
    Götz

    --
    Losung für Samstag, 10. Juli 2004
    Wendet euch zu mir, so werdet ihr gerettet, aller Welt Enden; denn ich bin Gott und sonst keiner mehr. (Jesaja 45,22)
    Wenn ihr nicht umkehrt und werdet wie die Kinder, so werdet ihr nicht ins Himmelreich kommen. (Matthäus 18,3)
    (http://www.losungen.de/heute.php3)
    1. Hallo Götz,

      Also, kontakt.php erzeugt ein weiteres Formular, oder sehe ich das falsch?

      jain - es ruft nur die Mail.php auf (überprüfen und versenden des Mailstrings) von der dann ausgegeben wird ob das versenden geklappt hat oder nicht ...

      Dann kannst Du doch dort einfach ein hidden-Feld mit der ID einbauen, und erst in der mail.php aus dieser ID dann die E-Mail-Adresse machen?!

      Also nochmal zur besseren verständnis wie mir das vorschwebt---
      Von der 1. Seite aus "Button-Klick" übergabe ID des Buttons...
      mit POST an Kontakt.php.
      Hier auslesen ID und dann zuweisen der Mailaddi-
      <Click auf Absenden> Aufruf der Mail.php, zusammensetzen des MailStrings und versenden der Mail - ausgabe ob geklappt hat oder nicht ...
      wenn es da eine einfachere Lösung gibt bin ich für jede Anregung zu haben !

      1. Hello,

        jain - es ruft nur die Mail.php auf (überprüfen und versenden des Mailstrings) von der dann ausgegeben wird ob das versenden geklappt hat oder nicht ...

        Dann kannst Du doch dort einfach ein hidden-Feld mit der ID einbauen, und erst in der mail.php aus dieser ID dann die E-Mail-Adresse machen?!

        Also nochmal zur besseren verständnis wie mir das vorschwebt---
        Von der 1. Seite aus "Button-Klick" übergabe ID des Buttons...
        mit POST an Kontakt.php.
        Hier auslesen ID und dann zuweisen der Mailaddi-
        <Click auf Absenden> Aufruf der Mail.php, zusammensetzen des MailStrings und versenden der Mail - ausgabe ob geklappt hat oder nicht ...
        wenn es da eine einfachere Lösung gibt bin ich für jede Anregung zu haben !

        Ganz im Gegenteil! Damit Du Dir nicht aus Versehen ein "open relay" bastelst, musst Du das Ganze noch viel komplexer gestalten. Anderenfalls könntest Du leicht als Mitstörer verurteilt werden, wenn über dein Relay Spam verschickt wird. Von Mailern sollte man solange die Finger lassen, bis man selber weiß, wie sie funktionieren. Also auch keine fertigen ungeprüft einsetzen, denn ca. 80% davon (geschätzt) haben das Problem mit der Sicherheit.

        Außerdem würde ich das Kontakt- und das Sendescript in einem "Affenformular" zusammenfassen, damit das Projekt wartbar bleibt und man leicht Formular-IDs gegen (un-)beabsichtigtes Mehrfachmail einsetzen kann.

        Von einer wirklichen Lösung für einen _öffentlichen_ Webserver bist Du also noch weit entfernt. Für Übungen im LAN ist der Schritt schon ein Baustein zum Ziel... ;-))

        #####################
                                             Bitte sei vorsichtig!
                                             #####################

        Harzliche Grüße aus http://www.annerschbarrich.de

        Tom

        --
        Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
        Nur selber lernen macht schlau
  2. Hello,

    <form name="1" action="kontakt.php" method="post">
    <input name="1" type="submit" value="Mail-Kontakt">
    </form>

    Hierüber wird jetzt afair der Wert "1" an die kontakt.php übergeben.

    Nein, hierüber wird das Name-Value-Pair   "1=Mail-Kontakt"  an das Script übergeben.

    1. Parameternamen sollten immer mit einem Buchstaben anfangen
    2. es ist überhaupt kein "Datenwert" vorhanden

    Handelt es sich denn um eine Liste mit Mailempfängern? Dann würde sich doch vielleicht ein Radio oder eine Checkbox als Input-Type besser eignen?

    Harzliche Grüße aus http://www.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau
    1. Hello,

      <form name="1" action="kontakt.php" method="post">
      <input name="1" type="submit" value="Mail-Kontakt">
      </form>

      Hierüber wird jetzt afair der Wert "1" an die kontakt.php übergeben.

      Nein, hierüber wird das Name-Value-Pair   "1=Mail-Kontakt"  an das Script übergeben.

      1. Parameternamen sollten immer mit einem Buchstaben anfangen
      2. es ist überhaupt kein "Datenwert" vorhanden

      Handelt es sich denn um eine Liste mit Mailempfängern? Dann würde sich doch vielleicht ein Radio oder eine Checkbox als Input-Type besser eignen?

      Tom

      hallo Tom - nein Keine Liste mit Mailempfängern es soll immer nur ein Empfänger angeschrieben werden...
      Schau dir die Site mal an ... dann siehst du evtl. warum ich das so machen will

      gruß Tommyboy

      1. Hello,

        Handelt es sich denn um eine Liste mit Mailempfängern? Dann würde sich doch vielleicht ein Radio oder eine Checkbox als Input-Type besser eignen?

        hallo Tom - nein Keine Liste mit Mailempfängern es soll immer nur ein Empfänger angeschrieben werden...
        Schau dir die Site mal an ... dann siehst du evtl. warum ich das so machen will

        Ich habe es mir angeschaut und fünf Empfänger festgetellt. Das ist also eine Liste von fünf möglichen, aus dnen immer nur einer ausgewählt werden soll.

        da bevorzuge ich folgendes Konstrukt:

        <form action="<?php echo $_SERVER['PHP_SELF']; ?>"
              method="post"
              enctype="multipart/form-data">

        <p><img src="bild1.jpg"><br />
             <input type="submit" name="btn[mail][1]" value="Mitteilung schicken">
          </p>

        <p><img src="bild2.jpg"><br />
             <input type="submit" name="btn[mail][2]" value="Mitteilung schicken">
          </p>

        <p><img src="bild3.jpg"><br />
             <input type="submit" name="btn[mail][3]" value="Mitteilung schicken">
          </p>

        <!-- u.s.w. -->

        </form>

        Kopier dir das mal auf Deine Platte und tausche action="..." zum Testen gegen

        action="http://selfhtml.bitworks.de/debug/kontrolle.php"

        aus. Dann schaust Du Dir die Post-Variablen an und machst Dir deinen reim darauf.

        Harzliche Grüße aus http://www.annerschbarrich.de

        Tom

        --
        Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
        Nur selber lernen macht schlau
        1. Ich habe es mir angeschaut und fünf Empfänger festgetellt. Das ist also eine Liste von fünf möglichen, aus dnen immer nur einer ausgewählt werden soll.

          Tom

          ja... gut für diese Seite trifft das mit 5 Empfängern zu...
          auf anderen Seiten kommen aber noch mehrere hinzu...
          Zum Ende sind das aber bis zu 40 E-MailAddressen...
          Was natürlich nicht vom eigentlichen Problem ablenken soll...
          In sofern hast du recht.

          Habe das jetzt mal so geändert, wie du Vorgeschlagen hast.
          das Ergebnis der Post sieht so aus:
          POST-VariablenArray
          (
              [btn] => Array
                  (
                      [2] => Mail-Kontakt
                  )

          )
          und das bei allem - Egal ob 1, 2 oder sonst was ...
          Soll das heissen, das ich dann dementsprechend den Button Text ändern muß ? oder die ID des Buttons ?

          1. Hello,

            ja... gut für diese Seite trifft das mit 5 Empfängern zu...
            auf anderen Seiten kommen aber noch mehrere hinzu...
            Zum Ende sind das aber bis zu 40 E-MailAddressen...
            Was natürlich nicht vom eigentlichen Problem ablenken soll...
            In sofern hast du recht.

            Habe das jetzt mal so geändert, wie du Vorgeschlagen hast.
            das Ergebnis der Post sieht so aus:
            POST-VariablenArray
            (
                [btn] => Array
                    (
                        [2] => Mail-Kontakt
                    )

            )
            und das bei allem - Egal ob 1, 2 oder sonst was ...
            Soll das heissen, das ich dann dementsprechend den Button Text ändern muß ? oder die ID des Buttons ?

            ... name="btn[mail][2]" value="Mail-Kontakt" ...

            war mein Vorschlag. Das hat Vorteile

            mit if(isset($_POST['btn']['mail'])

            kann man feststellen, ob die integrierte Mailfunktion aufgerufen werde sollte. Die ruft man dan mit

            $mailok = send_mail($_POST['btn']['mail'], $_maildata)

            auf und kann darin dann danach fragen, welche Mailadresse zu welchem Index gehört und kann diese Mail versenden.

            Auf diese Weise kann man auch umfangreiche Formulare sauber strukturieren und jeweils die passenede Kategorie mittels include_once() zur Abarbeitung dazuladen. Das hält das Kernprogramm klein und verursacht daruch nicht Millionen von Bytes unnützen Speicherbedarfs.

            Harzliche Grüße aus http://www.annerschbarrich.de

            Tom

            --
            Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
            Nur selber lernen macht schlau
            1. Hello,

              ... name="btn[mail][2]" value="Mail-Kontakt" ...

              war mein Vorschlag. Das hat Vorteile

              mit if(isset($_POST['btn']['mail'])

              kann man feststellen, ob die integrierte Mailfunktion aufgerufen werde sollte. Die ruft man dan mit

              $mailok = send_mail($_POST['btn']['mail'], $_maildata)

              auf und kann darin dann danach fragen, welche Mailadresse zu welchem Index gehört und kann diese Mail versenden.

              Auf diese Weise kann man auch umfangreiche Formulare sauber strukturieren und jeweils die passenede Kategorie mittels include_once() zur Abarbeitung dazuladen. Das hält das Kernprogramm klein und verursacht daruch nicht Millionen von Bytes unnützen Speicherbedarfs.

              Harzliche Grüße aus http://www.annerschbarrich.de

              Tom

              Danke erstmal
              Werde es mir zu gemüte führen...

  3. Hi,

    <input type="hidden" name="weiterleiten" value="daswillichhaben">

    So vielleicht?

    E7