PageRenderTime 41ms CodeModel.GetById 15ms RepoModel.GetById 0ms app.codeStats 0ms

/modules/usrmgr/remind.php

http://lansuite.googlecode.com/
PHP | 50 lines | 38 code | 12 blank | 0 comment | 14 complexity | 528d74b2ef5fd2a3b71e1a08f6e538ab MD5 | raw file
Possible License(s): LGPL-3.0, AGPL-1.0, LGPL-2.1
  1. <?php
  2. $dsp->NewContent(t('Passwort vergessen'), t('Mit diesem Modul kannst du dir ein neues Passwort generieren lassen'));
  3. if (!$cfg['sys_internet']) $func->information(t('Diese Funktion ist nur im Internetmodus verfügbar'));
  4. else switch ($_GET['step']) {
  5. case 2: // Email prüfen, Freischaltecode generieren, Email senden
  6. $user_data = $db->qry_first("SELECT username FROM %prefix%user WHERE email = %string%", $_POST['pwr_mail']);
  7. if ($user_data['username'] == "LS_SYSTEM"){
  8. $func->information(t('Für den System-Account darf kein neues Passwort generiert werden'), "index.php?mod=usrmgr&action=pwrecover&step=1");
  9. } else if ($user_data['username']){
  10. $fcode = '';
  11. for ($x=0; $x<=24; $x++) $fcode.=chr(mt_rand(65,90));
  12. $db->qry("UPDATE %prefix%user SET fcode='$fcode' WHERE email = %string%", $_POST['pwr_mail']);
  13. $path = substr($_SERVER['REQUEST_URI'], 0, strpos($_SERVER['REQUEST_URI'], "index.php"));
  14. include_once("modules/mail/class_mail.php");
  15. $mail = new mail();
  16. $mail->create_inet_mail($user_data['username'], $_POST['pwr_mail'], $cfg['usrmgr_pwrecovery_subject'], str_replace("%USERNAME%", $user_data['username'], str_replace("%PATH%", "http://{$_SERVER['SERVER_NAME']}:{$_SERVER['SERVER_PORT']}{$path}index.php?mod=usrmgr&action=pwrecover&step=3&fcode=$fcode", $cfg['usrmgr_pwrecovery_text'])));
  17. $func->confirmation(t('Dir wurde nun eine Freischalte-URL an die angegebene Emailadresse gesendet. Mit dem Aufruf dieser URL wird dir neues Passwort generiert werden.'), "index.php");
  18. } else $func->information(t('Die von dir eigegebene Email existiert nicht in der Datenbank'), "index.php?mod=usrmgr&action=pwrecover&step=1");
  19. break;
  20. case 3: // Freischaltecode prüfen, Passwort generieren, Freischaltcode zurücksetzen
  21. $user_data = $db->qry_first("SELECT fcode FROM %prefix%user WHERE fcode = %string%", $_GET['fcode']);
  22. if (($user_data['fcode']) && ($_GET['fcode'] != '')){
  23. $new_pwd = "";
  24. for ($x=0; $x<=8; $x++) $new_pwd .= chr(mt_rand(65,90));
  25. $db->qry("UPDATE %prefix%user SET password = %string%, fcode = '' WHERE fcode = %string%", md5($new_pwd), $_GET['fcode']);
  26. $func->confirmation(t('Das neue Kennwort wurde erfolgreich generiert.<br>Es lautet:') ."\"<b>$new_pwd</b>\"", "index.php");
  27. } else $func->error(t('Der von dir übermittelte Freischaltecode ist inkorrekt! Es wurde kein neues Kennwort generiert. Bitte prüfe, ob du die URL komplett aus der Benachrichtigungs-Mail kopiert hast.'), "index.php?mod=usrmgr&action=pwrecover&step=1");
  28. break;
  29. default:
  30. $dsp->SetForm("index.php?mod=usrmgr&action=pwrecover&step=2");
  31. $dsp->AddSingleRow(t('Bitte gib die Email-Adresse ein, mit der du dich am System angemeldet hast'));
  32. $dsp->AddTextFieldRow("pwr_mail", t('Deine Email'), $_POST['pwr_mail'], $mail_error);
  33. $dsp->AddFormSubmitRow(t('Abschicken'));
  34. $dsp->AddBackButton("index.php", "usrmgr/pwremind");
  35. break;
  36. }
  37. $dsp->AddContent();
  38. ?>