Provide a web form
authorJoey Schulze <joey@infodrom.org>
Fri, 27 Jun 2008 11:53:27 +0000 (11:53 +0000)
committerJoey Schulze <joey@infodrom.org>
Fri, 27 Jun 2008 11:53:27 +0000 (11:53 +0000)
src/kontakt.wml
src/kontaktform.html.wml [new file with mode: 0644]

index ae08ac9..e49b096 100644 (file)
@@ -23,5 +23,9 @@ Am Zollbaum 7<br>
 
 <p>Fax: 0441/777884</p>
 
+<h3>... per Web-Formular</h3>
+
+<p>Zum <a href="kontaktform.html">Formular</a></p>
+
 <p></p>
 </page>
diff --git a/src/kontaktform.html.wml b/src/kontaktform.html.wml
new file mode 100644 (file)
index 0000000..6be8b77
--- /dev/null
@@ -0,0 +1,213 @@
+<define-tag ename whitespace=delete>Sie haben Ihren Namen nicht angegeben.</define-tag>
+<define-tag email whitespace=delete>Sie haben keine Mail-Adresse angegeben.</define-tag>
+<define-tag econtent whitespace=delete>Sie haben keine Anfrage geschrieben.</define-tag>
+<define-tag enomail whitespace=delete>Die angegebene Mail-Adresse ist ungültig.</define-tag>
+<?
+  $form = true;
+  if ($_SERVER['REQUEST_METHOD'] == 'POST') {
+
+    include_once('/org/zeitungsliste.de/lib/extern/rfc822.php');
+
+    if (isset($_POST['function']) && $_POST['function'] == 'checkmail') {
+      if (isset($_POST['email']) && !empty($_POST['email'])) {
+       if (is_valid_email_address($_POST['email'])) {
+         echo json_encode(true) . "\n";
+         exit;
+       }
+      }
+      echo json_encode(false) . "\n";
+      exit;
+    }
+
+    if (!isset($_POST['name']) || empty($_POST['name']))
+      $error = "<ename>";
+    elseif (!isset($_POST['email']) || empty($_POST['email']))
+      $error = "<email>";
+    elseif (!isset($_POST['content']) || empty($_POST['content']))
+      $error = "<econtent>";
+    elseif (!is_valid_email_address($_POST['email']))
+      $error = "<enomail>";
+    else {
+      $form = false;
+
+      $to = 'joey@infodrom.org';
+      $subject = 'InfoCon Anfrage per Web-Form';
+      $header = array();
+      $header[] = 'From: www-data@infocon.infodrom.org (InfoCon Website)';
+      $header[] = 'MIME-Version: 1.0';
+      $header[] = 'Content-type: text/plain; charset=iso-8859-1';
+      $header[] = 'Content-Disposition: inline';
+      $header[] = 'Content-Transfer-Encoding: 8bit';
+
+<protect>
+      if (!empty($_POST['subject']))
+       $body = "Subject    : " . $_POST['subject'] . "\n";
+
+      $body .= "Name       : " . $_POST['name'] . "\n"
+       ."E-Mail     : " . $_POST['email'] . "\n"
+       ."\n"
+       ."Inhalt:\n"
+       . $_POST['content']
+       ."\n";
+
+      $body .= "\n"
+       ."HTTP_USER_AGENT: " . $_SERVER['HTTP_USER_AGENT'] . "\n"
+       ."REMOTE_ADDR    : " . $_SERVER['REMOTE_ADDR'] . "\n";
+</protect>
+
+      mail($to, $subject, $body, implode("\n", $header));
+    }
+  }
+?>
+#include <infocon.style>
+
+<page title="So erreichen Sie uns">
+
+<?
+    if ($form === true) {
+      if (!empty($error))
+       echo('<h3 style="color: red;">Fehler: ' . $error . '</h3>');
+?>
+<h3>Direkt per Web-Formular</h3>
+
+<style type="text/css">
+label {
+  display: block;
+  font-weight: bold;
+  font-size: 13px;
+  width: 60px;
+  text-align: left;
+  padding-left: 5px;
+  padding-top: 0px;
+  padding-bottom: 0px;
+  background-color: #557e9b;
+  color: white;
+}
+input {
+  display: block;
+  width: 100%;
+  margin-bottom: 10px;
+  border: 1px solid #aaaaaa;
+}
+input.button {
+  width: auto;
+  display: inline;
+  font-size: 13px;
+  font-weight: bold;
+  padding: 2px;
+  background-color: #d7d7d7;
+}
+input.button:hover {
+  border: 1px solid black;
+  background-color: #bfbfbf;
+}
+textarea {
+  width: 100%;
+  margin-top: -2px;
+  margin-bottom: 10px;
+  border: 1px solid #aaaaaa;
+}
+div.outer {
+  padding-left: 5%;
+  padding-right: 5%;
+}
+div.inner {
+  background: #bbddff;
+  background: #d6d8d9;
+  border: 1px solid #aaaaaa;
+  padding: 20px;
+}
+</style>
+
+<script style="text/javascript">
+function info(bug)
+{
+  window.alert (bug + "\nBitte bachten Sie, daß wir nur Anfragen bearbeiten können, die\n"+
+  "zumindest einen Namen, eine Mail-Adresse und natürlich eine\n"+
+  "Anfrage beinhalten.");
+
+  return false;
+}
+
+function check_email(email)
+{
+  var request = false;
+  var formdata = '';
+
+  if (window.XMLHttpRequest)
+    request = new XMLHttpRequest();
+  else if (window.ActiveXObject)
+    request = new ActiveXObject('Microsoft.XMLHTTP');
+
+  if (!request)
+    return false;
+
+  if (!email.length)
+    return false;
+
+  request.open ('POST', 'kontaktform.html', false);
+
+  formdata = 'function=checkmail&email=' + encodeURIComponent(email);
+
+  request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
+
+  request.send(formdata);
+
+  return eval(request.responseText);
+}
+
+function check()
+{
+  var form = document.forms[0];
+
+  if (!form.name.value.length)
+    return info("<ename>");
+
+  if (!form.email.value.length)
+    return info("<email>");
+
+  if (!form.content.value.length)
+    return info("<econtent>");
+
+  if (!check_email(form.email.value))
+    return info("<enomail>");
+
+  return true;
+}
+</script>
+
+<div style="padding-top: 5px;"></div>
+
+<div class=outer>
+<div class=inner>
+<p style="margin-top: -5px;">Kontaktieren Sie uns direkt im Formular,
+wir melden uns anschließend bei Ihnen.  Bitte bachten Sie, daß wir nur
+Anfragen bearbeiten können, die zumindest einen Namen, eine
+Mail-Adresse beinhalten.</p>
+
+<form method="POST" action="kontaktform.html" onsubmit="return check()">
+
+<label for="name">Name</label>
+<input type="text" size="48" maxlength="100" id="name" name="name" value="<?=$_POST['name']?>"><br class=none>
+
+<label for="email">E-Mail</label>
+<input type="text" size="48" maxlength="100" id="email" name="email" value="<?=$_POST['email']?>"><br class=none>
+
+<label for="subject">Betreff</label>
+<input type="text" size="48" maxlength="100" id="subject" name="subject" value="<?=$_POST['subject']?>"><br class=none>
+
+<label for="content">Anfrage</label><textarea name=content id=content rows=7><?=$_POST['content']?></textarea><br class=none>
+
+<div align="center" style="margin-bottom: -30px;">
+<input type="submit" class=button value="Abschicken"> &nbsp; <input type="reset" class=button value="Verwerfen">
+</div>
+</form>
+</div>
+</div>
+
+<? } else { ?>
+<p>Vielen Dank für Ihre Anfrage, wir werden uns umgehend bei Ihnen melden.</p>
+<? } ?>
+
+<p></p>
+</page>