Formular mit wählbaren Mailempfängern
Robert Falter
- php
0 Dieter Raber0 Tom
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ß
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
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
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
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
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
$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
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
Hello,
$mailto = false;
if (!empty($_POST['mail'])) ## 'mail' ist der Name des radio.
{
$index = intval($_POST['mail']); ## das ist der Value des RadioDanke 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