debugging = FALSE; $smarty->template_dir = $config["root"].'templates/'.$config["tplpfad"]; $smarty->compile_dir = $config["root"].'templates_c/'; $smarty->config_dir = $config["root"].'configs/'; $smarty->cache_dir = $config["root"].'cache/'; // $kategorien wird mit einem Array aus Kategorien-IDs, aus der config belegt. /* Die $_POST Variable wird überprüft. Nötig um Crossiteskripting zu unterbinden. Hierfür wird jede vom $_POST übergebene Variable mit preg_match überprüft. Sofern diese als ungefährlich angesehen wird, wird sie in eine Variable gespeichert. Falls der Wert falsch ist, wird die Aufgabe "falsche_eingabe" ausgeführt, welche das "normale" Template aufruft mit Fehlermeldungen. Die "richtigen" Einträge bleiben bestehen, die falschen werden nicht angezeigt. */ if ( $_POST ) { if ( preg_match ( "|Newsletter bestellen|" , $_POST["submit"] ) ) { $aufgabe = "senden" ; if ( preg_match ( "|[A-Za-z]{4}|" , $_POST["anrede"] ) ) { $anrede = $_POST["anrede"]; $smarty->assign("anrede" , $anrede ) ; } else { $aufgabe = "falsche_eingabe" ; $smarty->assign("fehleranrede" , true ) ; } if ( preg_match ( "|^[A-Za-zäüöÄÜÖß\.\-\_\ ]+$|" , $_POST["vorname"] ) ) { $vorname = $_POST["vorname"]; $smarty->assign("vorname" , $vorname ) ; } else { $aufgabe = "falsche_eingabe" ; $smarty->assign("fehlervorname" , true ) ; } if ( preg_match ( "|^[A-Za-zäüöÄÜÖß\.\-\_\ ]+$|" , $_POST["nachname"] ) ) { $nachname = $_POST["nachname"]; $smarty->assign("nachname" , $nachname ) ; } else { $aufgabe = "falsche_eingabe" ; $smarty->assign("fehlernachname" , true ) ; } if ( preg_match ( "/^[a-z0-9]+([_\\.-][a-z0-9]+)*@([a-z0-9]+([\.-][a-z0-9]+)*)+\\.[a-z]{2,}$/i" , $_POST["email"] ) ) { $email = $_POST["email"]; $smarty->assign("email" , $email ) ; } else { $aufgabe = "falsche_eingabe" ; $smarty->assign("fehleremail" , true ) ; } if ( preg_match ( "|^[0-9\,]+$|" , $_POST["nl_nummer"] ) ) { $nl_nummer = $_POST["nl_nummer"]; $smarty->assign("nl_nummer" , $nl_nummer ) ; $kategorie = $nl_nummer ; } } if ( preg_match ( "|Newsletter abbestell|" , $_POST["subber"] ) ) { $aufgabe = "abmelden" ; if ( preg_match ( "/^[a-z0-9]+([_\\.-][a-z0-9]+)*@([a-z0-9]+([\.-][a-z0-9]+)*)+\\.[a-z]{2,}$/i" , $_POST["email"] ) ) { $email = $_POST["email"]; $smarty->assign("email" , $email ) ; } if ( preg_match ( "|^[0-9]+$|" , $_POST["nl_nummer"] ) ) { $nl_nummer = $_POST["nl_nummer"]; $smarty->assign("nl_nummer" , $nl_nummer ) ; $kategorie = $nl_nummer ; } } } /* Der Sonderfall, der aktivierung über einen Link, erfordert, dass der $_GET ebenfalls überprüft wird. Hier wird die Seriennummer übergeben und überprüft. */ if ( $_GET ) { if ( preg_match ( "|^[A-Za-z0-9]+$|" , $_GET["serial"] ) ) { $serial = $_GET["serial"]; $aufgabe = "aktivieren" ; } if ( preg_match ( "|^[0-9\,]+$|" , $_GET["kategorien"] ) ) { $kategorie = $_GET["kategorien"]; $aufgabe = "aktivieren" ; } if ( preg_match ( "/^[a-z0-9]+([_\\.-][a-z0-9]+)*@([a-z0-9]+([\.-][a-z0-9]+)*)+\\.[a-z]{2,}$/i" , $_GET["email"] ) ) { $email = $_GET["email"]; $smarty->assign("email" , $email ) ; } if ( preg_match ( "|^[A-Za-z0-9\_]+$|" , $_GET["aufgabe"] ) ) { $aufgabe = $_GET["aufgabe"]; $smarty->assign("aufgabe" , $aufgabe ) ; } if ( preg_match ( "|^[0-9\,]+$|" , $_GET["nl_nummer"] ) ) { $nl_nummer = $_GET["nl_nummer"]; $smarty->assign("nl_nummer" , $nl_nummer ) ; $kategorie = $nl_nummer ; } } $kategorie = $funktionen->kategorie_umwandeln ( $kategorie ) ; // Die Aufgabe, die eingetragen ist, wird ausgeführt. switch ( $aufgabe ) { case "aktivieren" : // Der Accoujnt wird aktiviert, indem die Funktion aktivieren ausgeführt wird. // Gibt diese ein FALSE zurück ( falsche Seriennummer oder Mailaddresse ), wird ein entsprechendes Fehlertemplate aufgerufen. $geht = $funktionen->aktivieren( $serial , $kategorie ) ; if ( $geht == true ) { $url_ursprung = $_SERVER["HTTP_HOST"] ; $art = "erfolg" ; $url = $funktionen->header_holen ( $url_ursprung , $art ) ; header( "Location: ".$url ); } else { $url_ursprung = $_SERVER["HTTP_HOST"] ; $art = "fehler" ; $url = $funktionen->header_holen ( $url_ursprung , $art ) ; header( "Location: ".$url ); } break; case "falsche_eingabe" : // Bei falschen Eingabedaten, wird das Eingabe-template aufgerufen mit entsprechenden Fehlermeldungen. $smarty->display("eingabe.tpl.htm"); break; case "senden" : /* die Daten werden an die Funktion Senden weitergegeben, welche überprüft und bei TRUE die Daten einträgt in die Datenbank. WICHTIG : Die "1" am Ende steht für die ID der Newsletter Kathegorie !!! */ $return = $funktionen->bestaetigung_senden( $anrede , $vorname , $nachname , $email , $kategorie ) ; switch ( $return ) { case "mail_false" : $smarty->display("mail_exist.tpl.htm"); break ; default : $smarty->display("versendet.tpl.htm"); break; } break ; case "abmelden" : $geht = $funktionen->abmelden_testen( $email , $kategorie ) ; if ( $geht == "ok" ) { $url_ursprung = $_SERVER["HTTP_HOST"] ; $art = "abmeldung_erfolg" ; $url = $funktionen->header_holen ( $url_ursprung , $art ) ; $sm_mail = $url["sm_mail"] ; $funktionen->abmelden ( $email , $kategorie , $sm_mail ) ; if ( isset ( $_POST["submit"] ) ) { $smarty->display("abgemeldet.tpl.htm"); } else { header( "Location: ".$url["url"] ); } } if ( $geht == "nicht_aktiv" ) { $smarty->assign("existmail" , true ) ; $smarty->display("mail_abmelden.tpl.htm"); } if ( $geht == "nicht_eingetragen" ) { $smarty->assign("insertedmail" , true ) ; $smarty->display("mail_abmelden.tpl.htm"); } break; case "abmelden_eingabe" : $smarty->display("mail_abmelden.tpl.htm"); break; default : $smarty->display("eingabe.tpl.htm"); break ; } // Link für die Anmeldung: //http://newsletter.anwaltseiten24.de/index.php?nl_nummer=NUMMER DER NEWSLETTER KATEGORIE! , nächste Nummer // Link zur Abmeldungseingabe : //http://newsletter.anwaltseiten24.de/index.php?aufgabe=abmelden_eingabe&nl_nummer=NUMMER DER NEWSLETTER KATEGORIE! , nächste Nummer // Direktabmeldungslink : //http://newsletter.anwaltseiten24.de/index.php?aufgabe=abmelden&email=bernd.koerting@gmx.de&nl_nummer=NUMMER DER NEWSLETTER KATEGORIE! , nächste Nummer // Direkte Anmeldung : //http://newsletter.anwaltseiten24.de/index.php?nl_nummer=1&aufgabe=senden&email=beispiel40@ngi.de ?>