<?php  
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #  
# 
#   Newsletter Script 
# 
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # 

# # # # # # # # #  #  KONFIGURATION  # # # # # # # # # # # # # # # # 
$adminname="xxxxx"; // Benutzername für den Login 
$adminpw="xxxxx"; // Passwort für den Login 
$adminmail="infos@alle.de";  // Ihre Email Adresse für den Emai-Versand - idealerweise webmaster@deine-domain.de 
$stehenlassen=172800; // 48 std in sekunden - Zeit in der die Anmeldungen und Löschungen bestätigt werden müssen 
$db="newsletter.txt"; // CHMOD 777 hier werden die Benuzterdaten gespeichert.. 
$eintrage_pro_seite="50"; // wieviele angemeldete Benutzer sollen im Admin-Bereich / Seite eingeblendet werden..  Blätterfunktion... 
# # # # # # # # #  KONFIGURATION ENDE  # # # # # # # # # # # # # # # 


session_start(); 
$zeit=time (); 
$nichtmehrgueltig=$zeit-$stehenlassen; 
$nl=chr(13).chr(10); 
$action=$_GET['action']; 
$xdb='PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PHA+PGEgaHJlZj0iaHR0cDovL3d3dy53ZWJkZXNpZ24ucnVkb21hemluLmRlLyIgdGFyZ2V0PSJfYmxhbmsiPlNjcmlwdCB2b24gREVSVVMgV2ViZGVzaWduPC9hPjwvcD4='; 

if($action=="logout"){ // Admin logout 
    session_unset ("logedin"); 
    session_destroy(); 
    header("Location: http://".$_SERVER['HTTP_HOST']); 
} elseif($action=="login"){ // Admin login 
    $name = $_POST['name']; 
    $pw = $_POST['pw']; 
    if($name==$adminname && $pw==$adminpw){ 
        ini_set("session.use_cookies", "0"); 
        $_SESSION["logedin"] = true; 
        header("Location: http://".$_SERVER['HTTP_HOST'].$_SERVER['SCRIPT_NAME']."?action=admin"); 
    } else { 
        header("Location: http://".$_SERVER['HTTP_HOST']); 
    } 
} 

#include("../../../inc/header.php"); // hier evtl den header einbinden 

// nicht rechtzeitig bestätigte Anmeldungen löschen und nicht rechtzeitig bestätigte Löschungen auf "normal" setzen 
$alter_inhalt=file($db); 
$output=fopen($db, "w"); 
if ($output){ 
    flock($output,2); 
    foreach($alter_inhalt as $zeile){ 
        $inhalt=explode("|",$zeile); 
        if($inhalt[5]=="" || ($inhalt[5]>$nichtmehrgueltig && $inhalt[3]=="rein") || ($inhalt[5]>$nichtmehrgueltig && $inhalt[3]=="raus")){ 
            fputs($output, $zeile); 
        } elseif ($inhalt[5]<$nichtmehrgueltig && $inhalt[3]=="raus"){ 
            $zeile=$inhalt[0]."|".$inhalt[1]."|".$inhalt[2]."|".$inhalt[3]."||||".$nl; 
            fputs($output, $zeile); 
        } 
    } 
    flock($output,3); 
    fclose($output); 
} else { 
    echo "<p>Datei konnte nicht zum Schreiben geöffnet werden, bitte ändern Sie die Zugriffsrechte!</p>"; 
} 

if($action=="rein"){  // Anmeldung 
    $email=$_GET['email']; 
    $vname=$_GET['vname']; 
    $name=$_GET['name']; 
    if(empty($email) || empty($vname) || empty($name)) { 
        echo "<p>Bitte Namen, Vornamen und eine Email-Adresse angeben!</p>"; 
        echo '<form action="#" method="get">  
                    <table width="100%" cellpadding="3" cellspacing="1"> 
                        <tr><td width="140" align="right">Nachname:</td><td align="left"><input type="text" name="name" value="'.$name.'" style="width:100%;" /></td></tr> 
                        <tr><td align="right">Vorname:</td><td align="left"><input type="text" name="vname" value="'.$vname.'" style="width:100%" /></td></tr> 
                        <tr><td align="right">E-Mail:</td><td align="left"><input type="text" name="email" value="'.$email.'" style="width:100%" /></td></tr> 
                        <tr><td>&nbsp;</td><td>anmelden: <input type="radio" name="action" value="rein" checked="checked" /> abmelden: <input type="radio" name="action" value="raus" /></td></tr> 
                        <tr><td>&nbsp;</td><td align="left"><input type="submit" name="submit" value="absenden" style="width:100%" /></td></tr> 
                    </table> 
                </form>'; 
    } else { 
        $inhalt = file($db); 
        foreach($inhalt as $zeile){ 
            $inhalt=explode("|",$zeile); 
            if($inhalt[0]==$email) $err=true; 
        } 
        if(isset($err)){ 
            echo "<p>Die Email Adresse $email befindet sich bereit im Verteiler</p>"; 
        } else { 
            $output = fopen($db,"a"); 
            if ($output){ 
                flock($output,2); 
                srand(microtime()*1000000); 
                $code=rand(10000,99999); 
                fputs ($output, "$email|$vname|$name|rein|$code|$zeit|$nl"); 
                flock($output,3); 
                fclose($output); 
                mail($email,"Newsletter Anmeldung ".$_SERVER['HTTP_HOST'],"Hallo $vname $name, \n\nIhre Email Adresse $email wurde von Ihnen oder jemandem Fremden in unserem Newsletter-Verteiler unter ".$_SERVER['HTTP_HOST']." eingetragen. \n\nWenn Sie die Aufnahme wirklich wünschen, müssen Sie diesen Link anklicken http://".$_SERVER['HTTP_HOST'].$_SERVER['SCRIPT_NAME']."?action=reinconfirm&code=$code .\n\nSollten Sie sich doch umentschieden haben, oder es liegt ein Irrtum vor, ignorieren Sie einfach diese Email, der Eintrag wird ohne das dieser bestätigt wurde nach 48 Stunden automatisch gelöscht. \n\nmfg Admin von ".$_SERVER['HTTP_HOST'],"From: $adminmail"); 
                echo "<p>Vielen Dank, $vname $name für Ihre Anmeldung.<br />Ihre Email $email wurde im Verteiler zur Aufnahme vorgemerkt.</p><p>Sie werden in Kürze eine Email mit einem Bestätigungslink erhalten. Erst nach dem Sie diesen angeklickt hast, wird Ihre Email Adresse vollständig in den Verteiler augenommen.</p><p>Dieser Link sollte binnen 48 Stunden angeklickt werden, sonst wird Ihre Newsletter-Anmeldung automatisch gelöscht.</p>"; 
            } 
        } 
    } 
} elseif($action=="raus") { // Abmeldung 
    $email=$_GET['email']; 
    if(!empty($email)){ 
        $inhalt = file($db); 
        foreach($inhalt as $zeile){ 
            $inhalt=explode("|",$zeile); 
            if($inhalt[0]==$email) $err=true; 
        } 
        if(!isset($err)){ 
            echo "<p>Die Email Adresse $email befindet sich nicht im Verteiler</p>"; 
        } else { 
            $alter_inhalt=file($db); 
            $output=fopen($db, "w"); 
            if($output){ 
                flock($output,2); 
                srand(microtime()*1000000); 
                $code=rand(10000,99999); 
                foreach($alter_inhalt as $zeile){ 
                    $inhalt=explode("|",$zeile); 
                    if($inhalt[0]==$email){ 
                        $zeile=$inhalt[0]."|".$inhalt[1]."|".$inhalt[2]."|raus|".$code."|".$zeit."|".$nl; 
                        mail($inhalt[0],"Newsletter Abmeldung ".$_SERVER['HTTP_HOST'],"Hallo $vname $name, \n\ndu oder jemand Fremde hat Ihre Email Adresse ".$inhalt[0]." zum löschen aus unserem Newsletter-Verteiler unter ".$_SERVER['HTTP_HOST']." vorgemerkt. \n\nWenn Sie die Abmeldung wirklich wünschen, müssen Sie diesen Link anklicken http://".$_SERVER['HTTP_HOST'].$_SERVER['SCRIPT_NAME']."?action=rausconfirm&code=$code .\n\nSollten Sie sich doch umentschieden haben, oder es liegt ein Irrtum vor, ignorieren Sie einfach diese Email. \n\nmfg Admin von ".$_SERVER['HTTP_HOST']."","From: $adminmail"); 
                        echo "<p>Halo $inhalt[1] $inhalt[2].<br />Ihre Email $email wurde zum löschen aus dem Verteiler vorgemerkt.</p><p>Sie werden in Kürze eine Email mit einem Bestätigungslink erhalten. Erst wenn Sie diesen angeklickt haben, wird Ihre Email Adresse vollständig aus dem Verteiler gelöscht.</p>"; 
                    } 
                    fputs($output, $zeile); 
                } 
                flock($output,3); 
                fclose($output); 
            } 
        } 
    }  
} elseif($action=="reinconfirm"){ // Anmeldung Bestätigung 
    $code=$_GET['code']; 
    if(!empty($code)){ 
        $alter_inhalt=file($db); 
        $output=fopen($db,"w"); 
        if($output){ 
            flock($output,2); 
            foreach($alter_inhalt as $zeile){ 
                $inhalt=explode("|",$zeile); 
                if($inhalt[3]=="rein" && $inhalt[4]==$code){ 
                    $zeile=$inhalt[0]."|".$inhalt[1]."|".$inhalt[2]."||||".$nl; 
                    echo "<p>Ihre Newsletter Anmeldung wurde bestätigt. Sie werden nun unsere Newsletter empfangen!</p>"; 
                }  
                fputs($output, $zeile); 
            } 
            flock($output,3); 
            fclose($output); 
        } 
    }  
} elseif($action=="rausconfirm"){ // Abmeldung Bestätigung 
    $code=$_GET['code']; 
    if(!empty($code)){ 
        $alter_inhalt=file($db); 
        $output=fopen($db,"w"); 
        if($output){ 
            flock($output,2); 
            foreach($alter_inhalt as $zeile){ 
                $inhalt=explode("|",$zeile); 
                if($inhalt[3]=="raus" && $inhalt[4]==$code){ 
                    echo "<p>Ihre Newsletter Abmeldung wurde bestätigt. Sie werden nun keine Newsletter mehr empfangen!</p>"; 
                } else { 
                    fputs($output, $zeile); 
                } 
            } 
            flock($output,3); 
            fclose($output); 
        } 
    }  
} elseif($action=="admin"){ // Admin eingeloggt 
    if($_SESSION["logedin"] == true) { 
        $alter_inhalt=file($db); 
        $eintraege=count($alter_inhalt); 
        (!isset($_GET['page'])) ? $seite="1" : $seite=$_GET['page']; 
        $seiten=$eintraege/$eintrage_pro_seite;              //Anzahl der Seiten errechnen 
        $abeintrag = $seite * $eintrage_pro_seite - $eintrage_pro_seite; 
        echo '<p>Sie sind eingeloggt!</p><p><a href="'.$_SERVER['SCRIPT_NAME'].'?action=schreiben">Neuen Newsletter versenden</a> | <a href="'.$_SERVER['SCRIPT_NAME'].'?action=logout">ausloggen</a></p>'; 
        echo '<p>Folgende Newsletter Empfänger sind angemeldet:</p><p class=\"date\">Seite: '; 
        for($ass = 1; $ass-1< $seiten; $ass++){              //Ausgabe der Linkliste 
            echo '<a href="?action=admin&page='.$ass.'">'; 
            ($ass==$seite)? $ss="<b>$ass</b>": $ss=$ass; 
            echo $ss."</a> "; 
        } 
        echo '</p><table width="100%" cellpadding="3" cellspacing="1" style="background-color:#F0F0F0">'; 
        for($i=$abeintrag; $i<$eintrage_pro_seite+$abeintrag; $i++){ 
            $farbe = ($i % 2) ? "FFFFFF" : "F9F9F9"; 
            if(strlen($alter_inhalt[$i]) >0){ 
                $inhalt=explode("|",$alter_inhalt[$i]); 
                echo '<tr style="background-color:#'.$farbe.'"><td>'.$inhalt[1].'</td><td>'.$inhalt[2].'</td><td>'.$inhalt[0].'</td><td><a href="'.$_SERVER['SCRIPT_NAME'].'?action=delete&email='.$inhalt[0].'">löschen</a></td></tr>'; 
            } 
        } 
        echo '</table><p>Insgesamt sind '.$eintraege.' Newsletter Empfänger angemeldet.</p>'; 
    } 
} elseif($action=="schreiben"){ // Email verfassen 
    if($_SESSION["logedin"] == true) { 
        echo '<p>Schrebe Xname und Xvname da wo die Namen und Vornamen der Benutzer eingesetzt werden sollen.</p> 
        <form action="?action=senden" method="post">  
                    <table width="100%" cellpadding="3" cellspacing="1"> 
                        <tr><td width="140" align="right">Betreff:</td><td align="left"><input type="text" name="betreff" value="" style="width:100%;" /></td></tr> 
                        <tr><td align="right" valign="top">Text:</td><td align="left"><textarea rows="20"  style="width:100%" name="mailtext"></textarea></td></tr> 
                        <tr><td>&nbsp;</td><td align="left"><input type="submit" name="submit" class="button" value="Newsletter versenden" style="width:100%" /></td></tr> 
                    </table> 
                </form>'; 
    } 
} elseif($action=="senden"){ // Email versenden 
    if($_SESSION["logedin"] == true) { 
        $betreff=stripcslashes($_POST['betreff']); 
        $mailtext=stripcslashes($_POST['mailtext']); 
        echo "<p>Der Newsletter wurde an folgende Emai Adressen versendet:<br />"; 
        $alter_inhalt=file($db); 
        foreach($alter_inhalt as $zeile){ 
            $inhalt=explode("|",$zeile); 
            if($inhalt[3]!='rein' && $inhalt[3]!='raus'){  
                $mailtext=str_replace("Xname",$inhalt[1],$mailtext); 
                $mailtext=str_replace("Xvname",$inhalt[2],$mailtext); 
                mail($inhalt[0],$betreff,$mailtext,"From: $adminmail"); 
                echo $inhalt[0]."<br />"; 
            } 
        } 
        echo "</p>"; 
    } 
} elseif($action=="delete"){ // Empfänger löschen 
    if($_SESSION["logedin"] == true) { 
        $email=$_GET['email']; 
        $alter_inhalt=file($db); 
        $output=fopen($db,"w"); 
        if($output){ 
            flock($output,2); 
            foreach($alter_inhalt as $zeile){ 
                $inhalt=explode("|",$zeile); 
                if($inhalt[0]!=$email){ 
                    fputs($output, $zeile); 
                } else { 
                    echo "<p>Der Empfänger $email wurde gelöscht.</p>"; 
                } 
            } 
            flock($output,3); 
            fclose($output); 
        } 
    } 
} elseif($action=="loginform"){ // login Formular 
    echo '<form action="?action=login" method="post">  
                <table width="100%" cellpadding="3" cellspacing="1"> 
                    <tr><td width="140" align="right">Admin:</td><td align="left"><input type="text" name="name" value="" style="width:100%;" /></td></tr> 
                    <tr><td align="right">Passwort:</td><td align="left"><input type="password" name="pw" value="" style="width:100%" /></td></tr> 
                    <tr><td>&nbsp;</td><td align="left"><input type="submit" name="submit" class="button" value="einloggen" style="width:100%" /></td></tr> 
                </table> 
            </form>'; 
} elseif(!isset($action)){ 
    echo '<form action="#" method="get">  
            <table width="100%" cellpadding="3" cellspacing="1"> 
                <tr><td width="140" align="right">Nachname:</td><td align="left"><input type="text" name="name" value="" style="width:100%;" /></td></tr> 
                <tr><td align="right">Vorname:</td><td align="left"><input type="text" name="vname" value="" style="width:100%" /></td></tr> 
                <tr><td align="right">E-Mail:</td><td align="left"><input type="text" name="email" value="" style="width:100%" /></td></tr> 
                <tr><td>&nbsp;</td><td>anmelden: <input type="radio" name="action" value="rein" checked="checked" /> abmelden: <input type="radio" name="action" value="raus" /></td></tr> 
                <tr><td>&nbsp;</td><td align="left"><input type="submit" name="submit" class="button" value="absenden" style="width:100%" /></td></tr> 
            </table> 
        </form>'; 

} 

#include("../../../inc/footer.php"); // hier evtl den footer einbinden 

?>