Sie müssen mindestens einen Empfänger angeben!
Bitte gehen Sie zurück und korrigieren Sie Ihre Eingabe.
');
// Mehr als $maxto Empfänger? Geht auch nicht.
$e = explode(',', $emailto);
if (count($e) > $maxto)
die('Zu viele Empfänger!
Bitte gehen Sie zurück und korrigieren Sie Ihre Eingabe.
');
// Sind alle Mailadressen gültig oder schauen zumindestens so aus?
for ($i = 0; $i < count($e); $i++) {
if (eregi("^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*$", $e[$i]) == FALSE)
die('Ungültige Mailadresse!
Bitte gehen Sie zurück und korrigieren Sie Ihre Eingabe.
');
}
// Absenderadresse gültig?
if (eregi("^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*$", $emailfrom) == FALSE)
die('Sie müssen Ihre E-Mail-Adresse angeben!
Bitte gehen Sie zurück und korrigieren Sie Ihre Eingabe.
');
$aStart = ''; // und das Ende?
// Arrays zum Suchen/ersetzen innerhalb des HTML-Quelltextes.
// Wenn noch HTML-Tags oder Sonderzeichen in Deinen E-Mails vorkommen - hier reinschreiben.
// asciiChars1 = danach wird im Quelltext gesucht
// asciiChars2 = damit wird ersetzt
// Bei Erweiterungen dieser Arrays die Kommata nicht vergessen und die Reihenfolge beachten!
$asciiChars1 = array(
'',
'',
'',
'',
'',
'',
'',
'',
'',
'
',
'—',
'“',
'”',
'‘',
'’',
'&',
'',
'
'
);
$asciiChars2 = array(
'*',
'*',
'-',
'-',
'*',
'*',
'-',
'-',
"nnQuote:n",
"nn",
' -- ',
'"',
'"',
"'",
"'",
'&',
'',
''
);
// Diese Ersetzungen finden erst ganz am Schluß statt, deshalb stehen sie oben in den Arrays nicht mit drin
$lastChars1 = array(
'<',
'>'
);
$lastChars2 = array(
'<',
'>'
);
// Ab in den Parser damit
$text = $entry;
if(!empty($more)){ $text = $entry.'
'.$more; } // nun haben wir einen String mit dem Arzikelquelltext
$articleAscii = "n"; // String mit Neuzeile beginnen, damit der Rückgabewert von strpos() nicht 0 werden kann
$articleAscii .= str_replace($asciiChars1, $asciiChars2, $text); // alle non-ASCII-Zeichen ersetzen
$linkArray = array(); // Fußnoten initialisieren
$linkNum = 1; // Startnummer festlegen
while ($pos = strpos($articleAscii, $aStart)) { // Suche nach Links im Artikeltext
$aQuote = substr($articleAscii, $pos + 8, 1); // welche Art von Anführungszeichen haben wir?
$start = $pos + 9; // Startindex auf den Anfang der URL setzen
$end = strpos($articleAscii, $aQuote, $start); // Ende der URL finden
$linkArray[] = substr($articleAscii, $start, $end - $start); // Hurra - unsere URL. Ab damit ins Linkarray.
$end = strpos($articleAscii, "$aQuote>", $pos) + 2; // Ende eines öffnenden tags finden
$close = strpos($articleAscii, $aEnd, $end); // und den schließenden tag finden
$linkText = substr($articleAscii, $end, $close - $end) . " [$linkNum]"; // Link auslesen und Fußnotenzeichen vorbereiten
$z = substr($articleAscii, $pos, ($close + 4) - $pos); // der vollständige ... tag
$articleAscii = str_replace($z, $linkText, $articleAscii); // ..und der wird mit dem Linktext und dem Fußnotenzeichen ersetzt
$linkNum++; // Fußnotennummer um eins erhöhen und weiter damit
}
$articleAscii = strip_tags($articleAscii); // Nochmal saubermachen im String
$articleAscii = str_replace($lastChars1, $lastChars2, $articleAscii); // < und > ersetzen, damit Codebeispiele o.ä. intakt bleiben
$articleAscii .= "nn"; // neuer Absatz
for ($i = 0; $i < count($linkArray); $i++) { // Fußnoten mit den links hinten an den String anhängen
$n = $i + 1;
$articleAscii .= "[$n] <$linkArray[$i]>n";
}
$ip = $REMOTE_ADDR; // Absender-IP auslesen
$articleURL = $baseURL.'entry.php?id='.$id; // URL der Artikelseite
// E-Mail Nachricht zusammenstellen
$message = "Dieser Artikel wurde Ihnen gesendet von: $emailfromnIP Adresse: $ipnn";
if ($comments)
$message .= "Persoenliche Nachricht:nn" . stripslashes($comments) . "nn";
$message .= "--------------------------------nn";
$message .= "Die Adresse des Originalartikels:n";
$message .= "<$articleURL>nn";
$message .= "Titel: $titlen";
$message .= "Autor: $authorn";
$message .= "Datum/Zeit: $date, $timenn";
if ($commentcount) {
$message .= ($commentcount == 1) ? 'Eine Person hat ' : "$commentcount Personen haben ";
$message .= "diesen Artikel kommentiert.nn";
}
$message .= "--------------------------------n";
$message .= $articleAscii;
$message .= "n--------------------------------n";
$message .= "Powered by EGM Weblogn";
$message .= "http://www.egm.at/weblog/n";
$mailheader = "From:$emailfromn";
$mailheader .= "Reply-To: $emailfromn";
$mailheader .= "BCC: $bccn";
$mailheader .= "X-Mailer: PHP/" . phpversion(). "n";
$mailheader .= "X-Sender-IP: $REMOTE_ADDRn";
// Mail versenden und zurück zum Artikel
mail($emailto, "[Interessanter Artikel]: $title", $message, $mailheader);
Header("Location:entry.php?id=$id");
}
//-----------------------------------------------------------------------------------
// Und falls unser Gast sein Formular noch gar nicht abgesendet hat, sollten wir es ihm zuerst mal anzeigen:
// Header-File laden
include("header.inc.php");
Artikel per E-Mail versenden