Tabelle 'kundenkontakt' komplett entfernt
bernd

bernd commited on 2010-02-21 08:26:39
Zeige 8 geänderte Dateien mit 34 Einfügungen und 116 Löschungen.


git-svn-id: https://svn.schokokeks.org/repos/tools/webinterface/trunk@1680 87cf0b9e-d624-0410-a070-f6ee81989793
... ...
@@ -8,7 +8,8 @@ function send_customer_token($customerno)
8 8
   $customerno = (int) $customerno;
9 9
   $token = get_customer_token($customerno);
10 10
   $customer = get_customer_info($customerno);
11
-  $email = get_customer_email($customerno);
11
+  if ($customer['email'] == '')
12
+    system_failure('Für Ihr Kundenkonto ist keine E-Mail-Adresse eingetragen. Diese Funktion steht Ihnen daher nicht zur Verfügung.')
12 13
   $anrede = "Sehr geehrte Damen und Herren";
13 14
   if ($customer['title'] == 'Herr')
14 15
     $anrede = "Sehr geehrter Herr {$customer['name']}";
... ...
@@ -35,7 +36,7 @@ Diese Prozedur müssen Sie bis spätestens 24 Stunden nach Erhalt
35 36
 dieser Nachricht durchführen, sonst verliert das Token seine
36 37
 Gültigkeit.
37 38
 ";
38
-  send_mail($email, "Passwortanforderung fuer Webinterface", $msg);
39
+  send_mail($customer['email'], "Passwortanforderung fuer Webinterface", $msg);
39 40
 }
40 41
 
41 42
 
... ...
@@ -7,7 +7,7 @@ function customer_has_email($customerno, $email)
7 7
 {
8 8
   $customerno = (int) $customerno;
9 9
   $email = mysql_real_escape_string($email);
10
-  $result = db_query("SELECT NULL FROM kundendaten.kundenkontakt WHERE kundennr=".$customerno." AND wert='".$email."';");
10
+  $result = db_query("SELECT NULL FROM kundendaten.kunden WHERE id=".$customerno." AND (email='".$email."' OR email_extern='{$email}' OR email_rechnung='{$email'}');");
11 11
   return (mysql_num_rows($result) > 0);
12 12
 }
13 13
 
... ...
@@ -8,7 +8,8 @@ function send_customer_token($customerno)
8 8
   $customerno = (int) $customerno;
9 9
   $token = get_customer_token($customerno);
10 10
   $customer = get_customer_info($customerno);
11
-  $email = get_customer_email($customerno);
11
+  if ($customer['email'] == '')
12
+    system_failure('Für Ihr Kundenkonto ist keine E-Mail-Adresse eingetragen. Diese Funktion steht Ihnen daher nicht zur Verfügung.')
12 13
   $anrede = "Sehr geehrte Damen und Herren";
13 14
   if ($customer['title'] == 'Herr')
14 15
     $anrede = "Sehr geehrter Herr {$customer['name']}";
... ...
@@ -22,11 +23,11 @@ Diese automatische Nachricht dient der Überprüfung Ihrer Identität.
22 23
 
23 24
 Um sich ein neues Passwort setzen zu können, rufen Sie bitte den
24 25
 folgenden Link auf:
25
- https://config.schokokeks.org/go/index/validate_token.php?customerno={$customer['customerno']}&token={$token}
26
+ https://config.schokokeks.org/go/index/validate_token?customerno={$customer['customerno']}&token={$token}
26 27
 
27 28
 Sollte Ihr E-Mail-Programm diesen Link nicht korrekt an den Browser
28 29
 übertragen, rufen Sie bitte die Seite
29
- https://config.schokokeks.org/go/index/validate_token.php
30
+ https://config.schokokeks.org/go/index/validate_token
30 31
 auf und geben Sie die folgenden Daten ein:
31 32
  Kundennummer: {$customer['customerno']}
32 33
  Token:        {$token}
... ...
@@ -35,7 +36,7 @@ Diese Prozedur müssen Sie bis spätestens 24 Stunden nach Erhalt
35 36
 dieser Nachricht durchführen, sonst verliert das Token seine
36 37
 Gültigkeit.
37 38
 ";
38
-  send_mail($email, "Passwortanforderung fuer Webinterface", $msg);
39
+  send_mail($customer['email'], "Passwortanforderung fuer Webinterface", $msg);
39 40
 }
40 41
 
41 42
 
