1a9cb96f83ce00a9816c39a4465a2c37cfb465a2
[infodrom.org/oldenburg.linux.de] / src / Infos / einladungen.wml
1 #include <LUGO.style>
2
3 <?
4 define('TEXT_SUBSCRIBE', 'Sie werden in Kürze eine Mail von der Liste erhalten, die Sie beantworten müssen.
5 Erst dann werden Sie tatsächlich auf der Mailing-Liste angemeldet.
6 Dieser Mechanismus schützt Sie davor, daß jemand Fremdes einfach Ihre Adresse auf der Liste anmelden kann.');
7 define('TEXT_UNSUBSCRIBE', 'Sie werden sofort aus der Liste ausgetragen.
8 Wir würden uns freuen, wenn Sie weiterhin Freie Software und GNU/Linux verwenden und
9 andere bei der Nutzung unterstützen.
10 Der Linux-Stammtisch in Oldenburg steht natürlich auch weiterhin für Sie offen.');
11 define('ERROR_NO_NAME','Sie haben keinen Namen angegeben,\nbitte holen Sie das nach.');
12 define('ERROR_NO_MAIL','Sie haben keine Mail-Adresse angegeben,\nbitte holen Sie das nach.');
13 define('ERROR_MAIL_INVALID','Sie haben keine gültige Mail-Adresse angegeben,\nbitte holen Sie das nach.');
14 ######################################################################################
15 #                                                                                    #
16 # RFC822 Email Parser                                                                #
17 # http://code.iamcal.com/php/rfc822/rfc822.phps                                      #
18 #                                                                                    #
19 # By Cal Henderson <cal@iamcal.com>                                                  #
20 # This code is licensed under a Creative Commons Attribution-ShareAlike 2.5 License  #
21 # http://creativecommons.org/licenses/by-sa/2.5/                                     #
22 #                                                                                    #
23 # Revision 2                                                                         #
24 #                                                                                    #
25 ######################################################################################
26
27
28 function is_valid_email_address($email){
29     $qtext = '[^\\x0d\\x22\\x5c\\x80-\\xff]';
30     $dtext = '[^\\x0d\\x5b-\\x5d\\x80-\\xff]';
31     $char = '[^\\x00-\\x20\\x22\\x28\\x29\\x2c\\x2e\\x3a-\\x3c'.
32               '\\x3e\\x40\\x5b-\\x5d\\x7f-\\xff]';
33     $atom = "$char+";
34
35           $quoted_pair = '\\x5c[\\x00-\\x7f]';
36           $domain_literal = "\\x5b($dtext|$quoted_pair)*\\x5d";
37           $quoted_string = "\\x22($qtext|$quoted_pair)*\\x22";
38           $domain_ref = $atom;
39           $top_domain = "[a-zA-Z]{2,10}";
40           $sub_domain = "($domain_ref|$domain_literal)";
41           $word = "($atom|$quoted_string)";
42           $domain = "$sub_domain(\\x2e$sub_domain)*\\x2e$top_domain";
43           $local_part = "$word(\\x2e$word)*";
44           $addr_spec = "$local_part\\x40$domain";
45           return preg_match("!^$addr_spec$!", $email) ? 1 : 0;
46       }
47 ?>
48 <page name="Mailing-Liste mit Einladungen">
49
50 <h3>Einladungen per Mail</h3>
51
52 <protect>
53 <?
54   $display = true;
55   $error = '';
56   $email = '';
57   $name = '';
58
59   if ($_SERVER['REQUEST_METHOD'] == 'POST') {
60     if (isset($_POST['dasteil']))
61       $email = $_POST['dasteil'];
62     if (isset($_POST['dername']))
63       $name = $_POST['dername'];
64
65     if (empty($name))
66       $error = ERROR_NO_NAME;
67     elseif (empty($email))
68       $error = ERROR_NO_MAIL;
69     elseif (!is_valid_email_address($email))
70       $error = ERROR_MAIL_INVALID;
71     else {
72       $to = 'linux-stammtisch-einladungen-request@lists.infodrom.org';
73       if (isset($_POST['subscribe']))
74         $subject = 'subscribe';
75       else
76         $subject = 'unsubscribe';
77
78       $body = "Request by <http://" . $_SERVER["SERVER_NAME"] . "/>\n\n";
79       $body .= "URL      : " . (isset($_SERVER["SCRIPT_URI"])?$_SERVER["SCRIPT_URI"]:$_SERVER["HTTP_REFERER"]) . "\n";
80       $body .= "Remote   : " . $_SERVER["REMOTE_ADDR"] . "\n";
81       $body .= "UserAgent: " . $_SERVER["HTTP_USER_AGENT"] . "\n";
82
83       $from = 'From: ' . mb_encode_mimeheader($name) . " <" . $email . ">";
84
85       mail($to, $subject, $body, $from);
86
87       $display = false;
88     }
89   }
90
91   if ($display) {
92 ?>
93 </protect>
94 <p>Die Linux User Group Oldenburg betreibt neben der obigen
95 Mailing-Liste für Diskussionen auch eine moderierte Liste, über die nur
96 Einladungen und Administrativa verschickt werden.  Diese Liste ist
97 insbesondere für weniger versierte Mitglieder gedacht, denen die
98 Diskussionen auf der herkömmlichen Liste zu viel werden.</p>
99
100 <p>Sie können sich bequem über das Formular an- und abmelden.  Nach
101 Abschicken der Anmeldung wird Ihnen eine E-Mail zugestellt, die sie
102 beantworten müssen.  Danach werden Sie auf der Mailing-Liste
103 eingetragen.</p>
104
105 <style type="text/css">
106 input {
107   background-color: #e6e6e6;
108   border: 1px solid #404080;
109 }
110 input {
111   padding-left: 2px;
112   margin-bottom: 5px;
113 }
114 input.button {
115   width: auto;
116   margin-top: 3px;
117 }
118 input.button:hover {
119   border: 1px solid #000000;
120   background-color: #d0d0d0;
121   color: black;
122 }
123 p.alert {
124   background: #d0d0d0;
125   color: #ff0000;
126   font-weight: bold;
127   padding: 5px;
128 }
129 </style>
130
131 <?
132     if (!empty($error))
133       echo('<p class="alert">'.str_replace('\n',' ', $error).'</p>');
134 ?>
135
136 <script language="javascript"><!--
137 function check_form()
138 {
139     var name = document.getElementById('dername');
140     var email = document.getElementById('dasteil');
141
142     if (!name || !email)
143         return false;
144
145     if (name.value.length == 0) {
146         alert('<?=ERROR_NO_NAME?>');
147         return false;
148     }
149
150     if (email.value.length == 0) {
151         alert('<?=ERROR_NO_MAIL?>');
152         return false;
153     }
154
155     return true;
156 }
157 //--></script>
158
159 <form action="einladungen.php" method="POST">
160
161 <b>Ihr Name</b>
162 <br><input type="text" name="dername" id="dername" tabindex="1" value="<?=$name?>" size="40" />
163 <br><b>Mail-Adresse</b>
164 <br><input type="text" name="dasteil" id="dasteil" tabindex="2" value="<?=$email?>" size="40" />
165 <br>
166
167 <input class="button" type="submit" tabindex="3" name="subscribe" value="Anmelden" onclick="return check_form();">
168        &nbsp;&nbsp;&nbsp;&nbsp;
169 <input class="button" type="submit" tabindex="4" name="unsubscribe" value="Abmelden" onclick="return check_form();">
170
171 </form>
172
173 <?
174    } else { /* if ($display) */
175      if (isset($_POST['subscribe']))
176        echo("<p>".TEXT_SUBSCRIBE."</p>");
177      else
178        echo("<p>".TEXT_UNSUBSCRIBE."</p>");
179
180    } /* if ($display) */
181 ?>
182 </page>
183
184 # Local variables:
185 # mode: indented-text
186 # mode: iso-accents
187 # end: