Seite 1 von 1

Modul: Forgot Password/Passwort vergessen

Verfasst: Sa 3. Dez 2005, 19:17
von HerrB
Ein weiteres Modul für V4.6.x. Es ist noch nicht ganz perfekt (und wie ich es gerade schreibe, in der Form ungetestet), aber vielleicht hilft es schon mal. Über einen Test würde ich mich freuen.

Das Modul stellt ein Formular zur Verfügung, in dem man seinen Frontend-Nutzer-Account eintragen und ein neues Kennwort zusenden lassen kann. Das neue Kennwort ist ein Zufallskennwort, deswegen sollte auch das Modul Change Password auf der Webseite Verwendung finden.

Außerdem muss der Nutzername des Frontend-Nutzers eine E-Mail-Adresse sein (das ist automatisch dann der Fall, wenn die autom. Eintragung über die Newsletter-Module erfolgt).

Beschreibung:

Code: Alles auswählen

Modul: Forgot Password V0.91
Author: HerrB, 04.12.2005
Eingabe:

Code: Alles auswählen

echo '        <table cellspacing="0" cellpadding="5" border="0" width="100%">',chr(10);
echo '           <tr valign="top">',chr(10);
echo '              <td>'.mi18n("Sender e-mail:").'</td>',chr(10);
echo '              <td><input type="text" name="CMS_VAR[1]" value="CMS_VALUE[1]" size="30"></td>',chr(10);
echo '           </tr>',chr(10);
echo '        </table>',chr(10);
Ausgabe:

Code: Alles auswählen

<?php
   $arrSettings = array();
   $arrSettings["SenderEMail"]     = "CMS_VALUE[1]";

   if ($auth->auth["uid"] == "nobody" && $_REQUEST["action"] == "helpme" && $_REQUEST["myusername"] != "") {
      cInclude("classes", "class.frontend.users.php");
      cInclude("classes", "class.phpmailer.php");

      $strMessage = "";
      $username = strtolower($_REQUEST["myusername"]);
      if (isValidMail($username)) {
         $frontendusers = new FrontendUserCollection;

         $frontendusers->resetQuery();
         $frontendusers->setWhere("username", $username);
         $frontendusers->setWhere("idclient", $client);
         $frontendusers->query();

         if ($frontenduser = $frontendusers->next()) {
            $pwd = substr(md5(rand()),0,8); // Generating password
            $frontenduser->set("password", $pwd);
            $frontenduser->store();

            $body = mi18n("txtMailPassword")."\n\n".mi18n("Password:")." ".$pwd."\n\n".mi18n("Click here to login: ").
                    $cfgClient[$client]["path"]["htmlpath"]."front_content.php?changelang=".$lang;

            $mail           = new phpmailer();
            $mail->From     = $arrSettings["SenderEMail"];
            $mail->FromName = $arrSettings["SenderEMail"];
            $mail->AddAddress($username);
            $mail->Mailer   = "mail";
            $mail->Subject  = mi18n("Website account");
            $mail->Body     = $body;

            if($mail->Send()) {
               $strMessage .= mi18n("The new password has been sent to your mail account.");
            } else {
               $strMessage .= "<strong>".mi18n("Sorry, there was a problem sending you the password by mail. Please ask the webmaster for help.")."</strong>";
            }
         } else {
            $strMessage .= mi18n("Sorry, your account hasn't been found. Please ask the webmaster for help.");
         }
      } else {
         $strMessage .= mi18n("Please provide your username which should be your e-mail address.");
      }
      echo '  <div style="text-align: center;">',chr(10);
      echo '    <table class="special" cellspacing="0">',chr(10);
      echo '      <tr>',chr(10);
      echo '        <td class="detail_headline">'.mi18n("Forgot password:").'</td>',chr(10);
      echo '      </tr>',chr(10);
      echo '      <tr>',chr(10);
      echo '        <td class="detail_text">'.$strMessage.'</td>',chr(10);
      echo '      </tr>',chr(10);
      echo '    </table>&nbsp;',chr(10);
      echo '  </div>',chr(10);
   } else {
      echo '  <div style="text-align: center;">',chr(10);
      echo '  <form name="frmHelpMe" method="post" action="front_content.php?idcatart='.$idcatart.'">',chr(10);
      echo '    <input type="hidden" name="action" value="helpme">',chr(10);
      echo '    <table class="special" cellspacing="0">',chr(10);
      echo '      <tr>',chr(10);
      echo '        <td class="detail_headline" colspan="2">'.mi18n("Forgot password:").'</td>',chr(10);
      echo '      </tr>',chr(10);
      echo '      <tr>',chr(10);
      echo '        <td class="detail_text" style="width: 100px;">'.mi18n("Account:").'</td>',chr(10);
      echo '        <td class="detail_text"><input type="input" name="myusername" value="" size="40" maxsize="200"></td>',chr(10);
      echo '      </tr>',chr(10);
      echo '        <td class="detail_text" style="width: 100px;">&nbsp;</td>',chr(10);
      echo '        <td class="detail_text" style="text-align: center;"><input class="submit" type="submit" name="reset" value="'.mi18n("Send new password").'"></td>',chr(10);
      echo '      </tr>',chr(10);
      echo '    </table>&nbsp;',chr(10);
      echo '  </form>',chr(10);
      echo '  </div>',chr(10);
   }
?>
Gruß
HerrB

Verfasst: So 4. Dez 2005, 13:45
von Beleuchtfix
Hallo HerrB
Bei der Ausgabe leuchtet die rote Laterne :-(

Wahrscheinlich muss noch hinter das letzte Echo ein }
Gruß
Florian

Verfasst: So 4. Dez 2005, 15:00
von HerrB
Yep, danke. War auf die Schnelle... :wink:

Gruß
HerrB

Verfasst: Mi 29. Mär 2006, 12:42
von vize
Hallo HerrB

habe es gerade bei mir eingebaut in Version 4.6.8 funktioniert einwandfrei

Gruß

Vize

Verfasst: Do 24. Aug 2006, 16:41
von MediaMuchacho
Außerdem muss der Nutzername des Frontend-Nutzers eine E-Mail-Adresse sein (das ist automatisch dann der Fall, wenn die autom. Eintragung über die Newsletter-Module erfolgt).
Ich bin am suchen und suchen *gg* aber der kleine Hinweis gibt Hoffnung dass wenigstens einer weiß wo man zumindest Hinweise auf die Umsetzung dazu gibt. Wo findet man diese automatische Eintragung über Newslettermodule für Frontenduser denn?

Hab es selbst versucht sie anzupassen aber ich krieg irgendwie das Modul nicht dazu die FEGroups zu lesen...

Verfasst: Do 24. Aug 2006, 18:28
von HerrB
Standard-Newsletter-Module, aktuelle (fehlerbereinigte) Version siehe Signatur.

Gruß
HerrB

Gutes Modul...

Verfasst: Do 1. Feb 2007, 18:50
von blau1
Ich wollte nur mal Danke sagen, das Modul funktioniert super!