... ...
@@ -7,7 +7,7 @@ function customer_has_email($customerno, $email)
7 7
 {
8 8
   $customerno = (int) $customerno;
9 9
   $email = mysql_real_escape_string($email);
10
-  $result = db_query("SELECT NULL FROM kundendaten.kundenkontakt WHERE kundennr=".$customerno." AND wert='".$email."';");
10
+  $result = db_query("SELECT NULL FROM kundendaten.kunden WHERE id=".$customerno." AND (email='".$email."' OR email_extern='{$email}' OR email_rechnung='{$email'}');");
11 11
   return (mysql_num_rows($result) > 0);
12 12
 }
13 13
 
... ...
@@ -6,11 +6,11 @@ require_once('mail.php');
6 6
 function customer_with_email($email)
7 7
 {
8 8
   $email = mysql_real_escape_string($email);
9
-  $result = db_query("SELECT kundennr FROM kundendaten.kundenkontakt WHERE wert='{$email}' LIMIT 1;");
9
+  $result = db_query("SELECT id FROM kundendaten.kunden WHERE email='{$email}' OR email_rechnung='{$email}' OR email_extern='{$email}' LIMIT 1;");
10 10
   if (mysql_num_rows($result) == 0)
11 11
     return NULL;
12 12
   else
13
-    return mysql_fetch_object($result)->kundennr;
13
+    return mysql_fetch_object($result)->id;
14 14
 }
15 15
 
16 16
 
... ...
@@ -32,17 +32,14 @@ function create_customer($data)
32 32
 
33 33
   logger(LOG_INFO, 'modules/register/include/register', 'register', "Creating new account: {$anrede} / {$firma} / {$vorname} / {$nachname} / {$email}");
34 34
   
35
-  $realname = maybe_null(chop($vorname.' '.$nachname));
36
-
37 35
   $anrede = maybe_null($anrede);
38 36
   $firma = maybe_null($firma);
39 37
   $vorname = maybe_null($vorname);
40 38
   $nachname = maybe_null($nachname);
41 39
 
42 40
   db_query("BEGIN");
43
-  db_query("INSERT INTO kundendaten.kunden (firma, nachname, vorname, anrede, erstellungsdatum,status) VALUES ({$firma}, {$nachname}, {$vorname}, {$anrede}, CURDATE(), 3)");
41
+  db_query("INSERT INTO kundendaten.kunden (firma, nachname, vorname, anrede, email, erstellungsdatum,status) VALUES ({$firma}, {$nachname}, {$vorname}, {$anrede}, {$email}, CURDATE(), 3)");
44 42
   $customerno = mysql_insert_id();
45
-  db_query("INSERT INTO kundendaten.kundenkontakt (typ, comment, wert, name, kundennr) VALUES ('email', 'extern', '{$email}', {$realname}, {$customerno})");
46 43
   db_query("COMMIT");
47 44
   return $customerno;
48 45
 
... ...
@@ -54,7 +51,6 @@ function send_initial_customer_token($customerno)
54 51
   $customerno = (int) $customerno;
55 52
   $token = get_customer_token($customerno);
56 53
   $customer = get_customer_info($customerno);
57
-  $email = get_customer_email($customerno);
58 54
   $anrede = "Sehr geehrte Damen und Herren";
59 55
   if ($customer['title'] == 'Herr')
60 56
     $anrede = "Sehr geehrter Herr {$customer['name']}";
... ...
@@ -87,7 +83,7 @@ Gültigkeit und der Zugang wird wieder gelöscht.
87 83
 Sofern Sie keinen Account bei schokokeks.org angemeldet haben, 
88 84
 können Sie diese Nachricht ignorieren.
89 85
 ";
90
-  send_mail($email, "Willkommen bei schokokeks.org Webhosting", $msg);
86
+  send_mail($customer['email'], "Willkommen bei schokokeks.org Webhosting", $msg);
91 87
 }
92 88
 
93 89
 
