"Ich sehe übrigens nirgends eine Definition für die Variable $email ? Du meinst doch hoffentlich nicht $emailFeld ? Du darfst NIEMALS eine Post-Variable ungeprüft in einen E-Mailheader schreiben! Das ist eine gravierende Sicherheitslücke und kann zum Spamversand genutzt werden."
Ja da sind ja auch schon die nächsten Fragen:
in dem Kontaktformular sollen die Benutzer ihre e-mail-Adresse eintragen. Was muss ich tun, um eine mögl. Sicherheitslücke zu schließen?
1. Die E-Mailadresse gehört eh nicht in "From:", da Dein Mailserver nicht berechtigt ist, im Namen des E-Mailadressen-Inhabers E-Mails zu verschicken. Stattdessen solltest Du sie in "Reply-To:" einsetzen.
2. Auch im "Reply-To:" muss verifiziert werden, ob es sich um eine gültige E-Mailadresse ohne zusätzliche Headerzeilen handelt. Ich habe gerade Diese Seite gefunden, auf der zwei gute Codes zum Überprüfen einer E-Mailadresse stehen (abhängig davon, welche PHP-Version Du benutzt).
nächstes Problem:
die im Kontakt-Rücksendeformular ausgefüllten Daten kommen nicht in der versendeten Mail an.
Wie kann ich die Daten (Name, Adresse...) mitsenden?
So kommen die Daten in der E-mail an:
Am 15.04.12 21:40 schrieb "[email protected]" unter
<[email protected]>:
>From
>Content-type text/html
>
><br><hr><br>
>Anrede: <br>
>Name: <br>
>Straße: <br>
>Plz und Ort: und Ort <br>
>Email: <br>
>Telefon: <br>
>Fax: <br>
>Nachricht: <br>
Kannst Du bitte noch mal den aktuellen Quelltext posten?
Am besten, wie schon erwähnt, in [code]hier rein[/code].Ist dann besser lesbar.
Ich nehme an, dass die Variablennamen irgendwo falsch geschrieben sind. (Groß-/Kleinschreibung beachtet?) Eventuell auch mal den HTML-Code für das Kontaktformular dabei. Vielleicht ist da ja auch noch was falsch.
Ich sehe gerade du hast oben, wo die POST-Variablen in normale Variablen umgewandelt werden überall FELD hinter stehen, später jedoch nicht mehr. Die Variablennamen müssen schon identisch sein, sonst klappt es nicht.
hier der aktuelle Code:
[/<?php
/* Betreff und Email Variable */
$emailBetreff = ‘xxxxxxxxxx.de’;
$webmaster = "[email protected]";
/* Emailform Daten */
$nameFeld = $_POST[‘name’];
$strasseFeld = $_POST[‘strasse’];
$PlzundOrtFeld = $_POST[‘PlzundOrt’];
$emailFeld = $_POST[‘email’];
$telefonFeld = $_POST[‘telefon’];
$faxFeld = $_POST[‘fax’];
$nachrichtFeld = $_POST[‘nachricht’];
$body = <<<EOD
<br><hr><br>
Anrede: $Anrede <br>
Name: $Name <br>
Straße: $Strasse <br>
Plz und Ort: $Plz und Ort <br>
Email: $Email <br>
Telefon: $Telefon <br>
Fax: $Fax <br>
Nachricht: $Nachricht <br>
EOD;
$headers = "From $email\r\n";
$headers .= "Content-type text/html\r\n";
$headers = mail ($webmaster, $emailBetreff, $body, $headers);
/*Antwort*/
echo "Ihre Nachricht wurde erfolgreich versendet!";
?>]
bis morgen!
das ist der überarbeitete aktuelle Code:
[/<?php
/* Betreff und Email Variable */
$emailBetreff = "xxxxxx.de";
$webmaster = "info@xxxxxx";
/* Emailform Daten */
$nameFeld = $_POST[‘name’];
$strasseFeld = $_POST[‘strasse’];
$PlzundOrtFeld = $_POST[‘PlzundOrt’];
$emailFeld = $_POST[‘email’];
$telefonFeld = $_POST[‘telefon’];
$faxFeld = $_POST[‘fax’];
$nachrichtFeld = $_POST[‘nachricht’];
$body = <<<EOD
Name: $NameFeld
Strasse: $StrasseFeld
Plz und Ort: $PlzundOrtFeld
Email: $EmailFeld
Telefon: $TelefonFeld
Fax: $FaxFeld
Nachricht: $NachrichtFeld
EOD;
$headers = "From $email\r\n";
$headers .= "Content-type text/html\r\n";
$headers = mail ($webmaster, $emailBetreff, $body, $headers);
/*Antwort*/
echo "Ihre Nachricht wurde erfolgreich versendet!";
?>]
funktioniert tadellos,(dank der Unterstützung hier aus dem Forum) bis auf das Nichtmitversenden der im Kontaktformular erfassten Daten. Was könnte der Fehler sein?
so kommen die Daten an:
From
Content-type text/html
Name:
Strasse:
Plz und Ort:
Email:
Telefon:
Fax:
Nachricht:
das ist der Code des Kontaktformulars:
<form action="/Kontaktform.php" method="post" name="form1">
<p> </p>
<table width="604" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td width="508"><div align="right" class="Stil15">
<label for="Name"><span class="Stil13">Name</span></label>
<span class="Stil13">
<input name="Name" type="text" id="Name" size="30" maxlength="90">
</span> </div></td>
<td width="96"><div align="left"></div></td>
</tr>
<tr>
<td height="22"><div align="right" class="Stil15">
<label for="Strasse"><span class="Stil13">Strasse</span></label>
<input name="Strasse" type="text" id="Strasse" size="30" maxlength="90">
</div></td>
<td><div align="left"></div></td>
</tr>
<tr>
<td><div align="right" class="Stil15">
<label for="Plz und Ort"><span class="Stil13">Plz und Ort</span></label>
<input name="Plz und Ort" type="text" id="Plz und Ort" size="30" maxlength="90">
</div></td>
<td><div align="left"></div></td>
</tr>
<tr>
<td><div align="right" class="Stil14">
<label for="E-mail">E-mail</label>
<input name="E-mail" type="text" id="E-mail" size="30" maxlength="90">
</div></td>
<td><div align="left"></div></td>
</tr>
<tr>
<td><div align="right" class="Stil14">
<label for="Telefon">Telefon</label>
<input name="Telefon" type="text" id="Telefon" size="30" maxlength="90">
</div></td>
<td><div align="left"></div></td>
</tr>
<tr>
<td><div align="right" class="Stil14">
<label for="Fax">Fax</label>
<input name="Fax" type="text" id="Fax" size="30" maxlength="90">
</div></td>
<td><div align="left"></div></td>
</tr>
<tr>
<td><div align="right" class="Stil14">
<label for="Nachricht">Nachricht</label>
<textarea name="Nachricht" id="Nachricht" cols="45" rows="5"></textarea>
</div></td>
<td><label for="label"></label>
<input type="submit" name="Senden" id="label" value="Senden">
<label for="label"></label></td>
</tr>
</table>
</form>
</td>
<td width="1" class="Stil6"></td>
</tr>
<tr>
<td height="38" class="Stil6"><p> </p>
<p> </p></td>
<td colspan="2" bgcolor="#87A2B0" class="Stil11"><!--DWLayoutEmptyCell--> </td>
</tr>
</table></td>
</tr>
</table>
<map name="Map"><area shape >
Du hast
$nameFeld = $_POST[‘name’];
aber
Name: $NameFeld
geschrieben. Das geht natürlich nicht. Du musst bei Variablennamen auf Groß- und Kleinschreibung achten.
und das mit dem [code][/code] hast Du übrigens falsch umgesetzt. Setze [code] vor den Code und [/code] hinter den Code. Dann sieht das wie bei mir oben aus.
« [gelöst] PHP: Grafik hochladen und Qualität ändern | Win XP: Suche Hilfe zum Aufbau eigener Homepage » | ||