Files
bm/public_html/public/php/newsletter.php
2025-09-24 13:26:28 +02:00

153 lines
4.3 KiB
PHP

<?php
/** form for subscribing to/unsubscribing from the newsletter
* @version 1.0.0
* @date 2008-01-14
* @author Martin Lenzelbauer
*/
require_once(ROOT."include/db.inc.php");
//require_once(ROOT."cms/modules/ticketcustomer.class.php");
/** predefined entry point for the PHP script
* @return page content
*/
//-------------------------------
function doPhpScript(){
//-------------------------------
if(isset($_POST['submit'])){
if(isValid()){
process();
return printSuccess();
}
return printForm();
}
return printForm();
}
/** checks if the entered form data is valid
* @return true, if the data is valid
*/
//----------------------------------
function isValid(){
//----------------------------------
global $errors;
$errors = array();
if($_POST['action'] == "subscribe"){
if(empty($_POST['firstname'])){
$errors[] = "Bitte geben Sie Ihren Vornamen an!";
}
if(empty($_POST['surname'])){
$errors[] = "Bitte geben Sie Ihren Nachnamen an!";
}
if(empty($_POST['email'])){
$errors[] = "Bitte geben Sie Ihre E-Mail Adresse an!";
}
}
return sizeof($errors) == 0;
}
/** prints the form
* @return string
*/
//----------------------------------------
function printForm(){
//----------------------------------------
global $errors;
$t = new Template(TEMPLATE_DIR."subparts/newsletter.html");
$t->removeBlock("SUCCESS");
$t->setVar("ACTION", getCurrentUrl());
if(sizeof($errors) > 0){
$e = "<strong>FEHLER:</strong><ul>";
foreach($errors as $i){
$e .= "<li>$i</li>";
}
$e .= "</ul>";
$t->setVar("ERRORS", $e);
}
else{
$t->setVar("ERRORS", "&nbsp;");
}
if(isset($_GET['email'])){
$_POST['email'] = urldecode($_GET['email']);
$_POST['action'] = "unsubscribe";
}
$t->setVar("FIRSTNAME", $_POST['firstname']);
$t->setVar("SURNAME", $_POST['surname']);
$t->setVar("EMAIL", $_POST['email']);
if($_POST['action'] == "unsubscribe"){
$t->setVar("UNSUBSCRIBE", "selected=\"selected\"");
$t->setVar("SUBSCRIBE", "");
}
else{
$t->setVar("UNSUBSCRIBE", "");
$t->setVar("SUBSCRIBE", "selected=\"selected\"");
}
return $t->toString();
}
/** prints the success view
* @return string
*/
//------------------------------------------
function printSuccess(){
//------------------------------------------
$t = new Template(TEMPLATE_DIR."subparts/newsletter.html");
$t->removeBlock("FORM");
if($_POST['action'] == "subscribe"){
$t->removeBlock("UNSUBSCRIBE");
}
else{
$t->removeBlock("SUBSCRIBE");
}
return $t->toString();
}
/** processes the form
*/
//------------------------------------------
function process(){
//------------------------------------------
// subscribe to newsletter
if($_POST['action'] == "subscribe"){
$query = sprintf("SELECT id,newsletter FROM bruckm_ticketcustomer WHERE email = %s LIMIT 1",
sqlstring($_POST['email']));
$result = dbQuery($query);
if($line = mysqli_fetch_array($result)){
if($line['newsletter'] == "no"){
$query = sprintf("UPDATE bruckm_ticketcustomer SET newsletter = 'true' WHERE id = %d",
sqlnum($line['id']));
dbQuery($query);
}
}
else{
$query = sprintf("INSERT INTO bruckm_ticketcustomer (firstname, surname, email, creationDate) VALUES (%s, %s, %s, NOW())",
sqlstring($_POST['firstname']),
sqlstring($_POST['surname']),
sqlstring($_POST['email']));
dbQuery($query);
}
// send subscribtion e-mail
$to = $_POST['email'];
$subject = "Anmeldung zum Newsletter | Kulturhaus Bruckmühle";
$msg = "Sehr geehrte(r) $_POST[firstname] $_POST[surname],\n\n";
$msg .= "Ihre E-Mail Adresse $_POST[email] wurde soeben erfolgreich für den Newsletter der Bruckmühle Pregarten angemeldet!\n";
$msg .= "Sie können den Newsletter jederzeit unter der URL http://www.bruckmuehle.at/?id=820&email=" . urlencode($_POST['email']) ." wieder abmelden.\n\n";
$msg .= "Kulturhaus Bruckmühle Pregarten\n";
$msg .= "Bahnhofstraße 12\n";
$msg .= "4230 Pregarten";
$headers = "From: kulturhaus@bruckmuehle.at\r\n";
$headers .= "Content-Type: text/plain; charset=\"utf-8\"\r\n";
@mail($to, $subject, $msg, $headers);
}
// unsubscribe from newsletter
else{
$query = sprintf("UPDATE bruckm_ticketcustomer SET newsletter = 'false' WHERE email = %s",
sqlstring($_POST['email']));
dbQuery($query);
}
}
?>