Fix header
[infodrom.org/infocon.infodrom.org] / src / kontaktform.html.wml
1 <define-tag ename whitespace=delete>Sie haben Ihren Namen nicht angegeben.</define-tag>
2 <define-tag email whitespace=delete>Sie haben keine Mail-Adresse angegeben.</define-tag>
3 <define-tag econtent whitespace=delete>Sie haben keine Anfrage geschrieben.</define-tag>
4 <define-tag enomail whitespace=delete>Die angegebene Mail-Adresse ist ungültig.</define-tag>
5 <?
6   $form = true;
7   if ($_SERVER['REQUEST_METHOD'] == 'POST') {
8
9     include_once('/org/zeitungsliste.de/lib/extern/rfc822.php');
10
11     if (isset($_POST['function']) && $_POST['function'] == 'checkmail') {
12       if (isset($_POST['ess']) && !empty($_POST['ess'])) {
13         if (is_valid_email_address($_POST['ess'])) {
14           echo json_encode(true) . "\n";
15           exit;
16         }
17       }
18       echo json_encode(false) . "\n";
19       exit;
20     }
21
22     if (!isset($_POST['name']) || empty($_POST['name']))
23       $error = "<ename>";
24     elseif (!isset($_POST['ess']) || empty($_POST['ess']))
25       $error = "<email>";
26     elseif (!isset($_POST['content']) || empty($_POST['content']))
27       $error = "<econtent>";
28     elseif (!is_valid_email_address($_POST['ess']))
29       $error = "<enomail>";
30     else {
31       $form = false;
32
33       $to = 'joey@infodrom.org';
34       $subject = 'InfoCon Anfrage per Web-Form';
35       $header = array();
36       $header[] = 'From: www-data@infocon.infodrom.org (InfoCon Website)';
37       $header[] = 'MIME-Version: 1.0';
38       $header[] = 'Content-type: text/plain; charset=iso-8859-1';
39       $header[] = 'Content-Disposition: inline';
40       $header[] = 'Content-Transfer-Encoding: 8bit';
41
42 <protect>
43       if (!empty($_POST['subject']))
44         $body = "Subject    : " . $_POST['subject'] . "\n";
45
46       $body .= "Name       : " . $_POST['name'] . "\n"
47         ."E-Mail     : " . $_POST['ess'] . "\n"
48         ."\n"
49         ."Inhalt:\n"
50         . $_POST['content']
51         ."\n";
52
53       $body .= "\n"
54         ."HTTP_USER_AGENT: " . $_SERVER['HTTP_USER_AGENT'] . "\n"
55         ."REMOTE_ADDR    : " . $_SERVER['REMOTE_ADDR'] . "\n";
56 </protect>
57
58       mail($to, $subject, $body, implode("\n", $header));
59     }
60   }
61 ?>
62 #include <infocon.style>
63
64 <page title="So erreichen Sie uns">
65
66 <?
67     if ($form === true) {
68       if (!empty($error))
69         echo('<h3 style="color: red;">Fehler: ' . $error . '</h3>');
70 ?>
71 <h3>Direkt per Web-Formular</h3>
72
73 <style type="text/css">
74 label {
75   display: block;
76   font-weight: bold;
77   font-size: 13px;
78   width: 60px;
79   text-align: left;
80   padding-left: 5px;
81   padding-top: 0px;
82   padding-bottom: 0px;
83   background-color: #557e9b;
84   color: white;
85 }
86 input {
87   display: block;
88   width: 100%;
89   margin-bottom: 10px;
90   border: 1px solid #aaaaaa;
91 }
92 input.button {
93   width: auto;
94   display: inline;
95   font-size: 13px;
96   font-weight: bold;
97   padding: 2px;
98   background-color: #d7d7d7;
99 }
100 input.button:hover {
101   border: 1px solid #9b9b9b;
102   background-color: #bfbfbf;
103 }
104 textarea {
105   width: 100%;
106   margin-top: -0px;
107   margin-bottom: 10px;
108   border: 1px solid #aaaaaa;
109 }
110 div.outer {
111   padding-left: 5%;
112   padding-right: 5%;
113 }
114 div.inner {
115   background: #bbddff;
116   background: #d6d8d9;
117   border: 1px solid #aaaaaa;
118   padding: 20px;
119 }
120 </style>
121
122 <script style="text/javascript">
123 function info(bug)
124 {
125   window.alert (bug + "\nBitte bachten Sie, daß wir nur Anfragen bearbeiten können, die\n"+
126   "zumindest einen Namen, eine Mail-Adresse und natürlich eine\n"+
127   "Anfrage beinhalten.");
128
129   return false;
130 }
131
132 function check_email(email)
133 {
134   var request = false;
135   var formdata = '';
136
137   if (window.XMLHttpRequest)
138     request = new XMLHttpRequest();
139   else if (window.ActiveXObject)
140     request = new ActiveXObject('Microsoft.XMLHTTP');
141
142   if (!request)
143     return false;
144
145   if (!email.length)
146     return false;
147
148   request.open ('POST', 'kontaktform.html', false);
149
150   formdata = 'function=checkmail&email=' + encodeURIComponent(email);
151
152   request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
153
154   request.send(formdata);
155
156   return eval(request.responseText);
157 }
158
159 function check()
160 {
161   var form = document.forms[0];
162
163   if (!form.name.value.length)
164     return info("<ename>");
165
166   if (!form.ess.value.length)
167     return info("<email>");
168
169   if (!form.content.value.length)
170     return info("<econtent>");
171
172   if (!check_email(form.ess.value))
173     return info("<enomail>");
174
175   return true;
176 }
177 </script>
178
179 <div style="padding-top: 5px;"></div>
180
181 <div class=outer>
182 <div class=inner>
183 <p style="margin-top: -5px;">Kontaktieren Sie uns direkt im Formular,
184 wir melden uns anschließend bei Ihnen.  Bitte bachten Sie, daß wir nur
185 Anfragen bearbeiten können, die zumindest einen Namen, eine
186 Mail-Adresse beinhalten.</p>
187
188 <form method="POST" action="kontaktform.html" onsubmit="return check()">
189
190 <label for="name">Name</label>
191 <input type="text" size="48" maxlength="100" id="name" name="name" value="<?=$_POST['name']?>"><br class=none>
192
193 <label for="ess">E-Mail</label>
194 <input type="text" size="48" maxlength="100" id="ess" name="ess" value="<?=$_POST['ess']?>"><br class=none>
195
196 <label for="subject">Betreff</label>
197 <input type="text" size="48" maxlength="100" id="subject" name="subject" value="<?=$_POST['subject']?>"><br class=none>
198
199 <label for="content">Anfrage</label><textarea name=content id=content rows=7><?=$_POST['content']?></textarea><br class=none>
200
201 <div align="center" style="margin-bottom: -30px;">
202 <input type="submit" class=button value="Abschicken"> &nbsp; <input type="reset" class=button value="Verwerfen">
203 </div>
204 </form>
205 </div>
206 </div>
207
208 <? } else { ?>
209 <p>Vielen Dank für Ihre Anfrage, wir werden uns umgehend bei Ihnen melden.</p>
210 <? } ?>
211
212 <p></p>
213 </page>