<?php
##############################################################################
# G5-Scripts.de PHP Newsletter Script
# Copyright 2004-2008 G5-Scripts.de webmaster@G5-Scripts.de
# Last Modified                30.04.2008
# G5-Scripts.de                http://www.G5-Scripts.de
# Version                      1.1.2
##############################################################################
# COPYRIGHT Bestimmungen
# Copyright 2004-2008 G5-Scripts.de  All Rights Reserved.
#
# Durch den Download und Benutzung der Software erklärt sich der Benutzer mit
# den AGBs und diesem Lizenzabkommen von G5-Scripts.de einverstanden.
# Diese Software darf frei benutzt werden, solange dieser
# Copyright Hinweis, sowie alle Verweise auf G5-Scripts.de, eingebaut
# innerhalb der Software, erhalten bleibt.
# Die Original-Software unverändert darf weitergegeben, jedoch nicht verkauft
# oder wiederverkauft werden.
# Die angepasste bzw. veränderte Software und Teile dieser dürfen nicht
# weitergegeben, verkauft oder wiederverkauft werden.
#
# Dieses Lizenzabkommen beruht auf der aktuellen internationalen Gesetzeslage.
#
# Bei einem Verstoß gegen dieses Lizenzabkommen macht sich der Benutzer strafbar
# und kann rechtlich verfolgt werden.
#
##############################################################################

############ der absolute Pfad zum Script-Verzeichnis ############
$script_pfad = '.'; #Bsp.: /home/sitename.de/html/newsletter
##################################################################


#error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);

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;
    print '
        <table width="100" border="0" cellspacing="0" cellpadding="0">
        <form name="letter" method="post" action="'.$script_url.'/newsletter.php">
        <tr><td align="center"> <font size="1" face="Arial, Helvetica, sans-serif">E-Mail Adresse: </font><input type="text" name="email" size="20"></td></tr>
        <tr><td align="center"><font size="1" face="Arial, Helvetica, sans-serif">welche News m&ouml;chten Sie erhalten?</font><br>
        <select name="cat">
    ';
    asort($cat);
    for($x=0;$x<sizeof($cat);$x++) {
        print '<option value="'.key($cat).'">'.current($cat).'</option>'."\n";
        next($cat);
    }
    print '
        </select></td></tr>
        <tr><td><font face="Arial, Helvetica, sans-serif" size="1">
        <input type="radio" name="ac" value="eintragen" checked> Eintragen<br>
        <input type="radio" name="ac" value="austragen"> Austragen</font>
        </td></tr>
        <tr><td align="center"><input type="submit" name="btn" value="senden"></td></tr>
        </form>
        </table>
    ';
}
################################################################################
function eintragen($in){
    global $script_url, $script_pfad, $cat, $flock, $betreff, $sender, $sender_name, $redirect_anm1, $redirect_anm3;
    $time=time();

    $in['email']        = (!isset($in['email'])) ? '' : $in['email'];
    $in['cat']          = (!isset($in['cat'])) ? '' : $in['cat'];
    $cat[$in['cat']]    = (!isset($cat[$in['cat']])) ? '' : $cat[$in['cat']];
    if($in['email'] == '')              fehler("Bitte geben Sie eine E-Mail Adresse ein!");
    if(!is_valid_email($in['email']))   fehler("Bitte geben Sie eine g&uuml;ltige E-Mail Adresse ein!");
    if($cat[$in['cat']] == '')          fehler("Bitte w&auml;hlen Sie eine Kategorie aus!");

    if(IsAddressInCat($in['cat'],$in['email'])){
        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/$";
        store($file, $in["email"]."|".$in["cat"]);
        if(!file_exists($file)) fehler("Fehler beim Speichern einer Datei!<br>Line 102<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/anmeledebestaetigung.txt");
        
        //mail versenden
        $bestaetigungslink="$script_url/newsletter.php?ac=eintragen&ses=$time";
        global $mailformat, $mail_header, $mail_footer;
        $mailformat = "text";
        $mail_header="";
        $mail_footer="";
        sendmail($in["email"], $betreff["anmeledebestaetigung"], str_replace("<!--bestaetigungslink-->", $bestaetigungslink, join("", $inhalt)));

        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;

    if(!file_exists("$script_pfad/protected/data/ses/".$in['ses'])) fehler("Anmeldung ung&uuml;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']=trim($in['cat']);
    if($cat[$in['cat']] == '') fehler("Bitte w&auml;hlen Sie eine Kategorie aus!");

    if(IsAddressInCat($in['cat'],$in['email'])){
        if($redirect_anm3 != ''){
            header("Location: $redirect_anm3");
        }else{
            redirect_anm3();
        }
    }else{
        //speicherung der benutzerdaten
        $file = "$script_pfad/protected/abonnenten/".$in['cat'].".txt";
        store($file,$in['email']."\n","a+");
        if(!file_exists($file)) fehler("Fehler beim Speichern der Benutzerdaten!<br>Line 139<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");

        //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 147<br><br>Evtl. wurden die Rechte auf das Verzeichnis $script_pfad/protected/data/ses/ falsch gesetzt!");
        
        //mail versenden
        global $mailformat, $mail_header, $mail_footer;
        $mailformat = "text";
        $mail_header="";
        $mail_footer="";
        sendmail($in["email"], $betreff["angemeldet"], join("", $inhalt));
        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;
    $time=time();

    if($in['email'] == '') fehler("Bitte geben Sie eine E-Mail Adresse ein!");
    if(!is_valid_email($in['email'])) fehler("Bitte geben Sie eine g&uuml;ltige E-Mail Adresse ein!");
    if($cat[$in['cat']] == '') fehler("Bitte w&auml;hlen Sie eine Kategorie aus!");

    if(IsAddressInCat($in['cat'],$in['email'])){
        #print "ist eingetragen!!!!!!! ";
        
        //austragung (schritt 1) in eine tmp-datei speichern
        $file = "$script_pfad/protected/data/ses/$time";
        store($file,$in['email']."|".$in['cat']);
        if(!file_exists($file)) fehler("Fehler beim Speichern einer Datei!<br>Line 168<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");
                
        //mail senden
        $bestaetigungslink="$script_url/newsletter.php?ac=austragen&ses=$time";
        global $mailformat, $mail_header, $mail_footer;
        $mailformat = "text";
        $mail_header="";
        $mail_footer="";
        sendmail($in["email"], $betreff["abmeldebestaetigung"], str_replace("<!--bestaetigungslink-->", $bestaetigungslink,join("", $inhalt)));

        if($redirect_abm1 != ''){
            header("Location: $redirect_abm1");
        }else{
            redirect_abm1();
        }
    }else{
        if($redirect_abm3 != ''){
            header("Location: $redirect_abm3");
        }else{
            redirect_abm3();
        }
    }

    exit;
}
################################################################################
function austragen2($in){
    global $script_url, $script_pfad, $cat, $flock, $betreff, $sender, $sender_name, $redirect_abm2, $redirect_abm3;

    if(!file_exists("$script_pfad/protected/data/ses/".$in['ses'])) fehler("Anmeldung ung&uuml;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']=trim($in['cat']);

    if($cat[$in['cat']] == '') fehler("Bitte w&auml;hlen Sie eine Kategorie aus!");



    if(IsAddressInCat($in['cat'],$in['email'])){
        $adressen = saEMailAddress($in['cat']);
        $new_addr=array();
        for($i=0; $i < count($adressen); $i++){
            $addr = $adressen[$i];
            if($in['email']."\n" != $addr){
                array_push($new_addr, $addr);
            }
        }
        
        //neuen abonnenten in die etsprechende cat-datei speichern
        $file = "$script_pfad/protected/abonnenten/".$in['cat'].".txt";
        store($file,join("",$new_addr));
        if(!file_exists($file)) fehler("Fehler beim Speichern der Benutzerdaten!<br>Line 218<br><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");
        
        //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 226<br><br>Evtl. wurden die Rechte auf das Verzeichnis $script_pfad/protected/data/ses/ falsch gesetzt!");
        
        //mail senden
        global $mailformat, $mail_header, $mail_footer;
        $mailformat = "text";
        $mail_header="";
        $mail_footer="";
        $header="";
        sendmail($in["email"], $betreff["abgemeldet"], join("", $inhalt), $header);

        //bestätigungsseite
        if($redirect_abm2 != ''){
            header("Location: $redirect_abm2");
        }else{
            redirect_abm2();
        }
    }else{
        if($redirect_abm3 != ''){
            header("Location: $redirect_abm3");
        }else{
            redirect_abm3();
        }
    }
    exit;
}
################################################################################
function is_valid_email($email_address) {
    $regex = '^([._a-z0-9-]+[._a-z0-9-]*)@(([a-z0-9-]+\.)*([a-z0-9-]+)(\.[a-z]{2,4}))$';
    return eregi($regex,$email_address);
}

function redirect_anm1(){
    print '
        Vielen Dank f&uuml;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&auml;tigen!<br>
    ';
    print wtrmrk();
    exit;
}

function redirect_anm2(){
    print '
        Vielen Dank f&uuml;r Ihre Anmeldung!<br>
        Sie sind nun in unserem Newsletter System eingetragen!<br>
    ';
    print wtrmrk();
    exit;
}

function redirect_anm3(){
    print '
        Ihre E-Mail Adresse ist bereits in unserem Newsletter System eingetragen!<br>
    ';
    print wtrmrk();
    exit;
}

function redirect_abm1(){
    print '
        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&auml;tigen!<br>
    ';
    print wtrmrk();
    exit;
}

function redirect_abm2(){
    print '
        Sie sind nun aus unserem Newsletter System ausgetragen!<br>
    ';
    print wtrmrk();
    exit;
}

function redirect_abm3(){
    print '
        Sie sind bereits aus unserem Newsletter System ausgetragen!<br>
    ';
    print wtrmrk();
    exit;
}

function fehler($msg){
    print $msg;
    print wtrmrk();
    exit;
}

?>