Neu: Subscribe via Webform - aber nur fuer die Liste für Einladungen
authorJoey Schulze <joey@infodrom.org>
Tue, 29 Jul 2008 07:22:50 +0000 (07:22 +0000)
committerJoey Schulze <joey@infodrom.org>
Tue, 29 Jul 2008 07:22:50 +0000 (07:22 +0000)
src/Infos/einladungen.wml [new file with mode: 0644]
src/Infos/index.wml
src/Infos/liste.wml

diff --git a/src/Infos/einladungen.wml b/src/Infos/einladungen.wml
new file mode 100644 (file)
index 0000000..00e0798
--- /dev/null
@@ -0,0 +1,187 @@
+#include <LUGO.style>
+
+<?
+define('TEXT_SUBSCRIBE', 'Sie werden in Kürze eine Mail von der Liste erhalten, die Sie beantworten müssen.
+Erst dann werden Sie tatsächlich auf der Mailing-Liste angemeldet.
+Dieser Mechanismus schützt Sie davor, daß jemand Fremdes einfach Ihre Adresse auf der Liste anmelden kann.');
+define('TEXT_UNSUBSCRIBE', 'Sie werden sofort aus der Liste ausgetragen.
+Wir würden uns freuen, wenn Sie weiterhin Freie Software und GNU/Linux verwenden und
+andere bei der Nutzung unterstützen.
+Der Linux-Stammtisch in Oldenburg steht natürlich auch weiterhin für Sie offen.');
+define('ERROR_NO_NAME','Sie haben keinen Namen angegeben,\nbitte holen Sie das nach.');
+define('ERROR_NO_MAIL','Sie haben keine Mail-Adresse angegeben,\nbitte holen Sie das nach.');
+define('ERROR_MAIL_INVALID','Sie haben keine gültige Mail-Adresse angegeben,\nbitte holen Sie das nach.');
+######################################################################################
+#                                                                                    #
+# RFC822 Email Parser                                                                #
+# http://code.iamcal.com/php/rfc822/rfc822.phps                                      #
+#                                                                                    #
+# By Cal Henderson <cal@iamcal.com>                                                  #
+# This code is licensed under a Creative Commons Attribution-ShareAlike 2.5 License  #
+# http://creativecommons.org/licenses/by-sa/2.5/                                     #
+#                                                                                    #
+# Revision 2                                                                         #
+#                                                                                    #
+######################################################################################
+
+
+function is_valid_email_address($email){
+    $qtext = '[^\\x0d\\x22\\x5c\\x80-\\xff]';
+    $dtext = '[^\\x0d\\x5b-\\x5d\\x80-\\xff]';
+    $char = '[^\\x00-\\x20\\x22\\x28\\x29\\x2c\\x2e\\x3a-\\x3c'.
+              '\\x3e\\x40\\x5b-\\x5d\\x7f-\\xff]';
+    $atom = "$char+";
+
+          $quoted_pair = '\\x5c[\\x00-\\x7f]';
+          $domain_literal = "\\x5b($dtext|$quoted_pair)*\\x5d";
+          $quoted_string = "\\x22($qtext|$quoted_pair)*\\x22";
+          $domain_ref = $atom;
+          $top_domain = "[a-zA-Z]{2,10}";
+          $sub_domain = "($domain_ref|$domain_literal)";
+          $word = "($atom|$quoted_string)";
+          $domain = "$sub_domain(\\x2e$sub_domain)*\\x2e$top_domain";
+          $local_part = "$word(\\x2e$word)*";
+          $addr_spec = "$local_part\\x40$domain";
+          return preg_match("!^$addr_spec$!", $email) ? 1 : 0;
+      }
+?>
+<page name="Mailing-Liste mit Einladungen">
+
+<h3>Einladungen per Mail</h3>
+
+<protect>
+<?
+  $display = true;
+  $error = '';
+  $email = '';
+  $name = '';
+
+  if ($_SERVER['REQUEST_METHOD'] == 'POST') {
+    if (isset($_POST['dasteil']))
+      $email = $_POST['dasteil'];
+    if (isset($_POST['dername']))
+      $name = $_POST['dername'];
+
+    if (empty($name))
+      $error = ERROR_NO_NAME;
+    elseif (empty($email))
+      $error = ERROR_NO_MAIL;
+    elseif (!is_valid_email_address($email))
+      $error = ERROR_MAIL_INVALID;
+    else {
+      $to = 'linux-stammtisch-request@lists.infodrom.org';
+      if (isset($_POST['subscribe']))
+       $subject = 'subscribe';
+      else
+       $subject = 'unsubscribe';
+
+      $body = "Request by <http://" . $_SERVER["SERVER_NAME"] . "/>\n\n";
+      $body .= "URL      : " . (isset($_SERVER["SCRIPT_URI"])?$_SERVER["SCRIPT_URI"]:$_SERVER["HTTP_REFERER"]) . "\n";
+      $body .= "Remote   : " . $_SERVER["REMOTE_ADDR"] . "\n";
+      $body .= "UserAgent: " . $_SERVER["HTTP_USER_AGENT"] . "\n";
+
+      $from = 'From: ' . mb_encode_mimeheader($name) . " <" . $email . ">";
+
+      mail($to, $subject, $body, $from);
+
+      $display = false;
+    }
+  }
+
+  if ($display) {
+?>
+</protect>
+<p>Die Linux User Group Oldenburg betreibt neben der obigen
+Mailing-Liste für Diskussionen auch eine moderierte Liste, über die nur
+Einladungen und Administrativa verschickt werden.  Diese Liste ist
+insbesondere für weniger versierte Mitglieder gedacht, denen die
+Diskussionen auf der herkömmlichen Liste zu viel werden.</p>
+
+<p>Sie können sich bequem über das Formular an- und abmelden.  Nach
+Abschicken der Anmeldung wird Ihnen eine E-Mail zugestellt, die sie
+beantworten müssen.  Danach werden Sie auf der Mailing-Liste
+eingetragen.</p>
+
+<style type="text/css">
+input {
+  background-color: #e6e6e6;
+  border: 1px solid #404080;
+}
+input {
+  padding-left: 2px;
+  margin-bottom: 5px;
+}
+input.button {
+  width: auto;
+  margin-top: 3px;
+}
+input.button:hover {
+  border: 1px solid #000000;
+  background-color: #d0d0d0;
+  color: black;
+}
+p.alert {
+  background: #d0d0d0;
+  color: #ff0000;
+  font-weight: bold;
+  padding: 5px;
+}
+</style>
+
+<?
+    if (!empty($error))
+      echo('<p class="alert">'.str_replace('\n',' ', $error).'</p>');
+?>
+
+<script language="javascript"><!--
+function check_form()
+{
+    var name = document.getElementById('dername');
+    var email = document.getElementById('dasteil');
+
+    if (!name || !email)
+       return false;
+
+    if (name.value.length == 0) {
+       alert('<?=ERROR_NO_NAME?>');
+       return false;
+    }
+
+    if (email.value.length == 0) {
+       alert('<?=ERROR_NO_MAIL?>');
+       return false;
+    }
+
+    return true;
+}
+//--></script>
+
+<form action="einladungen.php" method="POST">
+
+<b>Ihr Name</b>
+<br><input type="text" name="dername" id="dername" tabindex="1" value="<?=$name?>" size="40" />
+<br><b>Mail-Adresse</b>
+<br><input type="text" name="dasteil" id="dasteil" tabindex="2" value="<?=$email?>" size="40" />
+<br>
+
+<input class="button" type="submit" tabindex="3" name="subscribe" value="Anmelden" onclick="return check_form();">
+       &nbsp;&nbsp;&nbsp;&nbsp;
+<input class="button" type="submit" tabindex="4" name="unsubscribe" value="Abmelden" onclick="return check_form();">
+
+</form>
+
+<?
+   } else { /* if ($display) */
+     if (isset($_POST['subscribe']))
+       echo("<p>".TEXT_SUBSCRIBE."</p>");
+     else
+       echo("<p>".TEXT_UNSUBSCRIBE."</p>");
+
+   } /* if ($display) */
+?>
+</page>
+
+# Local variables:
+# mode: indented-text
+# mode: iso-accents
+# end:
index 875308f..c834253 100644 (file)
 0:liste.html:Mailing-Liste
 1:lugs.html:LUGs
 1:linux.html:GNU/Linux
-1:distribs.html:Distributionen
+1:einladungen.php:Einladungen
 2:archs.html:Architekturen
 2:magazine.html:Zeitschriften
+2:distribs.html:Distributionen
 3:spam.html:Spam
 3:myths.html:Mythen
 # 3:eurolugs.html:Euro-LUGs
index 68894d6..bfc74fc 100644 (file)
@@ -55,6 +55,16 @@ damit die Fragen nicht immer wieder gestellt werden.
 Statistik</a> wird dazu von <a href="http://www.infodrom.org/">Infodrom Oldenburg</a> erstellt.</p>
 </center>
 
+<h3>Einladungen per Mail</h3>
+
+<p>Die Linux User Group Oldenburg betreibt neben der obigen
+Mailing-Liste für Diskussionen auch eine moderierte Liste, über die nur
+Einladungen und Administrativa verschickt werden.  Diese Liste ist
+insbesondere für die Mitglieder gedacht, denen die
+Diskussionen auf der herkömmlichen Liste zu viel werden.</p>
+
+<p><a href="einladungen.php">Anmelden bzw. Abmelden</a></p>
+
 </page>
 
 # Local variables: