![]() |
Re: [PHP] Email senden
Und wie mache ich das? Ich glaube, das übersteigt etwas meine PHP Kenntnisse.
|
Re: [PHP] Email senden
Ach so. Sorry.
"\n" in einem String repräsentiert einen Zeilenumbruch. Subject wird ja mehr oder weniger ein String sein und dann könntest Du zum Beispiel mit $subject = string_replace( "\n", '', $_POST['subject'] ); solches Zeug rausfiltern. Man kann den Spieß auch herumdrehen und über einen regulären Ausdruck alles rausnehmen, was nicht in Ordnung ist: $subject = preg_replace( "[^a-zA-Z0-9 ]", '', $_POST['subject'] ); Das würde alles rauslöschen, was kein Buchstabe, Zahl oder Leerzeichen ist. |
Re: [PHP] Email senden
Hallo Daniel,
gut dass bald Wochenende ist, oder? :zwinker: Zitat:
Du kannst aber auch den Titel ablehnen wenn \n oder \r im Subject vorkommen; dies kann mit ![]() Zitat:
Code:
Greetz
$subject = preg_replace('#[^a-zA-Z0-9 ]#i', '', $_POST['subject']);
alcaeus |
Re: [PHP] Email senden
Ah, besten Dank. Mit diesen Replace-Funktionen habe ich schon mal gekämpft. Ich werde es einbauen.
|
Re: [PHP] Email senden
Ach Andreas,
nu' lass' doch dem Michael auch noch was zum Knobeln. :mrgreen: |
Re: [PHP] Email senden
Ich hätte esd ann jetzt so:
Code:
$headers = "MIME-Version: 1.0\n".
"Content-Type: text/plain; charset=iso-8859-1\n". "From: \"".$_POST['yourname']."\" <".$_POST['from'].">\n". "To: ".TO." <".TO.">\n". "Date: ".date("r")."\n"; $subject = preg_replace('#[^a-zA-Z0-9 ]#i', '', $_POST['subject']); $msg = "Name : ".$_POST['yourname']."\n". "E-Mail : ".$_POST['from']."\n". "Betreff : ".$subject."\n\n".$text; $msg = stripslashes($msg); |
Re: [PHP] Email senden
Das, was Du jetzt mit der Subject-Zeile gemacht hast, solltest Du auch noch mit den anderen Daten (from und yourname) machen, weil dort das gleiche Problem existiert.
|
Re: [PHP] Email senden
OK. An was man alles denken muss. :?
|
Re: [PHP] Email senden
Der vollständigkeit halber:
Code:
Halt, stopp. Jetzt wird ja auch in der Adresse (from) das @ und der Punkt rausgefiltert. Das darf natürlich nicht sein. Desweiteren wird die Absendeadresse ja hier:
$headers = "MIME-Version: 1.0\n".
"Content-Type: text/plain; charset=iso-8859-1\n". "From: \"".$_POST['yourname']."\" <".$_POST['from'].">\n". "To: ".TO." <".TO.">\n". "Date: ".date("r")."\n"; $name = preg_replace('#[^a-zA-Z0-9 ]#i', '', $_POST['yourname']); $from = preg_replace('#[^a-zA-Z0-9 ]#i', '', $_POST['from']); $subject = preg_replace('#[^a-zA-Z0-9 ]#i', '', $_POST['subject']); $msg = "Name : ".$name."\n". "E-Mail : ".$from."\n". "Betreff : ".$subject."\n\n".$text; $msg = stripslashes($msg);
Code:
if ((empty($from) || empty($text)) || (!validate_email($_POST['from'])))
{ echo " Bitte füllen Sie mindestens die Felder 'E-Mail Adresse' und 'Text' aus und überprüfen Sie ihre E-Mail Adresse auf Gültigkeit.</p>"; } else if (!mail($to, $_POST['subject'], $msg, $headers)) { echo ' Es ist ein Fehler beim Senden der E-Mail aufgetreten.</p>'; } else { echo ' Die E-Mail wurde erfolgreich gesendet.</p>'; }
Code:
überprüft.
function validate_email($email)
{ // Create the syntactical validation regular expression $regexp = "^([_a-z0-9-]+)(\.[_a-z0-9-]+)*@([a-z0-9-]+)(\.[a-z0-9-]+)*(\.[a-z]{2,4})$"; // Presume that the email is invalid $valid = 0; // Validate the syntax if (eregi($regexp, $email)) { list($username,$domaintld) = split("@",$email); // Validate the domain if (getmxrr($domaintld,$mxrecords)) $valid = 1; } else { $valid = 0; } return $valid; } |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:11 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz