250 lines
6.4 KiB
PHP
250 lines
6.4 KiB
PHP
<?php
|
|
/** contact form
|
|
* @version 2.0.2
|
|
* @date 2007-06-02
|
|
* @author Martin Lenzelbauer
|
|
*/
|
|
|
|
|
|
/** predefined entry point for the PHP script
|
|
* @return page content
|
|
*/
|
|
//-------------------------------
|
|
function doPhpScript(){
|
|
//-------------------------------
|
|
if(isset($_POST['submit'])){
|
|
if(isValid()){
|
|
if(!isSpam()){
|
|
send();
|
|
saveToDatabase();
|
|
return printSuccess();
|
|
}
|
|
return printSpam();
|
|
}
|
|
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(empty($_POST['firstname'])){
|
|
$errors[] = "Bitte geben Sie Ihren Vornamen an!";
|
|
}
|
|
if(empty($_POST['surname'])){
|
|
$errors[] = "Bitte geben Sie Ihren Nachnamen an!";
|
|
}
|
|
if(empty($_POST['zip'])){
|
|
$errors[] = "Bitte geben Sie Ihre Postleitzahl an!";
|
|
}
|
|
if(empty($_POST['city'])){
|
|
$errors[] = "Bitte geben Sie Ihren Wohnort an!";
|
|
}
|
|
if(empty($_POST['street'])){
|
|
$errors[] = "Bitte geben Sie Ihre Wohnadresse an!";
|
|
}
|
|
return sizeof($errors) == 0;
|
|
}
|
|
|
|
|
|
/** checks if the entered form data is spam
|
|
* @return true, if the data is spam
|
|
*/
|
|
//----------------------------------------
|
|
function isSpam(){
|
|
//----------------------------------------
|
|
// check time
|
|
$time = time();
|
|
if(!isset($_POST['time'])){ // time has been unset by the spambot
|
|
return true;
|
|
}
|
|
if(!is_numeric($_POST['time'])){ // time has been manipulated by the spambot
|
|
return true;
|
|
}
|
|
if($time - $_POST['time'] < 3){ // user needed less than 3 seconds to fill the form -> spam
|
|
return true;
|
|
}
|
|
if($time - $_POST['time'] > 12 * 3600){ // user needed more than 12 hours to fill the form -> spam
|
|
return true;
|
|
}
|
|
// check baits
|
|
if(!empty($_POST['email'])){
|
|
return true;
|
|
}
|
|
if(!empty($_POST['url'])){
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
|
|
/** prints the contact form
|
|
* @return string
|
|
*/
|
|
//----------------------------------------
|
|
function printForm(){
|
|
//----------------------------------------
|
|
global $errors;
|
|
$f = new Template(TEMPLATE_DIR."subparts/contact.html");
|
|
$f->removeBlock("SUCCESS");
|
|
$f->removeBlock("SPAM");
|
|
$f->setVar("ACTION", getCurrentUrl());
|
|
if(sizeof($errors) > 0){
|
|
$e = "<strong>FEHLER:</strong><ul>";
|
|
foreach($errors as $i){
|
|
$e .= "<li>$i</li>";
|
|
}
|
|
$e .= "</ul>";
|
|
$f->setVar("ERRORS", $e);
|
|
}
|
|
else{
|
|
$f->setVar("ERRORS", " ");
|
|
}
|
|
if($_POST['gender'] == "Frau"){
|
|
$f->setVar("GENDER_F", "selected=\"selected\"");
|
|
$f->setVar("GENDER_M", "");
|
|
}
|
|
else{
|
|
$f->setVar("GENDER_M", "selected=\"selected\"");
|
|
$f->setVar("GENDER_F", "");
|
|
}
|
|
if(isset($_POST['info'])){
|
|
$f->setVar("INFO", "checked=\"checked\"");
|
|
}
|
|
else{
|
|
$f->setVar("INFO", "");
|
|
}
|
|
$f->setVar("FIRSTNAME", $_POST['firstname']);
|
|
$f->setVar("SURNAME", $_POST['surname']);
|
|
$f->setVar("STREET", $_POST['street']);
|
|
$f->setVar("ZIP", $_POST['zip']);
|
|
$f->setVar("CITY", $_POST['city']);
|
|
$f->setVar("PHONE", $_POST['phone']);
|
|
$f->setVar("MAIL", $_POST['mail']);
|
|
$f->setVar("TEXT", $_POST['text']);
|
|
$f->setVar("TIME", time());
|
|
|
|
if ($_GET['id'] == 60) {
|
|
$f->setVar("KULTURHAUS_SELECTED", 'selected="selected"');
|
|
$f->setVar("GASTHAUS_SELECTED", '');
|
|
}
|
|
else {
|
|
$f->setVar("GASTHAUS_SELECTED", 'selected="selected"');
|
|
$f->setVar("KULTURHAUS_SELECTED", '');
|
|
}
|
|
|
|
return $f->toString();
|
|
}
|
|
|
|
|
|
/** prints the success view
|
|
* @return string
|
|
*/
|
|
//------------------------------------------
|
|
function printSuccess(){
|
|
//------------------------------------------
|
|
$f = new Template(TEMPLATE_DIR."subparts/contact.html");
|
|
$f->removeBlock("FORM");
|
|
$f->removeBlock("SPAM");
|
|
return $f->toString();
|
|
}
|
|
|
|
|
|
/** prints the spam view
|
|
* @return string
|
|
*/
|
|
//------------------------------------------
|
|
function printSpam(){
|
|
//------------------------------------------
|
|
$f = new Template(TEMPLATE_DIR."subparts/contact.html");
|
|
$f->removeBlock("FORM");
|
|
$f->removeBlock("SUCCESS");
|
|
return $f->toString();
|
|
}
|
|
|
|
|
|
/** sends the form data via e-mail
|
|
*/
|
|
//------------------------------------------
|
|
function send(){
|
|
//------------------------------------------
|
|
$to = "kulturhaus@bruckmuehle.at";
|
|
if(isset($_POST['to'])) {
|
|
$to = $_POST['to'];
|
|
}
|
|
$subject = "Kontaktformular kulturhaus-bruckmuehle.at";
|
|
$headers = "From: kulturhaus@bruckmuehle.at\r\n";
|
|
$headers .= "Content-Type: text/plain; charset=\"utf-8\"\r\n";
|
|
$body = "Folgende Daten wurden im Kontaktformular ausgefüllt:\n\n";
|
|
$body .= "Anrede: $_POST[gender]\n";
|
|
$body .= "Vorname: $_POST[firstname]\n";
|
|
$body .= "Nachname: $_POST[surname]\n";
|
|
$body .= "Straße: $_POST[street]\n";
|
|
$body .= "PLZ: $_POST[zip]\n";
|
|
$body .= "Ort: $_POST[city]\n";
|
|
$body .= "Telefon: $_POST[phone]\n";
|
|
$body .= "E-Mail: $_POST[mail]\n";
|
|
$body .= "Infomaterial: ".yesOrNo($_POST['info'])."\n";
|
|
$body .= "Bemerkungen: " . stripslashes($_POST['text']);
|
|
@mail($to, $subject, $body, $headers);
|
|
#@mail("contact@mlenzelbauer.at", $subject, $body, $headers);
|
|
}
|
|
|
|
|
|
/** saves the customer data to the database
|
|
*/
|
|
//--------------------------------------------
|
|
function saveToDatabase(){
|
|
//--------------------------------------------
|
|
if (empty($_POST['mail'])) {
|
|
return;
|
|
}
|
|
$query = sprintf("SELECT * FROM bruckm_ticketcustomer WHERE email = %s LIMIT 1", sqlstring($_POST['mail']));
|
|
$result = dbQuery($query);
|
|
if (mysql_num_rows($result) > 0) {
|
|
return;
|
|
}
|
|
$gender = "m";
|
|
if ($_POST['gender'] == "Frau") {
|
|
$gender = "f";
|
|
}
|
|
$newsletter = "false";
|
|
if ($_POST['info']) {
|
|
$newsletter = "true";
|
|
}
|
|
$query = sprintf("INSERT INTO bruckm_ticketcustomer (firstname, surname, email, address, zip, city, gender, phone, creationDate, newsletter, info, loose)
|
|
VALUES (%s, %s, %s, %s, %d, %s, %s, %s, NOW(), %s, %s, 'true')",
|
|
sqlstring($_POST['firstname']),
|
|
sqlstring($_POST['surname']),
|
|
sqlstring($_POST['mail']),
|
|
sqlstring($_POST['street']),
|
|
sqlnum($_POST['zip']),
|
|
sqlstring($_POST['city']),
|
|
sqlstring($gender),
|
|
sqlstring($_POST['phone']),
|
|
sqlstring($newsletter),
|
|
sqlstring($newsletter));
|
|
dbQuery($query);
|
|
}
|
|
|
|
/** converts the $_POST value to "ja" or "nein"
|
|
* @param value checkbox value
|
|
* @return "ja" or "nein"
|
|
*/
|
|
//--------------------------------------------
|
|
function yesOrNo($value){
|
|
//--------------------------------------------
|
|
if(isset($value) && !empty($value)){
|
|
return "ja";
|
|
}
|
|
return "nein";
|
|
}
|
|
|
|
?>
|