... ...
@@ -95,12 +91,11 @@ function notify_admins_about_new_customer($customerno)
95 91
 {
96 92
   $customerno = (int) $customerno;
97 93
   $customer = get_customer_info($customerno);
98
-  $email = get_customer_email($customerno);
99 94
   $msg = "Folgender Kunde hat sich gerade über's Webinterface neu angemeldet:
100 95
 
101 96
 Kundennummer: {$customerno}
102 97
 Name: {$customer['name']}
103
-E-mail: {$email}
98
+E-mail: {$customer['email']}
104 99
 
105 100
 Registriert von IP-Adresse {$_SERVER['REMOTE_ADDR']}.
106 101
 ";
... ...
@@ -113,7 +108,6 @@ function welcome_customer($customerno)
113 108
 {
114 109
   $customerno = (int) $customerno;
115 110
   $customer = get_customer_info($customerno);
116
-  $email = get_customer_email($customerno);
117 111
   $anrede = "Sehr geehrte Damen und Herren";
118 112
   if ($customer['title'] == 'Herr')
119 113
     $anrede = "Sehr geehrter Herr {$customer['name']}";
... ...
@@ -140,7 +134,7 @@ Informationen. Schauen Sie sich um, es lohnt sich!
140 134
   * FIXME: Diese Mail muss noch überarbeitet werden!
141 135
   */
142 136
 
143
-  send_mail($email, "Willkommen bei schokokeks.org", $msg);
137
+  send_mail($customer['email'], "Willkommen bei schokokeks.org", $msg);
144 138
 }
145 139
 
146 140
 
... ...
@@ -1,98 +1,31 @@
1 1
 <?php
2
-$title = "Bei schokokeks.org registrieren";
2
+$title = "schokokeks.org testen";
3 3
 
4 4
 //require_once('inc/error.php');
5 5
 //system_failure("Diese Funktion ist noch nicht fertiggestellt.");
6 6
 
7 7
 require_once('newpass.php');
8 8
 
9
+require_once('inc/form.php');
10
+require_once('inc/base.php');
11
+
9 12
 $fail = array();
10 13
 $success = false;
11 14
 $customerno = 0;
12 15
 
13
-if (count($_POST) > 0)
14
-{
15
-  require_once('inc/security.php');
16
-  foreach (array_keys($_POST) AS $key)  
17
-  {
18
-    $_POST[$key] = filter_input_general(chop($_POST[$key]));
19
-  }
20
-  if (! in_array($_POST['anrede'], array("Herr", "Frau", "Firma")))
21
-  {
22
-    array_push($fail, 'Was haben Sie mit dem Anrede-Feld angestellt?!');
23
-  }
24
-  if (! ( (strlen($_POST['nachname']) > 1 || strlen($_POST['firma']) > 1) && strlen($_POST['email']) > 1 ))
25
-  {
26
-    array_push($fail, 'Sie müssen mindestens die Felder »Nachname« oder »Firma« sowie »E-Mail« ausfüllen!');
27
-  }
28
-  elseif (! $_POST['agb_gelesen'] == 1)
29
-  {
30
-    array_push($fail, 'Sie müssen die AGB lesen und diesen zustimmen');
31
-  }
32
-  elseif (! check_emailaddr($_POST['email']))
33
-  {
34
-    array_push($fail, 'Die E-Mail-Adresse scheint nicht korrekt zu sein!');
35
-  }
36
-  if (empty($fail))
37
-  {
38
-    require_once('register.php');
39
-    $customerno = create_customer($_POST);
40
-    if ($customerno == NULL)
41
-    {
42
-      array_push($fail, 'Diese E-Mail-Adresse ist bereits in unserer Datenbank vorhanden! Wenn Sie einen weiteren Benutzeraccount nutzen möchten, wenden Sie sich bitte an den Support.');
43
-    }
44
-    elseif (create_token($customerno))
45
-    {
46
-      require_once('inc/base.php');
47
-   //   send_initial_customer_token($customerno);
48
-   //   notify_admins_about_new_customer($customerno);
49
-   //   logger(LOG_INFO, "modules/register/index", "register", "token sent for customer »{$customerno}«");
50
-      $success = true;
51
-      #success_msg('Die angegebenen Daten wurden gespeichert, Sie sollten umgehend eine E-Mail erhalten.');
52
-    }
53
-  }
54
-}
55
-
56
-
57
-if ($success)
58
-{
59
-  output('<h3>Neues Konto eingerichtet</h3>
60
-  <p>Wir bestätigen hiermit die Einrichtung eines Kundenkontos und bedanken uns für Ihr Vertrauen.</p>
16
+output("<h3>schokokeks.org unverbindlich testen</h3>");
61 17
 
62
-  <h4>Was jetzt?</h4>
63
-  <p>Sie erhalten jetzt von uns eine E-Mail an die soeben eingegebene E-Mail-Adresse (»'.$_POST['email'].'«). Beachten Sie bitte, dass manche E-Mail-Spamfilter die Zustellung um eine gewisse Zeit verzögern können. Sofern Sie nach ca. einer Stunde noch keine E-Mail erhalten haben, schreiben Sie bitte <a href="mailto:root@schokokeks.org">an die Administratoren.</a></p>
18
+output("<p>Da wir bei schokokeks.org Hosting immer auf volle Transparenz und Kundenzufriedenheit setzen, können Sie unser Angebot unverbindlich und in (beinahe) vollem Umfang testen. Funktionen, die zusätzliche Kosten verursachen (z.B. Domainregistrierungen) sind im Testaccount nicht möglich.</p>
19
+<p>Mit Ausfüllen dieses Formulars können Sie sich einen Test-Zugang einrichten, den Sie 4 Tage lang nutzen können. Sollten Sie mit uns zufrieden sein, können Sie den Zugang jederzeit und ohne Verlust von bisherigen Einstellungen oder Daten in einen normalen Zugang umwandeln.</p>
20
+<p><strong>Wichtig:</strong> Um uns gegenüber Spassanmeldungen abzusichern, benötigt dieses automatisierte Verfahren Ihre Handynummer. Haben Sie kein Handy oder möchten Sie uns Ihre Handynummer nicht geben, können Sie auch über unseren E-Mail-Support einen gleichwertigen Test-Zugang anfordern.</p>");
64 21
 
65
-  <p>In der E-Mail finden Sie einen Link. Wenn Sie diesen aufrufen, dann erhalten Sie die Möglichkeit, ein Passwort zu setzen. Mit diesem Passwort und der Kundennummer <strong>'.(string) $customerno.'</strong> können Sie sich daraufhin an unserem Web-Interface anmelden.');
66
-}
67
-else
68
-{
69
-  output('<h3>Bei schokokeks.org registrieren</h3>
70
-  <p>Hier können Sie sich bei schokokeks.org Hosting anmelden. Mit der Anmeldung beantragen Sie einen Webhosting-Account mit den auf der Hauptseite genannten Leistungen zu den ebenfalls dort genannten Konditionen.</p>
71
-  <p>Um Sie als Kunden identifizieren zu können, benötigen wir mindestens Ihren Namen (oder Firmennamen) und Ihre E-Mail-Adresse. Für eine (spätere) Domain-Registrierung benötigen wir zudem eine Adresse sowie eine Telefonnummer. Wir behalten uns vor, den Zugang in Einzelfällen erst nach manueller Prüfung freizuschalten.</p>');
72 22
 
73
-  foreach ($fail as $f)
74
-    output('<p class="warning"><b>Fehler:</b> '.$f.'</p>');
23
+$form = '<p>'.label('mobile', 'Handynummer:').' '.textinput('mobile').'</p>
24
+<p>'.checkbox('terms', 'yes', false, 'Ich habe die <a href="http://www.schokokeks.org/agb">AGB</a> gelesen und erkläre hiermit meine Absicht, einen Zugang bei schokokeks.org unverbindlich zum Test des Angebots anzufordern.').'</p>
25
+<p>Sie erhalten nach dem Anfordern des Zugangs eine SMS auf Ihre angegebene Handynummer. Diese SMS enthält einen Code, den Sie auf der folgenden Seite eingeben müssen. Nach Eingabe des Codes wird Ihr Zugang umgehend freigeschaltet.</p>
26
+<p>'.submit('Testzugang anfordern').'</p>';
75 27
 
76
-  /* FIXME:
77
-   * Hier werden POST-Variablen benutzt, die es eventuell gar nicht gibt. Das erlaubt PHP zwar, ist aber nicht elegant.
78
-   */
79 28
 
80
-  output(html_form("register_index", "", "", '<h4>Stammdaten</h4>
81
-  <p><span class="login_label">Anrede:</span>
82
-  '.html_select('anrede', array('Herr' => 'Herr', 'Frau' => 'Frau', 'Firma' => 'Firma'), $_POST['anrede']).'</p>
83
-  <p><span class="login_label">Firma:</span> <input type="text" name="firma" size="30" value="'.$_POST['firma'].'" /></p>
84
-  <p><span class="login_label">Vorname:</span> <input type="text" name="vorname" size="30" value="'.$_POST['vorname'].'" /></p>
85
-  <p><span class="login_label">Nachname:</span> <input type="text" name="nachname" size="30" value="'.$_POST['nachname'].'" /></p>
86
-  <p><span class="login_label">Straße:</span> <input type="text" name="strasse" size="30" value="'.$_POST['strasse'].'" /></p>
87
-  <p><span class="login_label">PLZ / Ort:</span> <input type="text" name="plz" size="6" value="'.$_POST['plz'].'" /> <input type="text" name="ort" size="30" value="'.$_POST['ort'].'" /></p>
88
-  <p><span class="login_label">E-Mail-Adresse:</span> <input type="text" name="email" size="30" value="'.$_POST['email'].'" /></p>
89
-<h4>Benutzeraccount</h4>
90
-  <p><span class="login_label">Benutzername:</span> <input type="text" name="username" size="30" value="'.$_POST['username'].'" /></p>
91
-<h4>Zustimmung</h4>
92
-  <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>
93
-  <p><span class="login_label">Preis:</span> <input type="checkbox" name="preis_ok" value="1"'.($_POST['preis_ok'] == 1 ? ' checked="checked"' : '').' /> Ich nehme zur Kenntnis, dass für den Zugang eine monatliche Gebühr von <strong>8,- €</strong> anfällt. Wünschen Sie ein individuelles Angebot, wenden Sie sich bitte <a href="http://www.schokokeks.org/kontakt">direkt an uns</a>.</p>
94
-  <p><span class="login_label">&#160;</span> <input type="submit" value="Zugang erstellen" /></p>'));
29
+output(html_form('register_step1', 'step1_save', '', $form));
95 30
 
96
-}
97 31
 
98
-?>
... ...
@@ -32,14 +32,13 @@ function find_customers($string)
32 32
 {
33 33
   $string = mysql_real_escape_string(chop($string));
34 34
   $return = array();
35
-  $result = db_query("SELECT k.id FROM kundendaten.kunden AS k LEFT JOIN kundendaten.kundenkontakt AS kk ".
36
-                     "ON (kk.kundennr = k.id) LEFT JOIN system.useraccounts AS u ON (k.id=u.kunde) WHERE ".
35
+  $result = db_query("SELECT k.id FROM kundendaten.kunden AS k LEFT JOIN system.useraccounts AS u ON (k.id=u.kunde) WHERE ".
37 36
                      "firma LIKE '%{$string}%' OR firma2 LIKE '%{$string}%' OR ".
38 37
                      "nachname LIKE '%{$string}%' OR vorname LIKE '%{$string}%' OR ".
39 38
                      "adresse LIKE '%{$string}%' OR adresse2 LIKE '%{$string}%' OR ".
40 39
                      "ort LIKE '%{$string}%' OR pgp_id LIKE '%{$string}%' OR ".
41
-                     "notizen LIKE '%{$string}%' OR kk.name LIKE '%{$string}%' OR ".
42
-                     "kk.wert LIKE '%{$string}%' OR u.name LIKE '%{$string}%' OR ".
40
+                     "notizen LIKE '%{$string}%' OR email_rechnung LIKE '%{$string}%' OR ".
41
+                     "email LIKE '%{$string}%' OR email_extern LIKE '%{$string}%' OR u.name LIKE '%{$string}%' OR ".
43 42
                      "u.username LIKE '%{$string}%' OR k.id='{$string}' OR u.uid='{$string}';");
44 43
   while ($entry = mysql_fetch_assoc($result))
45 44
     $return[] = $entry['id'];
... ...
@@ -113,7 +113,7 @@ function get_customer_info($customer)
113 113
   {
114 114
     $username = mysql_real_escape_string($customer);
115 115
     DEBUG('looking up customer info for username '.$username);
116
-    $result = db_query("SELECT id, anrede, firma, CONCAT_WS(' ', vorname, nachname) AS name FROM kundendaten.kunden AS k JOIN system.v_useraccounts AS u ON (u.kunde=k.id) WHERE u.username='{$username}'");
116
+    $result = db_query("SELECT id, anrede, firma, CONCAT_WS(' ', vorname, nachname) AS name, email FROM kundendaten.kunden AS k JOIN system.v_useraccounts AS u ON (u.kunde=k.id) WHERE u.username='{$username}'");
117 117
   }
118 118
   if (@mysql_num_rows($result) == 0)
119 119
     system_failure("Konnte Kundendaten nicht auslesen!");
... ...
@@ -123,22 +123,12 @@ function get_customer_info($customer)
123 123
   $ret['title'] = $data->anrede;
124 124
   $ret['company'] = $data->firma;
125 125
   $ret['name'] = $data->name;
126
+  $ret['email'] = $data->email;
126 127
   
127 128
   return $ret;
128 129
 }
129 130
 
130 131
 
131
-function get_customer_email($customerno)
132
-{
133
-  $customerno = (int) $customerno;
134
-  $result = db_query("SELECT wert FROM kundendaten.kundenkontakt WHERE kundennr={$customerno} AND typ='email' LIMIT 1;");
135
-  if (@mysql_num_rows($result) == 0)
136
-    system_failure("Konnte keine E-Mail-Adresse finden!");
137
-  return mysql_fetch_object($result)->wert;
138
-}
139
-
140
-
141
-
142 132
 function get_user_info($username)
143 133
 {
144 134
   $username = mysql_real_escape_string($username);
145 135