Hi Leute, habe nen Newsletter Script in PHP. Die Ausgabe erfolgt bei ä ö u nicht in diesen Buchstaben sondern so: was mache ich falsch. Ich poste noch den PHP Code
Sie haben sich soeben erfolgreich f�r den Newsletter von angemeldet, bitte best�tigen
PHP-Code:
<meta http-equiv="Content-type: text/html; charset=UTF-8">
<?php
/* Set internal character encoding to UTF-8 */
mb_internal_encoding("UTF-8");
?>
<?php
############ der absolute Pfad zum Script-Verzeichnis ############
$script_pfad = '.'; #Bsp.: /home/sitename.de/html/newsletter
##################################################################
#error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);
mb_internal_encoding('UTF-8');
ignore_user_abort(true);
clearstatcache();
if(file_exists($script_pfad . "/protected/variablen.php")) {include($script_pfad . "/protected/variablen.php"); }
if(file_exists($script_pfad . "/protected/kategorien.php")) {include($script_pfad . "/protected/kategorien.php"); }
if(file_exists($script_pfad . "/protected/data/betreffs.php")){include($script_pfad . "/protected/data/betreffs.php");}
if(file_exists($script_pfad . "/protected/subs.php")) {include($script_pfad . "/protected/subs.php");}
$in = init_cgi(); #param init
$in["ses"] = (!isset($in["ses"])) ? '' : $in["ses"];
if($in["ac"] == "eintragen" && $in["ses"] == "") {eintragen($in);}
elseif($in["ac"] == "eintragen" && $in["ses"] != "") {eintragen2($in);}
elseif($in["ac"] == "austragen" && $in["ses"] == "") {austragen($in);}
elseif($in["ac"] == "austragen" && $in["ses"] != "") {austragen2($in);}
else {
Interf();
}
function Interf() {
global $script_url, $cat, $catView, $formCss, $catHide;
global $formTxt1, $formTxt2, $formTxt3, $formTxt4, $formTxt5;
$selection = '';
if(!isset($catView)) $catView = 'selectbox';
if(!isset($formCss)) $formCss = 0;
if(!isset($catHide)) $catHide = 0;
if(!isset($formTxt1)) $formTxt1 = "Ihre E-Mail Adresse:";
if(!isset($formTxt2)) $formTxt2 = "welche News möchten Sie erhalten?";
if(!isset($formTxt3)) $formTxt3 = "Anfordern";
if(!isset($formTxt4)) $formTxt4 = "Abmelden";
if(!isset($formTxt5)) $formTxt5 = "Senden";
if(sizeof($cat) <= 1 && $catHide == '1'){
$formTxt2 = '';
$selection = '<input type="hidden" name="cat" value="'.key($cat).'">';
}else{
switch($catView){
case 'selectbox':
$selection = '<select name="cat">';
for($x=0;$x<sizeof($cat);$x++) {
$selection .= '<option value="'.key($cat).'">'.current($cat).'</option>'."\n";
next($cat);
}
$selection .= '</select>';
break;
case 'checkbox':
for($x=0;$x<sizeof($cat);$x++) {
$selection .= '<input type="checkbox" name="cat[]" value="'.key($cat).'" /> '.current($cat).'<br>';
next($cat);
}
break;
case 'radiobox':
for($x=0;$x<sizeof($cat);$x++) {
$selection .= '<input type="radio" name="cat" value="'.key($cat).'" /> '.current($cat).'<br>';
next($cat);
}
break;
case 'multiselectbox':
$selection = '<select name="cat[]" size="4" multiple="multiple">';
for($x=0;$x<sizeof($cat);$x++) {
$selection .= '<option value="'.key($cat).'">'.current($cat).'</option>'."\n";
next($cat);
}
$selection .= '</select>';
break;
}
}
if($formCss == 0){
print '
<style type="text/css">
#G5NSLForm{border-top: 1px solid grey; background:url(images/nltop1.jpg) left top no-repeat; border-left: 1px solid grey; border-right: 1px solid grey; border-bottom: 1px solid grey; -moz-border-radius: 5px; border-radius: 5px;}
#G5NSLFormR1, #G5NSLFormR3 {font-size: 12px; text-align: center; }
#G5NSLFormR2 input { width: 100%; }
#G5NSLFormR4 { font-size: 12px; }
#G5NSLFormR4 select { width: 100%; }
#G5NSLFormR5 { font-size: 12px; }
#G5NSLFormR6 { text-align: center; }
</style>
';
}
print '
<table width="165" id="G5NSLForm">
<form name="G5NSLForm" method="POST" action="'.$script_url.'/newsletter.php">
<tr id="G5NSLFormR1"><td>'.$formTxt1.'<br><br></td></tr>
<tr id="G5NSLFormR2"><td><input type="text" name="email" value="E-Mail Adresse" size="20"></td></tr>
<tr id="G5NSLFormR3"><td>'.$formTxt2.'</td></tr>
<tr id="G5NSLFormR4"><td>'.$selection.'</td></tr>
<tr id="G5NSLFormR5"><td nowrap>
<input type="radio" name="ac" value="eintragen" checked> '.$formTxt3.' <input type="radio" name="ac" value="austragen"> '.$formTxt4.'
</td></tr>
<tr id="G5NSLFormR6"><td><input alt="" img="" src="images/nlanfordern1.jpg" align="top" height="28" type="image" width="28" name="btn" value="'.$formTxt5.'"></td></tr>
</form>
</table>
';
}
################################################################################
function eintragen($in){
global $script_url, $script_pfad, $cat, $betreff, $sender, $sender_name, $redirect_anm1, $redirect_anm3;
global $formTxt17, $formTxt18;
if(!isset($formTxt17)) $formTxt17 ="Bitte geben Sie eine gültige E-Mail Adresse ein!";
if(!isset($formTxt18)) $formTxt18 ="Bitte wählen Sie eine Kategorie aus!";
$time=time();
$in['email'] = (!isset($in['email'])) ? '' : $in['email'];
$in['cat'] = (!isset($in['cat'])) ? array() : $in['cat'];
$in['cat'] = (!is_array($in['cat'])) ? array($in['cat']) : $in['cat'];
if($in['email'] == '') fehler($formTxt17);
if(!is_valid_email($in['email'])) fehler($formTxt17);
$catFailedCount=0;
for($x=0;$x<count($in['cat']);$x++) {
$catKey = $in['cat'][$x];
if($cat[$catKey] == ''){
$catFailedCount++;
}
}
if($catFailedCount == count($in['cat'])){
fehler($formTxt18);
}
$catString = '';
$newCat=array();
for($x=0;$x<count($in['cat']);$x++) {
$catKey = $in['cat'][$x];
if(!IsAddressInCat($catKey,$in['email'])){
array_push($newCat, $catKey);
$catString .= $cat[$catKey]."\n";
}
}
if(count($newCat) == 0){
if($redirect_anm3 != ''){
header("Location: $redirect_anm3");
}else{
redirect_anm3();
}
}else{
//anmeldung (schritt 1) in eine temp-datei speichern
$file = "$script_pfad/protected/data/ses/$time";
store($file, $in["email"]."|".implode(';', $newCat));
if(!file_exists($file)) fehler("Fehler beim Speichern einer Datei!<br>Line ".__LINE__."<br><br>Evtl. wurden die Rechte auf das Verzeichnis $script_pfad/protected/data/ses/ falsch gesetzt!");
//email template lesen
$inhalt = saGetFileContent("$script_pfad/protected/data/anmeldebestaetigung.txt");
$inhalt = join("", $inhalt);
//mail versenden
$bestaetigungslink="$script_url/newsletter.php?ac=eintragen&ses=$time";
global $mailformat, $mail_header, $mail_footer;
$mailformat = "text";
$mail_header = "";
$mail_footer = "";
$inhalt = str_replace("<!--bestaetigungslink-->", $bestaetigungslink, $inhalt);
$inhalt = str_replace("<!--email-->", $in["email"], $inhalt);
$inhalt = str_replace("<!--cat-->", $catString, $inhalt);
$res = sendmail($in["email"], $betreff["anmeldebestaetigung"], $inhalt);
if(!$res){
fehler("Fehler beim Versenden der E-Mail");
exit;
}
//umleitung auf die bestätigungsseite
if($redirect_anm1 != ''){
header("Location: $redirect_anm1");
}else{
redirect_anm1();
}
}
exit;
}
################################################################################
function eintragen2($in){
global $script_url, $script_pfad, $cat, $flock, $betreff, $sender, $sender_name, $redirect_anm2, $redirect_anm3, $adminNotifyAtSignin;
global $mailformat, $mail_header, $mail_footer;
global $formTxt18;
if(!isset($formTxt18)) $formTxt18 ="Bitte wählen Sie eine Kategorie aus!";
if(!file_exists("$script_pfad/protected/data/ses/".$in['ses'])) fehler("Anmeldung ungültig oder bereits aktiviert!");
$ses_zeile=file("$script_pfad/protected/data/ses/".$in['ses']);
list($in['email'], $in['cat'])=explode("|", $ses_zeile[0]);
$in['cat']=explode(';', trim($in['cat']));
$catFailedCount=0;
for($x=0;$x<count($in['cat']);$x++) {
$catKey = $in['cat'][$x];
if($cat[$catKey] == ''){
$catFailedCount++;
}
}
if($catFailedCount==count($in['cat'])){
fehler($formTxt18);
}
$newCat=array();
for($x=0;$x<count($in['cat']);$x++) {
$catKey = $in['cat'][$x];
if(!IsAddressInCat($catKey,$in['email'])){
array_push($newCat, $catKey);
}
}
if(count($newCat) == 0){
if($redirect_anm3 != ''){
header("Location: $redirect_anm3");
}else{
redirect_anm3();
}
}else{
//speicherung der benutzerdaten
$catString = "";
for($x=0;$x<count($newCat);$x++) {
$catKey = $newCat[$x];
$catString .= $cat[$catKey]."\n";
$file = "$script_pfad/protected/abonnenten/".$catKey.".txt";
store($file,$in['email']."\n","a+");
if(!file_exists($file)) fehler("Fehler beim Speichern der Benutzerdaten!<br>Line ".__LINE__."<br><br>Evtl. wurden die Rechte auf das Verzeichnis $script_pfad/protected/abonnenten/ falsch gesetzt!");
}
//mail template laden
$inhalt = saGetFileContent("$script_pfad/protected/data/angemeldet.txt");
$inhalt = join("", $inhalt);
//mail versenden
$mailformat = "text";
$mail_header="";
$mail_footer="";
$inhalt = str_replace("<!--email-->", $in["email"], $inhalt);
$inhalt = str_replace("<!--cat-->", $catString, $inhalt);
$res = sendmail($in["email"], $betreff["angemeldet"], $inhalt);
if(!$res){
fehler("Fehler beim Versenden der E-Mail");
exit;
}
if($adminNotifyAtSignin == "1"){
if(isset($betreff["admAngemeldet"])){
$inhalt = saGetFileContent("$script_pfad/protected/data/admAngemeldet.txt");
$inhalt = join("", $inhalt);
}else{
$betreff["admAngemeldet"] = "Neuer Abonnent angemeldet";
$inhalt = "Ein neuer Abonnent hat sich angemeldet:\n\nE-Mail: <!--email-->\nKategorie:<!--cat-->\n\n\n\n\n\nDen Text dieser Nachricht können Sie unter 'E-Mail Templates' anpassen!";
}
$mailformat = "text";
$mail_header="";
$mail_footer="";
$inhalt = str_replace("<!--email-->", $in["email"], $inhalt);
$inhalt = str_replace("<!--cat-->", $catString, $inhalt);
$res = sendmail($sender, $betreff["admAngemeldet"], $inhalt);
if(!$res){
fehler("Fehler beim Versenden der E-Mail");
exit;
}
}
//temp-datei löschen
$file = "$script_pfad/protected/data/ses/".$in['ses'];
@unlink($file);
if(file_exists($file)) fehler("Fehler beim Löschen einer Datei!<br>Line ".__LINE__."<br><br>Evtl. wurden die Rechte auf das Verzeichnis $script_pfad/protected/data/ses/ falsch gesetzt!");
//umleiten auf die bestätigungsseite
if($redirect_anm2 != ''){
header("Location: $redirect_anm2");
}else{
redirect_anm2();
}
}
exit;
}
################################################################################
function austragen($in){
global $script_url, $script_pfad, $cat, $flock, $betreff, $sender, $sender_name, $redirect_abm1,$redirect_abm3;
global $formTxt17, $formTxt18;
if(!isset($formTxt17)) $formTxt17 ="Bitte geben Sie eine gültige E-Mail Adresse ein!";
if(!isset($formTxt18)) $formTxt18 ="Bitte wählen Sie eine Kategorie aus!";
$time=time();
$in['email'] = (!isset($in['email'])) ? '' : $in['email'];
$in['cat'] = (!isset($in['cat'])) ? array() : $in['cat'];
$in['cat'] = (!is_array($in['cat'])) ? array($in['cat']) : $in['cat'];
if($in['email'] == '') fehler($formTxt17);
if(!is_valid_email($in['email'])) fehler($formTxt17);
$catFailedCount=0;
for($x=0;$x<count($in['cat']);$x++) {
$catKey = $in['cat'][$x];
if($cat[$catKey] == ''){
$catFailedCount++;
}
}
if($catFailedCount == count($in['cat'])){
fehler($formTxt18);
}
$catString = '';
$newCat=array();
for($x=0;$x<count($in['cat']);$x++) {
$catKey = $in['cat'][$x];
if(IsAddressInCat($catKey,$in['email'])){
array_push($newCat, $catKey);
$catString .= $cat[$catKey]."\n";
}
}
if(count($newCat) == 0){
if($redirect_abm3 != ''){
header("Location: $redirect_abm3");
}else{
redirect_abm3();
}
}else{
//austragung (schritt 1) in eine tmp-datei speichern
$file = "$script_pfad/protected/data/ses/$time";
store($file, $in["email"]."|".implode(';', $newCat));
if(!file_exists($file)) fehler("Fehler beim Speichern einer Datei!<br>Line ".__LINE__."<br><br>Evtl. wurden die Rechte auf das Verzeichnis $script_pfad/protected/data/ses/ falsch gesetzt!");
//mail template lesen
$inhalt = saGetFileContent("$script_pfad/protected/data/abmeldebestaetigung.txt");
$inhalt = join("", $inhalt);
//mail versenden
$bestaetigungslink="$script_url/newsletter.php?ac=austragen&ses=$time";
global $mailformat, $mail_header, $mail_footer;
$mailformat = "text";
$mail_header="";
$mail_footer="";
$inhalt = str_replace("<!--bestaetigungslink-->", $bestaetigungslink, $inhalt);
$inhalt = str_replace("<!--email-->", $in["email"], $inhalt);
$inhalt = str_replace("<!--cat-->", $catString, $inhalt);
$res = sendmail($in["email"], $betreff["abmeldebestaetigung"], $inhalt);
if(!$res){
fehler("Fehler beim Versenden der E-Mail");
exit;
}
//umleitung auf die bestätigungsseite
if($redirect_abm1 != ''){
header("Location: $redirect_abm1");
}else{
redirect_abm1();
}
}
exit;
}
################################################################################
function austragen2($in){
global $script_url, $script_pfad, $cat, $flock, $betreff, $sender, $sender_name, $redirect_abm2, $redirect_abm3, $adminNotifyAtSignout;
global $mailformat, $mail_header, $mail_footer;
global $formTxt18;
if(!isset($formTxt18)) $formTxt18 ="Bitte wählen Sie eine Kategorie aus!";
if(!file_exists("$script_pfad/protected/data/ses/".$in['ses'])) fehler("Anmeldung ungültig oder bereits aktiviert!");
$ses_zeile=file("$script_pfad/protected/data/ses/".$in['ses']);
list($in['email'], $in['cat'])=explode("|", $ses_zeile[0]);
$in['cat']=explode(';', trim($in['cat']));
$catFailedCount=0;
for($x=0;$x<count($in['cat']);$x++) {
$catKey = $in['cat'][$x];
if($cat[$catKey] == ''){
$catFailedCount++;
}
}
if($catFailedCount==count($in['cat'])){
fehler($formTxt18);
}
$newCat=array();
for($x=0;$x<count($in['cat']);$x++) {
$catKey = $in['cat'][$x];
if(IsAddressInCat($catKey,$in['email'])){
array_push($newCat, $catKey);
}
}
if(count($newCat) == 0){
if($redirect_abm3 != ''){
header("Location: $redirect_abm3");
}else{
redirect_abm3();
}
}else{
$catString = "";
for($x=0;$x<count($newCat);$x++) {
$catKey = $newCat[$x];
$catString .= $cat[$catKey]."\n";
$adressen = saEMailAddress($catKey);
$new_addr=array();
for($i=0; $i < count($adressen); $i++){
$addr = $adressen[$i];
if(strtolower($in['email']) != $addr){
array_push($new_addr, $addr);
}
}
//neuen abonnenten in die entsprechende cat-datei speichern
$file = "$script_pfad/protected/abonnenten/".$catKey.".txt";
store($file, join("\n",$new_addr)."\n");
if(!file_exists($file)) fehler("Fehler beim Speichern der Benutzerdaten!<br>Evtl. wurden die Rechte auf das Verzeichnis $script_pfad/protected/abonnenten/ falsch gesetzt!");
}
//email template laden
$inhalt = saGetFileContent("$script_pfad/protected/data/abgemeldet.txt");
$inhalt = join("", $inhalt);
//mail senden
$mailformat = "text";
$mail_header="";
$mail_footer="";
$header="";
$inhalt = str_replace("<!--email-->", $in["email"], $inhalt);
$inhalt = str_replace("<!--cat-->", $catString, $inhalt);
$res = sendmail($in["email"], $betreff["abgemeldet"], $inhalt, $header);
if(!$res){
fehler("Fehler beim Versenden der E-Mail");
exit;
}
if($adminNotifyAtSignout == "1"){
if(isset($betreff["admAbgemeldet"])){
$inhalt = saGetFileContent("$script_pfad/protected/data/admAbgemeldet.txt");
$inhalt = join("", $inhalt);
}else{
$betreff["admAbgemeldet"] = "Abonnent abgemeldet";
$inhalt = "Ein Abonnent hat sich abgemeldet:\n\nE-Mail: <!--email-->\nKategorie:<!--cat-->\n\n\n\n\n\nDen Text dieser Nachricht können Sie unter 'E-Mail Templates' anpassen!";
}
$mailformat = "text";
$mail_header="";
$mail_footer="";
$inhalt = str_replace("<!--email-->", $in["email"], $inhalt);
$inhalt = str_replace("<!--cat-->", $catString, $inhalt);
$res = sendmail($sender, $betreff["admAbgemeldet"], $inhalt);
if(!$res){
fehler("Fehler beim Versenden der E-Mail");
exit;
}
}
//temp datei löschen
$file = "$script_pfad/protected/data/ses/".$in['ses'];
@unlink($file);
if(file_exists($file)) fehler("Fehler beim Löschen einer Datei!<br>Evtl. wurden die Rechte auf das Verzeichnis $script_pfad/protected/data/ses/ falsch gesetzt!");
//umleiten auf die bestätigungsseite
if($redirect_abm2 != ''){
header("Location: $redirect_abm2");
}else{
redirect_abm2();
}
}
exit;
}
################################################################################
function is_valid_email($email_address) {
$regex = '/^([._a-z0-9-]+[._a-z0-9-]*)@(([a-z0-9-]+\.)*([a-z0-9-]+)(\.[a-z]{2,4}))$/i';
return preg_match($regex,$email_address);
}
function redirect_anm1(){
global $formTxt11;
if(!isset($formTxt11)) $formTxt11 ="Vielen Dank für Ihre Anmeldung!<br>Sie erhalten in wenigen Sekunden eine E-Mail in der Sie einen Link finden,<br>bitte klicken Sie auf den Link um Ihre Anmeldung zu bestätigen!";
print $formTxt11;
print '<br>';
print wtrmrk();
exit;
}
function redirect_anm2(){
global $formTxt12;
if(!isset($formTxt12)) $formTxt12 ="Vielen Dank für Ihre Anmeldung!<br>Sie sind nun in unserem Newsletter System eingetragen!";
print $formTxt12;
print '<br>';
print wtrmrk();
exit;
}
function redirect_anm3(){
global $formTxt13;
if(!isset($formTxt13)) $formTxt13 ="Ihre E-Mail Adresse ist bereits in unserem Newsletter System eingetragen!";
print $formTxt13;
print '<br>';
print wtrmrk();
exit;
}
function redirect_abm1(){
global $formTxt14;
if(!isset($formTxt14)) $formTxt14 ="Wir bedauern Ihre Abmeldung sehr.<br>Sie erhalten in wenigen Sekunden eine E-Mail in der Sie einen Link finden,<br>bitte klicken Sie auf den Link um Ihre Abmeldung zu bestätigen!";
print $formTxt14;
print '<br>';
print wtrmrk();
exit;
}
function redirect_abm2(){
global $formTxt15;
if(!isset($formTxt15)) $formTxt15 ="Sie sind nun aus unserem Newsletter System ausgetragen!";
print $formTxt15;
print '<br>';
print wtrmrk();
exit;
}
function redirect_abm3(){
global $formTxt16;
if(!isset($formTxt16)) $formTxt16 ="Sie sind bereits aus unserem Newsletter System ausgetragen!";
print $formTxt16;
print '<br>';
print wtrmrk();
exit;
}
function fehler($msg){
print $msg;
print wtrmrk();
exit;
}
?>