Subversion Repositories personal-webbase

Rev

Rev 12 | Blame | Compare with Previous | 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. if ($modulueberschrift == '') $modulueberschrift = $modul;
  9. echo '<h1>'.my_htmlentities($modulueberschrift).'</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 ".$mysql_zugangsdaten['praefix']."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 `".$mysql_zugangsdaten['praefix']."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 `".$mysql_zugangsdaten['praefix']."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.           $header = '';
  68.                   if (($konfiguration['main_ueber']['admin_mail'] != '') && (check_email($konfiguration['main_ueber']['admin_mail'])))
  69.                   {
  70.                     $header .= 'From: ' . $konfiguration['main_ueber']['admin_mail'] . "\r\n";
  71.                     $header .= 'Reply-To: ' . $konfiguration['main_ueber']['admin_mail'] . "\r\n";
  72.                   }
  73.                   $header .= 'X-Mailer: PHP/' . phpversion();
  74.  
  75.           if (@mail($mailaddr, $betreff, $mail, $header))
  76.           {
  77.             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.';
  78.           }
  79.           else
  80.           {
  81.             if (function_exists('fehler_melden'))
  82.             {
  83.               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!');
  84.             }
  85.  
  86.             echo '<form method="POST" action="'.$_SERVER['PHP_SELF'].'">
  87. <input type="hidden" name="modul" value="'.$modul.'">
  88. <input type="hidden" name="seite" value="'.$seite.'">
  89. <input type="hidden" name="mailaddr" value="'.$mailaddr.'">
  90. <input type="hidden" name="sent" value="0">
  91.  
  92. <font color="#FF0000">Es trat ein Fehler beim E-Mail-Versand auf. Informieren Sie den Administrator &uuml;ber dieses Problem.</font><br><br>
  93.  
  94. <input type="submit" class="button" onmouseover="this.className=\'button_act\';" onmouseout="this.className=\'button\';" value="Zur&uuml;ck"></form>';
  95.           }
  96.         }
  97.       }
  98.     }
  99.   }
  100.   else
  101.   {
  102.  
  103.   echo str_replace('<body', '<body onload="self.focus();document.getElementById(\'mailaddr\').focus();"', $header);
  104.  
  105. if ($modulueberschrift == '') $modulueberschrift = $modul;
  106.   echo '<h1>'.my_htmlentities($modulueberschrift).'</h1>';
  107.  
  108. echo 'Geben Sie hier Ihre E-Mail-Adresse ein, die Sie bei der Registrierung bei Personal WebBase angegeben haben.
  109. Wenn Sie keine E-Mail-Adresse angegeben haben, k&ouml;nnen Sie kein neues Passwort &uuml;ber dieses
  110. Formular generieren. Kontaktieren Sie in diesem Fall den Administrator.<br><br>
  111.  
  112. <form method="POST" action="'.$_SERVER['PHP_SELF'].'" name="frm">
  113. <input type="hidden" name="modul" value="'.$modul.'">
  114. <input type="hidden" name="seite" value="'.$seite.'">
  115. <input type="hidden" name="sent" value="1">
  116.  
  117. E-Mail-Adresse: <input type="text" class="normal" onmouseover="this.className=\'highlight\';" onmouseout="this.className=\'normal\';" name="mailaddr" id="mailaddr" value=""><br><br>
  118.  
  119. <input type="submit" class="button" onmouseover="this.className=\'button_act\';" onmouseout="this.className=\'button\';" value="Weiter">
  120.  
  121. </form>';
  122.  
  123.   }
  124.  
  125.   echo $footer;
  126. ?>
  127.