--- /dev/null
+#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();">
+
+<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: