Entities repariert
bernd

bernd commited on 2007-11-02 13:06:25
Zeige 21 geänderte Dateien mit 165 Einfügungen und 49 Löschungen.


git-svn-id: https://svn.schokokeks.org/repos/tools/webinterface/trunk@744 87cf0b9e-d624-0410-a070-f6ee81989793
... ...
@@ -78,7 +78,7 @@ function are_you_sure($query_string, $question)
78 78
       <p class=\"buttons\">
79 79
         <input type=\"hidden\" name=\"random_token\" value=\"{$token}\" />
80 80
         <input type=\"submit\" name=\"really\" value=\"Ja\" />
81
-        &nbsp; &nbsp;
81
+        &#160; &#160;
82 82
         <input type=\"submit\" name=\"not_really\" value=\"Nein\" />
83 83
       </p>
84 84
     </div>");
... ...
@@ -5,7 +5,7 @@ if (! defined ("BOTTOM_INCLUDED"))
5 5
 define("BOTTOM_INCLUDED", true);
6 6
 ?>
7 7
 <div class="foot">
8
-<p>Sollten Sie auf dieser Administrations-Oberfl&auml;che ein Problem entdecken oder Hilfe ben&ouml;tigen, schreiben Sie bitte eine einfache eMail an <a href="mailto:root@schokokeks.org">root@schokokeks.org</a>.</p>
8
+<p>Sollten Sie auf dieser Administrations-Oberfläche ein Problem entdecken oder Hilfe benötigen, schreiben Sie bitte eine einfache eMail an <a href="mailto:root@schokokeks.org">root@schokokeks.org</a>.</p>
9 9
 </div>
10 10
 
11 11
 </div>
... ...
@@ -13,7 +13,7 @@ define("BOTTOM_INCLUDED", true);
13 13
 <?php
14 14
 /*<div id="beta">
15 15
   <h3>Bitte beachten Sie</h3>
16
-  <p>Diese Web-Oberfl&auml;che ist im Probe-Betrieb. Es k&ouml;nnte sein, dass manche Funktionen fehlerhaft arbeiten und dabei Daten zerst&ouml;rt werden. Melden Sie bitte etwaige Fehler umgehend an die Administratoren!</p>
16
+  <p>Diese Web-Oberfläche ist im Probe-Betrieb. Es könnte sein, dass manche Funktionen fehlerhaft arbeiten und dabei Daten zerstört werden. Melden Sie bitte etwaige Fehler umgehend an die Administratoren!</p>
17 17
 </div>
18 18
 */
19 19
 ?>
... ...
@@ -114,7 +114,7 @@ function login_screen($why)
114 114
         echo '<form action="" method="post">
115 115
         <p><span class="login_label">Benutzer<sup>*</sup>:</span> <input type="text" name="username" size="30" /></p>
116 116
         <p><span class="login_label">Passwort:</span> <input type="password" name="password" size="30" /></p>
117
-        <p><span class="login_label">&nbsp;</span> <input type="submit" value="Anmelden" /></p>
117
+        <p><span class="login_label">&#160;</span> <input type="submit" value="Anmelden" /></p>
118 118
         </form>
119 119
         <p><sup>*</sup> Sie können sich hier mit Ihrem System-Benutzernamen, Ihrer System-User-ID oder Ihrer Kundennummer anmelden. Je nach gewählten Daten erhalten Sie unterschiedliche Zugriffsrechte.</p>
120 120
         <p>Sofern Sie für Ihren Kundenaccount noch kein Passwort festgelegt haben oder Ihres vergessen haben, klicken Sie bitte <a href="new_password.php">hier</a></p>
... ...
@@ -41,7 +41,7 @@ DEBUG(print_r($weighted_menuitem, true));
41 41
 
42 42
 
43 43
 /*
44
-$menuitem["index"]["label"] = "&Uuml;bersicht";
44
+$menuitem["index"]["label"] = "Übersicht";
45 45
 $menuitem["index"]["file"] = "index.php";
46 46
 
47 47
 
... ...
@@ -52,7 +52,7 @@ $menuitem["domains"]["file"] = "domains.php";
52 52
 $menuitem["mail"]["label"] = "E-Mail";
53 53
 $menuitem["mail"]["file"] = "mail.php";
54 54
 
55
-$menuitem["chpass"]["label"] = "Passwort &auml;ndern";
55
+$menuitem["chpass"]["label"] = "Passwort ändern";
56 56
 $menuitem["chpass"]["file"] = "chpass.php";
57 57
 
58 58
 
... ...
@@ -18,7 +18,7 @@ $title = "Domainüberblick";
18 18
 output('<h3>Domains</h3>
19 19
 <p>In Ihrem Account werden die folgenden Domains verwaltet:</p>
20 20
 <table>
21
-<tr><th>Domainname</th><th>Reg-Datum</th><th>Kündigungsdatum</th><th>&nbsp;</th></tr>
21
+<tr><th>Domainname</th><th>Reg-Datum</th><th>Kündigungsdatum</th><th>&#160;</th></tr>
22 22
 ');
23 23
 foreach ($user_domains as $domain)
24 24
 {
... ...
@@ -76,10 +76,10 @@ elseif (isset($_GET['action']) && $_GET['action'] == 'create')
76 76
     $options .= '<option value="'.$dom->fqdn.'">'.$dom->fqdn.'</option>';
77 77
 
78 78
   output('<h3>E-Mail-Account anlegen</h3>
79
-<p>Hier k&ouml;nnen Sie ein neues POP3/IMAP-Konto anlegen.</p>
79
+<p>Hier können Sie ein neues POP3/IMAP-Konto anlegen.</p>
80 80
   '.html_form('imap_accounts_create', 'accounts.php', 'action=save', '
81 81
   <table style="margin-bottom: 1em;">
82
-  <tr><th>Einstellung:</th><th>Wert:</th><th>&nbsp;</th></tr>
82
+  <tr><th>Einstellung:</th><th>Wert:</th><th>&#160;</th></tr>
83 83
   <tr>
84 84
     <td>Benutzername:</td>
85 85
     <td><input type="text" id="user" name="user" />@<select name="domain" size="1">
... ...
@@ -112,7 +112,7 @@ elseif (isset($_GET['action']) && $_GET['action'] == 'delete' && $_GET['account'
112 112
     $account = get_mailaccount($_GET['account']);
113 113
     $enabled = ($account['enabled'] ? 'Ja' : 'Nein');
114 114
     are_you_sure("action=delete&amp;account={$_GET['account']}", '
115
-    <p>Soll der folgende Account wirklich gel&ouml;scht werden?</p>
115
+    <p>Soll der folgende Account wirklich gelöscht werden?</p>
116 116
     <table style="margin-bottom: 1em;">
117 117
       <tr><td>Benutzername:</td>
118 118
         <td>'.filter_input_general($account['account']).'</td>
... ...
@@ -143,7 +143,7 @@ elseif (isset($_GET['action']) && $_GET['action'] == 'delete' && $_GET['account'
143 143
 elseif (isset($_GET['edit']))
144 144
 {
145 145
   output('<h3>E-Mail-Account bearbeiten</h3>
146
-<p>Hier k&ouml;nnen Sie die Einstellungen des IMAP-Kontos bearbeiten.</p>
146
+<p>Hier können Sie die Einstellungen des IMAP-Kontos bearbeiten.</p>
147 147
 ');
148 148
   $_GET['edit'] = (int) $_GET['edit'];
149 149
   $account = get_mailaccount($_GET['edit']);
... ...
@@ -151,7 +151,7 @@ elseif (isset($_GET['edit']))
151 151
   $enabled = ($account['enabled'] ? ' checked="checked"' : '');
152 152
   $form = '
153 153
   <table style="margin-bottom: 1em;">
154
-  <tr><th>Einstellung:</th><th>alter Wert:</th><th>neuer Wert:</th><th>&nbsp;</th></tr>
154
+  <tr><th>Einstellung:</th><th>alter Wert:</th><th>neuer Wert:</th><th>&#160;</th></tr>
155 155
   <tr><td>Benutzername:</td><td><input type="text" id="old_account" name="old_account" value="'.$account['account'].'" readonly="readonly" style="background-color: #C0C0C0;" /></td>
156 156
           <td><input type="text" id="user" name="user" value="'.$username.'" />@<select name="domain" id="domain" size="1">
157 157
     <option value="schokokeks.org">schokokeks.org</option>
... ...
@@ -166,20 +166,20 @@ elseif (isset($_GET['edit']))
166 166
         $form .= '<option value="'.$dom->fqdn.'">'.$dom->fqdn.'</option>';
167 167
 
168 168
     $form .= '</select></td>
169
-          <td><input type="button" onclick="document.getElementById(\'user\').value = \''.$username.'\' ; document.getElementById(\'domain\').value = \''.$domain.'\'" value="Zeile zur&uuml;cksetzen" /></td></tr>
169
+          <td><input type="button" onclick="document.getElementById(\'user\').value = \''.$username.'\' ; document.getElementById(\'domain\').value = \''.$domain.'\'" value="Zeile zurücksetzen" /></td></tr>
170 170
   <tr><td>Mailbox:</td><td><input type="text" id="old_mailbox" name="old_mailbox" value="'.$account['mailbox'].'" readonly="readonly" style="background-color: #C0C0C0;" /></td>
171 171
           <td><input type="text" id="mailbox" name="mailbox" value="'.$account['mailbox'].'" /></td>
172
-          <td><input type="button" onclick="document.getElementById(\'mailbox\').value = document.getElementById(\'old_mailbox\').value" value="Zeile zur&uuml;cksetzen" /></td></tr>
172
+          <td><input type="button" onclick="document.getElementById(\'mailbox\').value = document.getElementById(\'old_mailbox\').value" value="Zeile zurücksetzen" /></td></tr>
173 173
   <tr><td>Passwort:</td><td><i>nicht angezeigt</i></td>
174 174
           <td><input type="password" id="password" name="password" value="" /></td>
175
-          <td><input type="button" onclick="document.getElementById(\'password\').value = \'\'" value="Zeile zur&uuml;cksetzen" /></td></tr>
175
+          <td><input type="button" onclick="document.getElementById(\'password\').value = \'\'" value="Zeile zurücksetzen" /></td></tr>
176 176
   <tr><td>Konto aktiv:</td>
177
-    <td>&nbsp;</td>
177
+    <td>&#160;</td>
178 178
     <td><input type="checkbox" id="enabled" name="enabled" value="true"'.$enabled.' /></td>
179
-    <td>&nbsp;</td></tr>
179
+    <td>&#160;</td></tr>
180 180
   </table>
181
-  <p><input type="submit" value="&Auml;nderungen speichern" /><br />
182
-  Hinweis: Das Passwort wird nur ge&auml;ndert, wenn Sie auf dieser Seite eines eingeben. Geben Sie keines an, wird das bisherige beibehalten!</p>
181
+  <p><input type="submit" value="Änderungen speichern" /><br />
182
+  Hinweis: Das Passwort wird nur geändert, wenn Sie auf dieser Seite eines eingeben. Geben Sie keines an, wird das bisherige beibehalten!</p>
183 183
   ';
184 184
   output(html_form('imap_accounts_edit', 'accounts.php', 'action=save&id='.$_GET['edit'], $form));
185 185
 }
... ...
@@ -188,7 +188,7 @@ else
188 188
   output('<h3>E-Mail-Accounts</h3>
189 189
 <p>Folgende POP3/IMAP-Konten sind eingerichtet:</p>
190 190
 <table style="margin-bottom: 1em;">
191
-<tr><th>Kontoname:</th><th>Mailbox-Pfad:</th><th>aktiv</th><th>&nbsp;</th></tr>
191
+<tr><th>Kontoname:</th><th>Mailbox-Pfad:</th><th>aktiv</th><th>&#160;</th></tr>
192 192
 ');
193 193
 
194 194
         foreach (mailaccounts($user['uid']) as $account)
... ...
@@ -200,7 +200,7 @@ else
200 200
             <td>'.internal_link('accounts.php', $account['account'], 'edit='.$account['id']).'</td>
201 201
             <td>'.$mailbox.'</td>
202 202
             <td><b>'.($account['enabled'] ? 'Ja' : 'Nein').'</b></td>
203
-            <td><a href="accounts.php?action=delete&amp;account='.$account['id'].'">l&ouml;schen</a></td></tr>');
203
+            <td><a href="accounts.php?action=delete&amp;account='.$account['id'].'">löschen</a></td></tr>');
204 204
         }
205 205
         output('</table>
206 206
 <p><a href="accounts.php?action=create">Neuen Account anlegen</a></p>
... ...
@@ -36,8 +36,8 @@ if ($_POST['password1'] != '')
36 36
 
37 37
 
38 38
 
39
-output('<h3>Passwort &auml;ndern</h3>
40
-<p>Hier k&ouml;nnen Sie Ihr Passwort &auml;ndern.</p>
39
+output('<h3>Passwort ändern</h3>
40
+<p>Hier können Sie Ihr Passwort ändern.</p>
41 41
 '.html_form('imap_chpass', 'chpass.php', '', '<table>
42 42
   <tr>
43 43
     <td>bisheriges Passwort:</td>  <td><input type="password" name="old_password" value="" /></td>
... ...
@@ -46,7 +46,7 @@ output('<h3>Passwort &auml;ndern</h3>
46 46
     <td>neues Passwort:</td>       <td><input type="password" name="password1" value="" /></td>
47 47
   </tr>
48 48
   <tr>
49
-    <td>Best&auml;tigung:<br /><span style="font-size: 80%;">(nochmal neues Passwort)</span></td>
49
+    <td>Bestätigung:<br /><span style="font-size: 80%;">(nochmal neues Passwort)</span></td>
50 50
                                    <td><input type="password" name="password2" value="" /></td>
51 51
   </tr>
52 52
 </table>
... ...
@@ -2,7 +2,7 @@
2 2
 require_once('inc/debug.php');
3 3
 require_once('inc/security.php');
4 4
 
5
-$title = "Passwort &auml;ndern";
5
+$title = "Passwort ändern";
6 6
 $error = '';
7 7
 
8 8
 require_role(array(ROLE_SYSTEMUSER, ROLE_CUSTOMER));
... ...
@@ -48,8 +48,8 @@ if ($_POST['password1'] != '')
48 48
 if ($_SESSION['role'] & ROLE_SYSTEMUSER)
49 49
   warning('Beachten Sie: Wenn Sie hier Ihr Passwort ändern, betrifft dies auch Ihr Anmelde-Passwort am Server (SSH).');
50 50
 
51
-output('<h3>Passwort &auml;ndern</h3>
52
-<p>Hier k&ouml;nnen Sie Ihr Passwort &auml;ndern.</p>
51
+output('<h3>Passwort ändern</h3>
52
+<p>Hier können Sie Ihr Passwort ändern.</p>
53 53
 '.html_form('index_chpass', 'chpass.php', '', '<table>
54 54
   <tr>
55 55
     <td>bisheriges Passwort:</td>  <td><input type="password" name="old_password" value="" /></td>
... ...
@@ -58,7 +58,7 @@ output('<h3>Passwort &auml;ndern</h3>
58 58
     <td>neues Passwort:</td>       <td><input type="password" name="password1" value="" /></td>
59 59
   </tr>
60 60
   <tr>
61
-    <td>Best&auml;tigung:<br /><span style="font-size: 80%;">(nochmal neues Passwort)</span></td>
61
+    <td>Bestätigung:<br /><span style="font-size: 80%;">(nochmal neues Passwort)</span></td>
62 62
                                    <td><input type="password" name="password2" value="" /></td>
63 63
   </tr>
64 64
 </table>
... ...
@@ -30,7 +30,7 @@ output('<h3>Neues Passwort beantragen</h3>
30 30
 <form action="" method="post">
31 31
 <p><span class="login_label">Kundennummer:</span> <input type="text" name="customerno" size="30" /></p>
32 32
 <p><span class="login_label">E-Mail-Adresse:</span> <input type="text" name="email" size="30" /></p>
33
-<p><span class="login_label">&nbsp;</span> <input type="submit" value="Passwort anfordern" /></p>
33
+<p><span class="login_label">&#160;</span> <input type="submit" value="Passwort anfordern" /></p>
34 34
 </form>');
35 35
 
36 36
 
... ...
@@ -54,7 +54,7 @@ if ($show == 'password')
54 54
   <input type="hidden" name="token" value="'.$token.'" /></p>
55 55
   <p><span class="login_label">Neues Passwort:</span> <input type="password" name="password" size="30" /></p>
56 56
   <p><span class="login_label">Bestätigung:</span> <input type="password" name="password2" size="30" /></p>
57
-  <p><span class="login_label">&nbsp;</span> <input type="submit" value="Passwort setzen" /></p>
57
+  <p><span class="login_label">&#160;</span> <input type="submit" value="Passwort setzen" /></p>
58 58
   </form>');
59 59
 }
60 60
 elseif ($show == 'token')
... ...
@@ -64,7 +64,7 @@ elseif ($show == 'token')
64 64
   <form action="" method="post">
65 65
   <p><span class="login_label">Kundennummer:</span> <input type="text" name="customerno" size="30" /></p>
66 66
   <p><span class="login_label">Code:</span> <input type="text" name="token" size="30" /></p>
67
-  <p><span class="login_label">&nbsp;</span> <input type="submit" value="Überprüfen" /></p>
67
+  <p><span class="login_label">&#160;</span> <input type="submit" value="Überprüfen" /></p>
68 68
   </form>');
69 69
 }
70 70
 
... ...
@@ -26,7 +26,7 @@ foreach ($jabberaccounts as $acc)
26 26
     $domain = new Domain();
27 27
     $domain->fqdn='schokokeks.org';
28 28
   }
29
-  output("<tr><td>{$local}@{$domain->fqdn}</td><td>".internal_link('chpass.php', 'Passwort ändern', 'account='.$acc['id'])."&nbsp;&nbsp;&nbsp;".internal_link('save.php', 'Löschen', 'action=delete&account='.$acc['id']).'</td></tr>');
29
+  output("<tr><td>{$local}@{$domain->fqdn}</td><td>".internal_link('chpass.php', 'Passwort ändern', 'account='.$acc['id'])."&#160;&#160;&#160;".internal_link('save.php', 'Löschen', 'action=delete&account='.$acc['id']).'</td></tr>');
30 30
 }
31 31
 
32 32
 output('</table>
... ...
@@ -26,7 +26,7 @@ output('<p>Erstellen Sie hier ein neues Jabber-Konto. Ihre Änderungen werden na
26 26
 
27 27
 '.html_form('jabber_new_account', 'save.php', 'action=new', '
28 28
 <table>
29
-<tr><td>Account-Name:</td><td><input type="text" name="local" value="" />&nbsp;@&nbsp;<select name="domain" size="1">
29
+<tr><td>Account-Name:</td><td><input type="text" name="local" value="" />&#160;@&#160;<select name="domain" size="1">
30 30
 '.$options.'
31 31
 </select></td></tr>
32 32
 <tr><td>Passwort:</td><td><input type="password" name="password" value="" /></td></tr>
... ...
@@ -117,7 +117,7 @@ if ($output_something)
117 117
 
118 118
   $form = '
119 119
   <table>
120
-  <tr><th>&nbsp;</th><th style="background-color: #729bb3; color: #fff;padding: 0.2em;" colspan="'.(count($users)+1).'">Benutzerkonten</th></tr>
120
+  <tr><th>&#160;</th><th style="background-color: #729bb3; color: #fff;padding: 0.2em;" colspan="'.(count($users)+1).'">Benutzerkonten</th></tr>
121 121
   <tr><th style="background-color: #729bb3; color: #fff;padding: 0.2em; text-align: left;">Datenbanken</th>';
122 122
 
123 123
   foreach ($users as $user)
... ...
@@ -129,7 +129,7 @@ if ($output_something)
129 129
 
130 130
   foreach($dbs as $db)
131 131
   {
132
-    $form .= "<tr><td style=\"border: 0px; font-weight: bold; text-align: right;\">{$db}&nbsp;<a href=\"?".($debugmode ? 'debug&amp;': '')."action=delete_db&amp;db={$db}\"><img src=\"{$prefix}images/delete.png\" title=\"Datenbank »{$db}« löschen\" alt=\"löschen\" /></a></td>";
132
+    $form .= "<tr><td style=\"border: 0px; font-weight: bold; text-align: right;\">{$db}&#160;<a href=\"?".($debugmode ? 'debug&amp;': '')."action=delete_db&amp;db={$db}\"><img src=\"{$prefix}images/delete.png\" title=\"Datenbank »{$db}« löschen\" alt=\"löschen\" /></a></td>";
133 133
     foreach ($users as $user)
134 134
       $form .= '<td style="text-align: center;"><input type="checkbox" id="'.$db.'_'.$user.'" name="access['.$db.'][]" value="'.$user.'" '.(get_mysql_access($db, $user) ? 'checked="checked" ' : '')." /></td>";
135 135
     $form .= "</tr>\n";
... ...
@@ -150,12 +150,12 @@ if ($output_something)
150 150
 
151 151
 
152 152
   $form = '<div>
153
-  <label for="username">Benutzername:</label>&nbsp;<select name="mysql_username" id="username">
153
+  <label for="username">Benutzername:</label>&#160;<select name="mysql_username" id="username">
154 154
 ';
155 155
   foreach ($users as $user)
156 156
     $form .= "<option value=\"{$user}\">{$user}</option>\n";
157
-  $form .= '</select>&nbsp;&nbsp;&nbsp;
158
-  <label for="password">Passwort:</label>&nbsp;<input type="password" name="mysql_password" id="password" />&nbsp;&nbsp;<input type="submit" value="Setzen" />
157
+  $form .= '</select>&#160;&#160;&#160;
158
+  <label for="password">Passwort:</label>&#160;<input type="password" name="mysql_password" id="password" />&#160;&#160;<input type="submit" value="Setzen" />
159 159
 </div>
160 160
 ';
161 161
 
... ...
@@ -1 +0,0 @@
1
-../../index/include/mail.php
2 0
\ No newline at end of file
... ...
@@ -0,0 +1,53 @@
1
+<?php
2
+require_once('newpass.php');
3
+require_once('session/checkuser.php');
4
+
5
+
6
+function send_customer_token($customerno)
7
+{
8
+  $customerno = (int) $customerno;
9
+  $token = get_customer_token($customerno);
10
+  $customer = get_customer_info($customerno);
11
+  $email = get_customer_email($customerno);
12
+  $anrede = "Sehr geehrte Damen und Herren";
13
+  if ($customer['title'] == 'Herr')
14
+    $anrede = "Sehr geehrter Herr {$customer['name']}";
15
+  elseif ($customer['title'] == 'Frau')
16
+    $anrede = "Sehr geehrte Frau {$customer['name']}";
17
+  $msg = "{$anrede},
18
+
19
+Sie haben auf unserem Web-Administrations-Interface ein neues
20
+Passwort für Ihren Kunden-Zugang angefordert.
21
+Diese automatische Nachricht dient der Überprüfung Ihrer Identität.
22
+
23
+Um sich ein neues Passwort setzen zu können, rufen Sie bitte den
24
+folgenden Link auf:
25
+ https://config.schokokeks.org/go/index/validate_token.php?customerno={$customer['customerno']}&token={$token}
26
+
27
+Sollte Ihr E-Mail-Programm diesen Link nicht korrekt an den Browser
28
+übertragen, rufen Sie bitte die Seite
29
+ https://config.schokokeks.org/go/index/validate_token.php
30
+auf und geben Sie die folgenden Daten ein:
31
+ Kundennummer: {$customer['customerno']}
32
+ Token:        {$token}
33
+
34
+Diese Prozedur müssen Sie bis spätestens 24 Stunden nach Erhalt
35
+dieser Nachricht durchführen, sonst verliert das Token seine
36
+Gültigkeit.
37
+";
38
+  send_mail($email, "Passwortanforderung fuer Webinterface", $msg);
39
+}
40
+
41
+
42
+
43
+function send_mail($address, $subject, $body)
44
+{
45
+  if (strstr($subject, "\n") !== false)
46
+    die("Zeilenumbruch im subject!");
47
+  $header = "From: schokokeks.org Web Administration <noreply@schokokeks.org>\r\nReply-To: root@schokokeks.org\r\nContent-Type: text/plain; charset=\"utf-8\"\r\nContent-Transfer-Encoding: 8bit";
48
+  mail($address, $subject, $body, $header);
49
+}
50
+
51
+
52
+
53
+?>
... ...
@@ -1 +0,0 @@
1
-../../index/include/newpass.php
2 0
\ No newline at end of file
... ...
@@ -0,0 +1,65 @@
1
+<?php
2
+
3
+require_once('inc/db_connect.php');
4
+require_once('session/checkuser.php');
5
+
6
+function customer_has_email($customerno, $email)
7
+{
8
+  $customerno = (int) $customerno;
9
+  $email = mysql_real_escape_string($email);
10
+  $result = db_query("SELECT NULL FROM kundendaten.kundenkontakt WHERE kundennr=".$customerno." AND wert='".$email."';");
11
+  return (mysql_num_rows($result) > 0);
12
+}
13
+
14
+
15
+function validate_token($customerno, $token)
16
+{
17
+  expire_tokens();
18
+  $customerno = (int) $customerno;
19
+  $token = mysql_real_escape_string($token);
20
+  $result = db_query("SELECT NULL FROM kundendaten.kunden WHERE id={$customerno} AND token='{$token}';");
21
+  return (mysql_num_rows($result) > 0);
22
+}
23
+
24
+
25
+function expire_tokens()
26
+{
27
+  $expire = "1 DAY";
28
+  db_query("UPDATE kundendaten.kunden SET token=NULL, token_create=NULL WHERE token_create < NOW() - INTERVAL {$expire};");
29
+}
30
+
31
+function invalidate_customer_token($customerno)
32
+{
33
+  $customerno = (int) $customerno;
34
+  db_query("UPDATE kundendaten.kunden SET token=NULL, token_create=NULL WHERE id={$customerno} LIMIT 1;");
35
+}
36
+ 
37
+function create_token($customerno)
38
+{
39
+  $customerno = (int) $customerno;
40
+  expire_tokens();
41
+  $result = db_query("SELECT token_create FROM kundendaten.kunden WHERE id={$customerno} AND token_create IS NOT NULL;");
42
+  if (mysql_num_rows($result) > 0)
43
+  {
44
+    $res = mysql_fetch_object($result)->token_create;
45
+    input_error("Sie haben diese Funktion kürzlich erst benutzt, an Ihre E-Mail-Adresse wurde bereits am {$res} eine Nachricht verschickt. Sie können diese Funktion erst nach Ablauf von 24 Stunden erneut benutzen.");
46
+    return false;
47
+  }
48
+  $token = random_string(10);
49
+  db_query("UPDATE kundendaten.kunden SET token='{$token}', token_create=now() WHERE id={$customerno} LIMIT 1;");
50
+  return true;
51
+}
52
+
53
+
54
+function get_customer_token($customerno)
55
+{
56
+  $customerno = (int) $customerno;
57
+  expire_tokens();
58
+  $result = db_query("SELECT token FROM kundendaten.kunden WHERE id={$customerno} AND token IS NOT NULL;");
59
+  if (mysql_num_rows($result) < 1)
60
+    system_failure("Kann das Token nicht auslesen!");
61
+  return mysql_fetch_object($result)->token;
62
+}
63
+
64
+
65
+?>
... ...
@@ -88,7 +88,7 @@ else
88 88
   <p><span class="login_label">Nachname:</span> <input type="text" name="nachname" size="30" value="'.$_POST['nachname'].'" /></p>
89 89
   <p><span class="login_label">E-Mail-Adresse:</span> <input type="text" name="email" size="30" value="'.$_POST['email'].'" /></p>
90 90
   <p><span class="login_label">AGB:</span> <input type="checkbox" name="agb_gelesen" value="1"'.($_POST['agb_gelesen'] == 1 ? ' checked="checked"' : '').' /> Ja, ich habe <a href="http://schokokeks.org/agb">die Allgemeinen Geschäftsbedingungen von schokokeks.org Webhosting</a> gelesen und erkläre mich damit einverstanden.</p>
91
-  <p><span class="login_label">&nbsp;</span> <input type="submit" value="Zugang erstellen" /></p>'));
91
+  <p><span class="login_label">&#160;</span> <input type="submit" value="Zugang erstellen" /></p>'));
92 92
   
93 93
 }
94 94
 
... ...
@@ -24,8 +24,8 @@ $mainalias = (strstr($vhost['options'], 'aliaswww') ? '<br /><strong>www.'.$vhos
24 24
 
25 25
 $form = "
26 26
   <table>
27
-    <tr><th>Adresse</th><th>Verhalten</th><th>&nbsp;</th></tr>
28
-    <tr><td><strong>{$vhost['fqdn']}</strong>{$mainalias}</td><td>Haupt-Adresse</td><td>&nbsp;</td></tr>
27
+    <tr><th>Adresse</th><th>Verhalten</th><th>&#160;</th></tr>
28
+    <tr><td><strong>{$vhost['fqdn']}</strong>{$mainalias}</td><td>Haupt-Adresse</td><td>&#160;</td></tr>
29 29
 ";
30 30
 
31 31
 foreach ($aliases AS $alias) {
... ...
@@ -34,7 +34,7 @@ foreach ($aliases AS $alias) {
34 34
     $aliastype = 'Umleitung auf Haupt-Adresse';
35 35
   }
36 36
   $formtoken = generate_form_token('aliases_toggle');
37
-  $havewww = '<br />www.'.$alias['fqdn'].' &nbsp; ('.internal_link('aliasoptions.php', 'WWW-Alias entfernen', "alias={$alias['id']}&aliaswww=0&formtoken={$formtoken}").')';
37
+  $havewww = '<br />www.'.$alias['fqdn'].' &#160; ('.internal_link('aliasoptions.php', 'WWW-Alias entfernen', "alias={$alias['id']}&aliaswww=0&formtoken={$formtoken}").')';
38 38
   $nowww = '<br />'.internal_link('aliasoptions.php', 'Auch mit WWW', "alias={$alias['id']}&aliaswww=1&formtoken={$formtoken}");
39 39
   $wwwalias = (strstr($alias['options'], 'aliaswww') ? $havewww : $nowww);
40 40
 
... ...
@@ -78,8 +78,8 @@ $form = "
78 78
     <td><input type=\"text\" name=\"hostname\" id=\"hostname\" size=\"10\" value=\"{$vhost['hostname']}\" onchange=\"defaultDocumentRoot()\" /><strong>.</strong>".domainselect($vhost['domain_id'], 'onchange="defaultDocumentRoot()"');
79 79
 $form .= "<br /><input type=\"checkbox\" name=\"options[]\" id=\"aliaswww\" value=\"aliaswww\" {$s}/> <label for=\"aliaswww\">Auch mit <strong>www</strong> davor.</label></td><td><em>keiner</em></td></tr>
80 80
     <tr><td>Lokaler Pfad</td>
81
-    <td><input type=\"checkbox\" id=\"use_default_docroot\" name=\"use_default_docroot\" value=\"1\" onclick=\"useDefaultDocroot()\" ".($is_default_docroot ? 'checked="checked" ' : '')."/>&nbsp;<label for=\"use_default_docroot\">Standardeinstellung benutzen</label><br />
82
-    <strong>".$vhost['homedir']."/</strong>&nbsp;<input type=\"text\" id=\"docroot\" name=\"docroot\" size=\"30\" value=\"".$docroot."\" ".($is_default_docroot ? 'disabled="disabled" ' : '')."/>
81
+    <td><input type=\"checkbox\" id=\"use_default_docroot\" name=\"use_default_docroot\" value=\"1\" onclick=\"useDefaultDocroot()\" ".($is_default_docroot ? 'checked="checked" ' : '')."/>&#160;<label for=\"use_default_docroot\">Standardeinstellung benutzen</label><br />
82
+    <strong>".$vhost['homedir']."/</strong>&#160;<input type=\"text\" id=\"docroot\" name=\"docroot\" size=\"30\" value=\"".$docroot."\" ".($is_default_docroot ? 'disabled="disabled" ' : '')."/>
83 83
     </td>
84 84
     <td id=\"defaultdocroot\">{$defaultdocroot}</td></tr>
85 85
     <tr><td>PHP</td>
... ...
@@ -106,13 +106,13 @@ $form .= "<br /><input type=\"checkbox\" name=\"options[]\" id=\"aliaswww\" valu
106 106
       <option value=\"anonymous\" ".($vhost['logtype'] == 'anonymous' ? 'selected="selected"' : '')." >anonymisiert</option>
107 107
       <option value=\"default\" ".($vhost['logtype'] == 'default' ? 'selected="selected"' : '')." >vollständige Logfile</option>
108 108
     </select><br />
109
-    <input type=\"checkbox\" id=\"errorlog\" name=\"errorlog\" value=\"1\" ".($vhost['errorlog'] == 1 ? ' checked="checked" ' : '')." />&nbsp;<label for=\"errorlog\">Fehlerprotokoll (error_log) einschalten</label>
109
+    <input type=\"checkbox\" id=\"errorlog\" name=\"errorlog\" value=\"1\" ".($vhost['errorlog'] == 1 ? ' checked="checked" ' : '')." />&#160;<label for=\"errorlog\">Fehlerprotokoll (error_log) einschalten</label>
110 110
     </td>
111 111
     <td id=\"defaultlogtype\">keine Logfiles</td></tr>
112 112
     ";
113 113
 
114 114
 $form .= '</table>
115
-  <p><input type="submit" value="Speichern" />&nbsp;&nbsp;&nbsp;&nbsp;'.internal_link('vhosts.php', 'Abbrechen').'</p>
115
+  <p><input type="submit" value="Speichern" />&#160;&#160;&#160;&#160;'.internal_link('vhosts.php', 'Abbrechen').'</p>
116 116
   <p class="warning"><span class="warning">*</span>Es ist im Moment Gegenstand gerichtlicher Außeinandersetzungen, ob die Speicherung von Logfiles auf Webservern
117 117
   zulässig ist. Wir weisen alle Nutzer darauf hin, dass sie selbst dafür verantwortlich sind, bei geloggten Nutzerdaten die
118 118
   Seitenbesucher darauf hinzuweisen. Wir empfehlen, wenn möglich, Logfiles abzuschalten oder anonymes Logging einzusetzen.</p>
... ...
@@ -54,7 +54,7 @@ if (count($vhosts) > 0)
54 54
     </tr>");
55 55
   }
56 56
   output('</table>');
57
-  output('<p><sup>*</sup>)&nbsp;schwach geschriebene Pfadangaben bezeichnen die Standardeinstellung. Ist ein Pfad fett dargestellt, so haben Sie einen davon abweichenden Wert eingegeben.</p>');
57
+  output('<p><sup>*</sup>)&#160;schwach geschriebene Pfadangaben bezeichnen die Standardeinstellung. Ist ein Pfad fett dargestellt, so haben Sie einen davon abweichenden Wert eingegeben.</p>');
58 58
   output('  <br />');
59 59
 }
60 60
 output('<p><a href="edit.php">Neue Subdomain anlegen</a></p>');
61 61