Subversion Repositories personal-webbase

Rev

Go to most recent revision | Blame | Last modification | View Log | RSS feed

  1. <?php
  2.  
  3. if (!defined('WBLEGAL')) die('Kann nicht ohne Personal WebBase ausgef&uuml;hrt werden.');
  4.  
  5.         if (isset($_POST['sent']) && ($_POST['sent'] == '1'))
  6.         {
  7.                 echo $header;
  8.  
  9.                 echo '<h1>'.htmlentities($module_information->caption).'</h1>';
  10.  
  11.                 if ($mailaddr == '')
  12.                 {
  13.                         echo '<form method="POST" action="'.$_SERVER['PHP_SELF'].'">
  14. <input type="hidden" name="modul" value="'.$modul.'">
  15. <input type="hidden" name="seite" value="'.$seite.'">
  16. <input type="hidden" name="mailaddr" value="'.$mailaddr.'">
  17. <input type="hidden" name="sent" value="0">
  18.  
  19. Sie m&uuml;ssen eine E-Mail-Adresse angeben! Bei Accounts ohne E-Mail-Adresse kann diese Technik der Passwortgeneration nicht durchgef&uuml;hrt werden. Wenden Sie sich in diesem Fall an den Administrator.<br><br>
  20.  
  21.                         <input type="submit" class="button" onmouseover="this.className=\'button_act\';" onmouseout="this.className=\'button\';" value="Zur&uuml;ck"></form>';
  22.                 }
  23.                 else
  24.                 {
  25.                         $res = db_query("SELECT `username`, `id` FROM ".$WBConfig->getMySQLPrefix()."users WHERE `email` = '".db_escape($mailaddr)."'");
  26.                         if (db_num($res) == 0)
  27.                         {
  28.                                 echo '<form method="POST" action="'.$_SERVER['PHP_SELF'].'">
  29. <input type="hidden" name="modul" value="'.$modul.'">
  30. <input type="hidden" name="seite" value="'.$seite.'">
  31. <input type="hidden" name="mailaddr" value="'.$mailaddr.'">
  32. <input type="hidden" name="sent" value="0">
  33.  
  34. Zu der angegebenen E-Mail-Adresse existiert kein Benutzer.<br><br>
  35.  
  36.                                 <input type="submit" class="button" onmouseover="this.className=\'button_act\';" onmouseout="this.className=\'button\';" value="Zur&uuml;ck"></form>';
  37.                         }
  38.                         else
  39.                         {
  40.                                 $res = db_query("SELECT `id`, `username`, `new_password` FROM `".$WBConfig->getMySQLPrefix()."users` WHERE `email` = '".db_escape($mailaddr)."'");
  41.                                 while ($row = db_fetch($res))
  42.                                 {
  43.                                         $un = $row['username'];
  44.                                         $id = $row['id'];
  45.  
  46.                                         if ($row['new_password'] != '')
  47.                                         {
  48.                                                 $pw = $row['new_password'];
  49.                                         }
  50.                                         else
  51.                                         {
  52.                                                 $pw = zufall(10);
  53.                                                 db_query("UPDATE `".$WBConfig->getMySQLPrefix()."users` SET `new_password` = '".db_escape($pw)."' WHERE `id` = '".db_escape($id)."'");
  54.                                         }
  55.                                         $ac = md5(md5($pw));
  56.  
  57.                                         if (array_key_exists("HTTPS", $_SERVER) && $_SERVER("HTTPS") == 'on')
  58.                                                 $protokoll = 'https';
  59.                                         else
  60.                                                 $protokoll = 'http';
  61.  
  62.                                         // In der E-Mail keine HTML-Sonderzeichenkonvertierung
  63.                                         $mail = "Jemand hat Personal WebBase auf dem Server \"".$_SERVER['HTTP_HOST']."\" angewiesen, ein neues Passwort für die Konten, die auf die E-Mail-Adresse $mailaddr registriert sind, zu generieren. Wenn Sie mehrere Konten besitzen, aber nur das Passwort eines Kontos vergessen haben, bearbeiten Sie nur die relevanten Aktivierungs-E-Mails. Diese E-Mail behandelt das Konto $un.\n\nHier sind Ihre neuen Zugangsdaten:\n\nBenutzername: $un\nPasswort: $pw\n\nBitte beachten Sie, dass diese Änderungen erst gültig werden, wenn Sie folgenden Aktivierungslink anklicken:\n$protokoll://".$_SERVER['HTTP_HOST'].$_SERVER['SCRIPT_NAME']."?modul=$modul&seite=activate&id=$id&code=$ac\n\nWenn Sie kein neues Passwort angefordert haben, dann ignorieren Sie diese E-Mail einfach.";
  64.  
  65.                                         $betreff = 'Personal WebBase Passwortgenerierung';
  66.  
  67.                                         $mailer = new SecureMailer();
  68.                                         if (($configuration['main_about']['admin_mail'] != '') && (check_email($configuration['main_about']['admin_mail'])))
  69.                                         {
  70.                                                 $mailer->addHeader('From', $configuration['main_about']['admin_mail']);
  71.                                                 $mailer->addHeader('Reply-To', $configuration['main_about']['admin_mail']);
  72.                                         }
  73.  
  74.                                         $mailer->addHeader('X-Mailer', WBUserAgent());
  75.  
  76.                                         if ($mailer->sendMail($mailaddr, $betreff, $mail))
  77.                                         {
  78.                                                 echo 'Ihnen wurde ein neues Passwort per E-Mail zugeschickt.<br><br>Pr&uuml;fen Sie nun Ihr E-Mail-Postfach und aktivieren Sie das neue Passwort mit dem Aktivierungslink, der ebenfalls in der E-Mail enthalten ist.';
  79.                                         }
  80.                                         else
  81.                                         {
  82.                                                 if (function_exists('fehler_melden'))
  83.                                                 {
  84.                                                         fehler_melden($modul, '<b>Mail-Senden fehlgeschlagen!</b><br><br>Das Senden einer E-Mail mit dem Betreff &quot;'.$betreff.'&quot; an &quot;'.$mailaddr.'&quot; ist fehlgeschlagen!');
  85.                                                 }
  86.  
  87.                                                 echo '<form method="POST" action="'.$_SERVER['PHP_SELF'].'">
  88. <input type="hidden" name="modul" value="'.$modul.'">
  89. <input type="hidden" name="seite" value="'.$seite.'">
  90. <input type="hidden" name="mailaddr" value="'.$mailaddr.'">
  91. <input type="hidden" name="sent" value="0">
  92.  
  93. <p><span class="red">Es trat ein Fehler beim E-Mail-Versand auf. Informieren Sie den Administrator &uuml;ber dieses Problem.</span></p>
  94.  
  95. <input type="submit" class="button" onmouseover="this.className=\'button_act\';" onmouseout="this.className=\'button\';" value="Zur&uuml;ck"></form>';
  96.                                         }
  97.                                 }
  98.                         }
  99.                 }
  100.         }
  101.         else
  102.         {
  103.                 echo str_replace('<body', '<body onload="self.focus();document.getElementById(\'mailaddr\').focus();"', $header);
  104.  
  105.                 echo '<h1>'.htmlentities($module_information->caption).'</h1>';
  106.  
  107. echo 'Geben Sie hier Ihre E-Mail-Adresse ein, die Sie bei der Registrierung bei Personal WebBase angegeben haben.
  108. Wenn Sie keine E-Mail-Adresse angegeben haben, k&ouml;nnen Sie kein neues Passwort &uuml;ber dieses
  109. Formular generieren. Kontaktieren Sie in diesem Fall den Administrator.<br><br>
  110.  
  111. <form method="POST" action="'.$_SERVER['PHP_SELF'].'" name="frm">
  112. <input type="hidden" name="modul" value="'.$modul.'">
  113. <input type="hidden" name="seite" value="'.$seite.'">
  114. <input type="hidden" name="sent" value="1">
  115.  
  116. E-Mail-Adresse: <input type="text" class="normal" onmouseover="this.className=\'highlight\';" onmouseout="this.className=\'normal\';" name="mailaddr" id="mailaddr" value=""><br><br>
  117.  
  118. <input type="submit" class="button" onmouseover="this.className=\'button_act\';" onmouseout="this.className=\'button\';" value="Weiter">
  119.  
  120. </form>';
  121.  
  122.         }
  123.  
  124.         echo $footer;
  125. ?>
  126.