Autor |
Nachricht |
m
Moderator
Dabei seit: 18.11.2004
Ort: -
Alter: -
Geschlecht:
|
Verfasst Do 02.07.2009 14:13
Titel
|
|
|
Smooth-Graphics hat geschrieben: | Ja, das macht gar nichts, der Spam kann so bestens versendet werden, siehe Google Links.
Ist eigentlich auch nicht schwer mal die grundlegenden Dinge zu beachten: |
Ich kann hier keine Lücke für eine Injection entdecken, hm, mir knallt aber auch die Sonne auf den Kopf ...
|
|
|
|
|
Smooth-Graphics
Dabei seit: 22.05.2006
Ort: -
Alter: -
Geschlecht:
|
Verfasst Do 02.07.2009 14:23
Titel
|
|
|
m hat geschrieben: | Ich kann hier keine Lücke für eine Injection entdecken, hm, mir knallt aber auch die Sonne auf den Kopf ... |
Es wird ja kein einziger String validiert und damit kann das Formular potenziell missbraucht werden...
|
|
|
|
|
Anzeige
|
|
|
m
Moderator
Dabei seit: 18.11.2004
Ort: -
Alter: -
Geschlecht:
|
Verfasst Do 02.07.2009 14:33
Titel
|
|
|
Smooth-Graphics hat geschrieben: | m hat geschrieben: | Ich kann hier keine Lücke für eine Injection entdecken, hm, mir knallt aber auch die Sonne auf den Kopf ... |
Es wird ja kein einziger String validiert und damit kann das Formular potenziell missbraucht werden... |
Ne, eine Header Injection ist über den dritten Parameter der Mail Funktion nicht möglich
und dieser erhält den einzigen variablen nicht maskierten/validierten Wert.
|
|
|
|
|
Smooth-Graphics
Dabei seit: 22.05.2006
Ort: -
Alter: -
Geschlecht:
|
Verfasst Do 02.07.2009 14:46
Titel
|
|
|
m hat geschrieben: | Ne, eine Header Injection ist über den dritten Parameter der Mail Funktion nicht möglich
und dieser erhält den einzigen variablen nicht maskierten/validierten Wert. |
Hm, naja ist wohl doch bissl heiß
|
|
|
|
|
Pixelpole
Dabei seit: 25.10.2004
Ort: Trier
Alter: 37
Geschlecht:
|
Verfasst Do 02.07.2009 14:47
Titel
|
|
|
stimmt du hast recht. Es ist nicht möglich. Aber auch nur weil php automatisch header einfügt wenn keine mitgesendet werden. Würde php das nicht tun bräuchte man nur seine eigenene headerfelder einfügen und eine leerzeile reinmachen und schon haben wir das teil lustig in der gegend rumverschickt
War mein Fehler, ich hatte total vergessen das php ja auch eigene header mitsendet.
//jaja, heiß und so
Zuletzt bearbeitet von Pixelpole am Do 02.07.2009 14:48, insgesamt 2-mal bearbeitet
|
|
|
|
|
TOMillr
Threadersteller
Dabei seit: 21.03.2008
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Do 02.07.2009 15:20
Titel
|
|
|
Smooth-Graphics hat geschrieben: | Schau dir mal bitte an, was du versuchst zu überprüfen in der ersten Zeile des PHP Docs:
Code: | if(isset($_POST['submit'])) |
Wo ist 'submit' definiert? Nirgendwo im Formular. Eben.
Ich hab das nur als Beispiel geschrieben, anpassen sollst das schon du.
|
Ok, also müsste das Formular ungefähr so aussehen?
Code: | <form name="mailformular" method="POST" action="mailer.php">
<input type="text" name="name" id="name">
<input type="text" name="email" id="email">
<input type="radio" name="radio" value="Option 1">
<input type="radio" name="radio" value="Option 2">
<input type="submit" name="submit" id="submit" value="Abschicken">
<form> |
|
|
|
|
|
TOMillr
Threadersteller
Dabei seit: 21.03.2008
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Do 02.07.2009 16:14
Titel
|
|
|
Ok, habe in der Zwischenzeit das Tutorial wiedergefunden, mit dem ich damals das ursprüngliche Formular erstellt habe. LINK Dort gibt es auch eine Demodatei, die heruntergeladen, meine Email Adresse ergänzt und dann auf den Server hochgeladen habe.
Zur Veranschaulichung hier noch mal die entsprechenden Codezeilen:
Code: | <?php
if(isset($_POST['submit'])) {
$to = "hier steht dann meine Email Adresse";
$subject = "Form Tutorial";
$name_field = $_POST['name'];
$email_field = $_POST['email'];
$message = $_POST['message'];
$option = $_POST['radio'];
$dropdown = $_POST['drop_down'];
foreach($_POST['check'] as $value) {
$check_msg .= "Checked: $value\n";
}
$body = "From: $name_field\n E-Mail: $email_field\n $check_msg Option: $option\n Drop-Down: $dropdown\n Message:\n $message\n";
echo "Data has been submitted to $to!";
mail($to, $subject, $body);
} else {
echo "blarg!";
}
?> |
Und so sieht das Demoformular aus:
Code: | <form method="POST" action="mailer.php">
Name:
<input type="text" name="name" size="19"><br>
<br>
E-Mail:
<input type="text" name="email" size="19"><br>
<br>
<input type="checkbox" name="check[]" value="blue_color"> Blue<br>
<input type="checkbox" name="check[]" value="green_color"> Green<br>
<input type="checkbox" name="check[]" value="orange_color"> Orange<br>
<br>
<input type="radio" value="yes" name="radio"> YES<br>
<input type="radio" value="no" name="radio"> NO
<br>
<br>
<select size="1" name="drop_down">
<option>php</option>
<option>xml</option>
<option>asp</option>
<option>jsp</option>
</select><br>
<br>
Message:<br>
<textarea rows="9" name="message" cols="30"></textarea><br>
<br>
<input type="submit" value="Submit" name="submit">
</form> |
Wenn ich nun jedoch das Formular abschicke, bekomme ich folgende Meldung ausgegeben:
Zitat: | Warning: Invalid argument supplied for foreach() in /is/htdocs/SERVERPFAD on line 12
Data has been submitted to EMAILADRESSE! |
Jemand eine Idee, was nun wieder schiefgelaufen sein könnte? Oder hat vielleicht jemand eine Alternative für mich? Benötige eigentlich nur ein Formular, welches NAME, EMAILADRESSE sowie jeweils den Wert einer RADIOserie per Mail an mich schickt.
|
|
|
|
|
|
|
|
Ähnliche Themen |
E-Mailformular
Mailformular Umlaute
Mailformular fehlerhaft!
Flash MX Mailformular
PHP Mailformular umlaute
[PHP] Fehlermeldung in Mailformular ausgeben
|
|