Herzlich willkommen im Archiv vom ABAKUS Online Marketing Forum
Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.
Code: Alles auswählen
$Empfaenger = "deine@email.de";
if($_REQUEST['Send'])
{
if(empty($_REQUEST['Name']) || empty($_REQUEST['Straße']) || empty($_REQUEST['Ort']) || empty($_REQUEST['agb']) || empty($_REQUEST['Email']))
{
echo"<p><strong>Fehler!</strong> Bitte gehen Sie <a href=\"javascript:history.back();\"><strong>zurück</strong></a> und füllen Sie alle Felder aus!</p>";
}
else
{
$Mailbetreff = "Der Betreff: ";
$Mailbetreff .= $_REQUEST['Betreff'];
$Trenner = md5(uniqid(time()));
$Header = "From: ".$_REQUEST['Email'];
$Header .= "\n";
$Header .= "MIME-Version: 1.0";
$Header .= "\n";
$Header .= "Content-Type: multipart/mixed; boundary=$Trenner";
$Header .= "\n\n";
$Header .= "This is a multi-part message in MIME format";
$Header .= "\n";
$Header .= "--$Trenner";
$Header .= "\n";
$Header .= "Content-Type: text/plain";
$Header .= "\n";
$Header .= "Content-Transfer-Encoding: 8bit";
$Header .= "\n\n";
$Header .= "Sie haben folgende Nachricht erhalten:";
foreach($_REQUEST as $Formularfeld => $Wert)
{
if($Formularfeld != "Send" && $Formularfeld != "Anhang")
{
$Header .= $Formularfeld.": ".$Wert."\n";
}
}
$Header .= "\nDatum/Zeit: ";
$Header .= date("d.m.Y H:i:s");
$Header .= "\n";
$Header .= "--$Trenner";
$Header .= "\n";
$Header .= "Content-Type: ";
$Header .= $_FILES['Anhang']['type'];
$Header .= "; name=";
$Header .= $_FILES['Anhang']['name'];
$Header .= "\n";
$Header .= "Content-Transfer-Encoding: base64";
$Header .= "\n";
$Header .= "Content-Disposition: attachment; filename=";
$Header .= $_FILES['Anhang']['name'];
$Header .= "\n\n";
$Dateiinhalt = fread(fopen($_FILES['Anhang']['tmp_name'], "r"), $_FILES['Anhang']['size']);
$Header .= chunk_split(base64_encode($Dateiinhalt));
$Header .= "\n";
$Header .= "--$Trenner--";
mail($Empfaenger, $Mailbetreff, "", $Header);
echo"<p>Vielen Dank für Ihre eMail! <br /><br /><a href=\"index.html\">Zurück zur Hauptseite</a><p>";
}
}
Code: Alles auswählen
echo" <h2>Titel</h2>
<p>Text</p>
<fieldset><br /><legend>.....</legend>
<form action="datei.html" enctype="multipart/form-data" method="post">
<label>Name:</label>
<input name="Name" size="20" type="text" class="field" /><br />
<label>eMail:</label>
<input name="Email" size="20" type="text" class="field" /><br />
<label>Straße:</label>
<input name="Straße" size="20" type="text" class="field" /><br />
<label>PLZ/Ort:</label>
<input name="Ort" size="20" type="text" class="field" /><br />
<label>Kategorie:</label>
<select name="Betreff" size="1" class="field"><br /><br />
<label>Ihr Dokument:</label>
<input name="Anhang" size="20" type="file" class="anhang" />
<input type="checkbox" name="agb" value="agb" />
<input name="Send" type="submit" value="Abschicken" class="submit" />
<input name="Reset" type="reset" value="Löschen" class="submit" />
</form></fieldset>
Das ist ein offenes Tor für Spammer, man muss lediglich im Formularfeld 'Email' einen Zeilenumbruch, gefolgt von einer BCC:-Zeile mit den Spamempfängern übermitteln. Im Feld 'Betreff' gilt IIRC zumindest für ältere PHP-Versionen das Gleiche.Michael1967 hat geschrieben:Code: Alles auswählen
$Mailbetreff .= $_REQUEST['Betreff']; $Header = "From: ".$_REQUEST['Email']; mail($Empfaenger, $Mailbetreff, "", $Header);
Code: Alles auswählen
$absender = preg_replace( "/[^a-z0-9 !?:;,.\/_\-=+@#$&\*\(\)]/im", "", $meineemail );
$absender = preg_replace( "/(content-type:|bcc:|cc:|to:|from:)/im", "", $absender );
Nein, du hattest mit einem Kichern gesagt, dass er das anpassen soll. Von einem gravierenden Sicherheitsproblem war nicht die Rede und darauf täte ich auch nicht kichernd hinweisen.Michael1967 hat geschrieben:Jo, hatte ja gesagt
Welches Skript? Auf der von Nullpointer genannten Seite gibt's keines und jenes Perl-Skript, das man über diese Seite erreichen kann, verschickt keine Mails.ProfiSchnell hat geschrieben:Kann mir jemand sagen warum das Script von Selfhtml nicht funktioniert - die Mail kommt an aber ohne Anhang.
Das kann insofern nicht angehen, als dass du nicht den Text „Stored in:“ ausgibst, sondern „Stored in: upload/“:ProfiSchnell hat geschrieben:Upload: AcroRdIF.dll
Type: application/octet-stream
Size: 105.609375 Kb
Stored in: /tmp/phpvxKmaa
n.b.: Der „upload/“-Teil ist ein normaler, fest einprogrammierter Text, der muss in der Ausgabe erscheinen, egal, was in $_FILES passiert oder auch nicht.echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
Dann solltest du dich allerdings nicht mit move_uploaded_file() aufhalten (mit dem Rest schon). Wie man Dateien per mail() verschickt, wurde hier schon ein paar Mal genannt.Eigentlich wollte ich, dass der Server die Datei mit der Mail weiterleitet...kann mir da jemand helfen?