Robert Falter: Formular mit wählbaren Mailempfängern

Hallo

Ich will ein bestehendes Formularscript  erweitern:
der User soll die Möglichkeit haben - mittels Radioknopf - zwischen mehreren
Mailempfängern zu wählen.

der Variable $dest - die vom Script weiterverarbeitet wird - und in die
jetzt die (eine) Mailadresse des Adressaten eingetragen ist, möchte ich die
vom User gewählte Email-Adresse zuweisen.

Mit meinen bescheidenen kenntnissen möchte ich das - wenn möglich - mit
einer switch-Schleife wie folgend zu lösen.
Anscheinend habe ich aber dabei Probleme mit der Syntax.
Oder ist mein Lösungsansatz überhaupt falsch?

$dest = $empf
switch ($empf) {
case "empf1": ("sie@web.de"); break;
case "empf2": ("er@web.de"); break;
default: ("ich@web.de"); break;
};

Bitte kann mir da jemand helfen.
Danke schon mal im Voraus.

Gruß

  1. Hallo Robert,

    einer switch-Schleife wie folgend zu lösen.

    if/else, switch etc. sind bedingte Anweisungen oder Statements, keine Schleifen. Schleifen sind for, while etc., weil hier ein Vorgang solange durchlaeuft, wie eine Bedingung erfuellt ist.
    Warum gibst du nicht gleich Deinen Radiobuttons die Emailadresse als Wert mit, dann faellt die Auswertung voellig flach.
    <input type="radio" name="email" value="foo@exmaple.com">

    Gruß,

    Dieter

    1. hi,

      Warum gibst du nicht gleich Deinen Radiobuttons die Emailadresse als Wert mit, dann faellt die Auswertung voellig flach.
      <input type="radio" name="email" value="foo@exmaple.com">

      weil das die herzen der spammer höher schlagen lässt ...?

      bitte bei öffentlich zugänglichen formmailern _immer_ nur eine ID übergeben, aus der dann serverseitig die mailadresse ermittelt wird - und nicht etwa die mailadresse vom client liefern lassen.

      gruß,
      wahsaga

      --
      "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
      1. Hello,

        bitte bei öffentlich zugänglichen formmailern _immer_ nur eine ID übergeben, aus der dann serverseitig die mailadresse ermittelt wird - und nicht etwa die mailadresse vom client liefern lassen.

        Und wenn eine Mailadresse vom Client geliefert wird (kommt ja z.B. bei 'From: ich@selfforum.test' mal vor), immer überprüfen, ob nur genau eine einzige Mailadresse im String enthalten ist, oder ob da ein ganzes Bündel kommt.

        Alle Daten, die in den Header einer wMail aufgenommen werden, müssen geprüft werden auf Injektion.

        Das sind:

        to:
          subject:
          header:

        Nur "message" wird meinen Schaden mehr anrichten können.

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

        Tom

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

      Warum gibst du nicht gleich Deinen Radiobuttons die Emailadresse als Wert mit, dann faellt die Auswertung voellig flach.

      ...und man kann das Script dann wunderbar dazu mißbrauchen, massenweise
      Spam zu versenden.

      Gruß, Jan

  2. Hello,

    Mit meinen bescheidenen kenntnissen möchte ich das - wenn möglich - mit
    einer switch-Schleife wie folgend zu lösen.
    Anscheinend habe ich aber dabei Probleme mit der Syntax.
    Oder ist mein Lösungsansatz überhaupt falsch?

    Vielleicht schon.

    $_mails = array();
    $_mails[1] = 'sie@zuhause.test';
    $_mails[2] = 'er@zuhause.test';
    $_mails[3] = 'es@zuhause.test';

    $mailto = false;

    if (!empty($_POST['mail']))          ## 'mail' ist der Name des radio.
    {
      $index = intval($_POST['mail']);   ## das ist der Value des Radio

    if (isset($_mails[$index]))
      {
        $mailto = $_mails[$index];
      }
    }

    Ich ahbe das extr etwas ausfühlicher geschrieben. Spezialisten[tm] bekommen das bestimmt auch in einer Zeile hin, aber dann kannst Du es nicht mehr verstehen als Anfänger (und als Profi nach 90 Tagen auch nicht mehr *g*)

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

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau
    1. $mailto = false;

      if (!empty($_POST['mail']))          ## 'mail' ist der Name des radio.
      {
        $index = intval($_POST['mail']);   ## das ist der Value des Radio

      Danke für die rasche Hilfe!
      Nur das mit dem Value versteh ich nicht. Welchen Wert solll bei den Radios eintragen ?
      Jeweils "1", "2", "3" ?

      Gruß

      Robert

      1. hi,

        Nur das mit dem Value versteh ich nicht. Welchen Wert solll bei den Radios eintragen ?

        beschäftige dich mit den grundlagen von arrays, dann solltest du dir selber denken können, welche values du nehmen musst.

        gruß,
        wahsaga

        --
        "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
      2. Hello,

        $mailto = false;

        if (!empty($_POST['mail']))          ## 'mail' ist der Name des radio.
        {
          $index = intval($_POST['mail']);   ## das ist der Value des Radio

        Danke für die rasche Hilfe!
        Nur das mit dem Value versteh ich nicht. Welchen Wert solll bei den Radios eintragen ?
        Jeweils "1", "2", "3" ?

        http://de.selfhtml.org/html/formulare/auswahl.htm#radiobuttons

        Radio-Groups haben eigentlich nur einen Value por Alternative.

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

        Tom

        --
        Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
        Nur selber lernen macht schlau