Modul: Change Password/Passwort ändern

Gesperrt
HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Modul: Change Password/Passwort ändern

Beitrag von HerrB » Di 15. Nov 2005, 22:58

Dieses Modul dient zum Ändern des Passworts durch den Frontendnutzer.

Das Modul ist nur für Contenido V4.6.x ff geeignet. Es ist außerdem "on-the-fly" gecoded, wenn es also nicht auf Anhieb funktioniert - tschuldigung (Bananen-Software). Ich hübsche das Ganze auch nochmal bei Gelegenheit, die CSS-Styles fehlen und die Übersetzung muss man zunächst selbst vornehmen... :wink:

Das Modul muss bei einem Artikel eingesetzt werden, der sich in einer geschützen Kategorie befindet. Alle Frontendnutzer sollten Zugriff auf diese Kategorie haben.

Beschreibung:

Code: Alles auswählen

Change Password 1.1

HerrB, 17.11.2005
Nur Ausgabe:

Code: Alles auswählen

<?php
cInclude("classes", "class.frontend.users.php"); 

$frontendusers = new FrontendUserCollection; 
$frontendusers->select("idclient = '$client' AND username = '".urlencode($auth->auth[uname])."'"); 
if ($frontenduser = $frontendusers->next()) { 
   $idfrontend    = $frontenduser->get("idfrontenduser"); 

   $strMsg = ""; 

   if ($_REQUEST["action"] == "save") { 
      if ($_REQUEST["oldpw"] != "" || $_REQUEST["newpw1"] != "" || $_REQUEST["newpw2"] != "") { 
         if ($_REQUEST["oldpw"] == "") { 
            $strMsg = mi18n("If changing the password please provide the current password."); 
         } else if ($_REQUEST["newpw1"] == "" || $_REQUEST["newpw2"] == "") { 
            $strMsg = mi18n("If changing the password please specify new password and retype the new password to avoid typos."); 
         } else if (md5($_REQUEST["oldpw"]) != $frontenduser->get("password")) { 
            $strMsg = mi18n("Old password is wrong."); 
         } else if ($_REQUEST["newpw1"] != $_REQUEST["newpw2"]) { 
            $strMsg = mi18n("If changing the password the new password and the retyped new password must be equal."); 
         } else if (strlen($_REQUEST["newpw1"]) > 24) { 
             $strMsg = mi18n("If changing the password please specify a new password with 24 characters max.."); 
         } else if (strlen($_REQUEST["newpw1"]) < 6) { 
             $strMsg = mi18n("If changing the password please specify a new password with at least 6 characters."); 
         } 
      } 
  
      if ($strMsg == "" && $_REQUEST["oldpw"] != "") { 
        $frontenduser->set("password", $_REQUEST["newpw1"]); 
        $frontenduser->store(); 
        $strMsg = mi18n("Changes has been saved."); 
      } else { 
        $strMsg = '<font color="#FF0000">'.$strMsg.'</font>'; 
      } 
   } 

   echo '<form name="frmProfile" method="post" action="'.$auth->url().'">',chr(10); 
   echo '  <table class="special" cellspacing="0"> ',chr(10); 
   echo '    <tr>',chr(10); 
   echo '      <td class="detail_headline" colspan="2">'.mi18n("Change Password:").'</td>',chr(10); 
   echo '    </tr>',chr(10); 
   if ($strMsg != "") { 
      echo '    <tr>',chr(10); 
      echo '      <td class="detail_text" colspan="2">'.$strMsg.'</td>',chr(10); 
      echo '    </tr>',chr(10); 
   } 
   echo '    <tr>',chr(10); 
   echo '    <tr>',chr(10); 
   echo '      <td class="detail_text" style="width: 100px;">'.mi18n("Old password:").'</td>',chr(10); 
   echo '      <td class="detail_text"><input name="oldpw" type="password" size="24" maxlength="24"></td>',chr(10); 
   echo '    </tr>',chr(10); 
   echo '    <tr>',chr(10); 
   echo '      <td class="detail_text" style="width: 100px;">'.mi18n("New password:").'</td>',chr(10); 
   echo '      <td class="detail_text"><input name="newpw1" type="password" size="24" maxlength="24"></td>',chr(10); 
   echo '    </tr>',chr(10); 
   echo '    <tr>',chr(10); 
   echo '      <td class="detail_text" style="width: 100px;">'.mi18n("Retype password:").'</td>',chr(10); 
   echo '      <td class="detail_text"><input name="newpw2" type="password" size="24" maxlength="24"></td>',chr(10); 
   echo '    </tr>',chr(10); 
   echo '    <tr>',chr(10); 
   echo '      <td class="detail_text" style="width: 100px;">&nbsp;</td>',chr(10); 
   echo '      <td class="detail_text"><input type="hidden" name="action" value="save"><input class="submit" name="subscribe" type="submit" id="subscribe" value="'.mi18n("OK").'"></td>',chr(10); 
   echo '    </tr>',chr(10); 
   echo '  </table>',chr(10); 
   echo '</form>',chr(10); 
}
?> 
Gruß
HerrB
Zuletzt geändert von HerrB am So 4. Dez 2005, 14:59, insgesamt 4-mal geändert.
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net

halousi
Beiträge: 111
Registriert: Mi 30. Mär 2005, 15:31
Kontaktdaten:

Beitrag von halousi » Do 17. Nov 2005, 14:54

Fatal error: Call to a member function on a non-object in /is/htdocs/25146/www.xxx-xxx.de/cms/contenido/includes/i ... t.php(650) : eval()'d code on line 1117

HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB » Do 17. Nov 2005, 16:05

Tja, als hätte ich es geahnt. Trat nur im Backend oder wenn das Modul in ungeschützten Bereichen verwendet wird, auf.

Korrigiert und Code aktualisiert. Danke fürs Testen.

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net

halousi
Beiträge: 111
Registriert: Mi 30. Mär 2005, 15:31
Kontaktdaten:

Beitrag von halousi » Fr 18. Nov 2005, 09:16

perfekt, danke!

Beleuchtfix
Beiträge: 1082
Registriert: Di 22. Jul 2003, 10:14
Wohnort: Hessen
Kontaktdaten:

Beitrag von Beleuchtfix » So 4. Dez 2005, 13:42

Hallo HerrB
Kann es sein, dass jetzt im Modulkopf Version 1.1 stehen müsste und ein neues Datum zu verwenden ist? (Nur damit ich nicht bei den Versionen durcheinanderkomme :-)

Gruß
Florian

HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB » So 4. Dez 2005, 15:00

Ja, hast Recht, geändert.

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net

blau1
Beiträge: 24
Registriert: Do 13. Jul 2006, 10:14
Wohnort: Mainz
Kontaktdaten:

Auch Klasse

Beitrag von blau1 » Do 1. Feb 2007, 19:46

Für das Modul auch ein Dankeschön.

Funktioniert super!

le grand
Beiträge: 16
Registriert: Fr 25. Mai 2007, 09:51
Kontaktdaten:

Beitrag von le grand » Fr 22. Jun 2007, 13:43

Hallo HerrB,

hier nochmal mein Anliegen!

Ich habe das Modul der Beispielseite angepasst und noch folgendes Problem! Beim klick im Frontend auf go schließt er das Modul ohne einte aktion durchgeführt zu haben. Java Script ist aktiviert. Was ist in dieser

Code: Alles auswählen

echo '      <td><a href="javascript:document.forms[0].submit(); " style="color: #9d9ea2">Go</a>&nbsp;<a href="javascript:document.forms[0].submit();"><img src="images/navi_pfeil_rechts.gif" alt="Go" title="Go" border="0"/></a></td>',chr(10);
Zeile des gesamten Moduls noch falsch? Ich bin halt ein Newbie was php und contenido Module anbetrifft. Hier nochmal das gesamte Modul incl. der o.g. Zeile.

Code: Alles auswählen

<?php
/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname  :      Passwort ändern
* Author(s)   :     HerrB
* Copyright   :     HerrB
* Created     :     31.03.2006
************************************************/

cInclude("classes", "class.frontend.users.php");

$frontendusers = new FrontendUserCollection;
$frontendusers->select("idclient = '$client' AND username = '".urlencode($auth->auth[uname])."'");
if ($frontenduser = $frontendusers->next()) {
   $idfrontend    = $frontenduser->get("idfrontenduser");

   $strMsg = "";

   if ($_REQUEST["action"] == "save") {
      if ($_REQUEST["oldpw"] != "" || $_REQUEST["newpw1"] != "" || $_REQUEST["newpw2"] != "") {
         if ($_REQUEST["oldpw"] == "") {
            $strMsg = mi18n("Bitte geben Sie Ihr altes Kennwort ein.");
         } else if ($_REQUEST["newpw1"] == "" || $_REQUEST["newpw2"] == "") {
            $strMsg = mi18n("Bitte achten Sie bei der Kennworteingabe und der Wiederholung auf Tippfehler.");
         } else if (md5($_REQUEST["oldpw"]) != $frontenduser->get("password")) {
            $strMsg = mi18n("Das alte Kennwort ist nicht korrekt!");
         } else if ($_REQUEST["newpw1"] != $_REQUEST["newpw2"]) {
            $strMsg = mi18n("Das neue Kennwort und die Kennwortwiederholung stimmen nicht überein!");
         } else if (strlen($_REQUEST["newpw1"]) > 24) {
             $strMsg = mi18n("Ihr neues Kennwort ist zu lang! Bitte verwenden Sie max. 24 Zeichen.");
         } else if (strlen($_REQUEST["newpw1"]) < 6) {
             $strMsg = mi18n("Ihr neues Kennwort ist zu kurz! Bitte verwenden Sie mind. 6 Zeichen.");
         }
      }
 
      if ($strMsg == "" && $_REQUEST["oldpw"] != "") {
        $frontenduser->set("password", $_REQUEST["newpw1"]);
        $frontenduser->store();
        $strMsg = mi18n("Änderungen wurden gespeichert");
      } else {
        $strMsg = '<font color="#FF0000">'.$strMsg.'</font>';
      }
   }

   echo '<div id="chngpassbox">',chr(10);
   echo '<form name="frmProfile" method="post" action="'.$auth->url().'">',chr(10);
   echo '  <table cellspacing="0"> ',chr(10);
   echo '    <tr>',chr(10);
   echo '      <td colspan="2" style="color: #FF6E2B";>'.mi18n("Kennwort ändern:").'</td>',chr(10);
   echo '    </tr>',chr(10);
   if ($strMsg != "") {
      echo '    <tr>',chr(10);
      echo '      <td colspan="2">'.$strMsg.'</td>',chr(10);
      echo '    </tr>',chr(10);
   }
   echo '    <tr>',chr(10);
   echo '    <tr>',chr(10);
   echo '      <td style="width: 150px;" style="color: #9d9ea2";>'.mi18n("altes Kennwort:").'</td>',chr(10);
   echo '      <td class="detail_text"><input name="oldpw" type="password" size="15" maxlength="24"></td>',chr(10);
   echo '    </tr>',chr(10);
   echo '    <tr>',chr(10);
   echo '      <td style="width: 150px;" style="color: #9d9ea2";>'.mi18n("neues Kennwort:").'</td>',chr(10);
   echo '      <td><input name="newpw1" type="password" size="15" maxlength="24"></td>',chr(10);
   echo '    </tr>',chr(10);
   echo '    <tr>',chr(10);
   echo '      <td style="width: 150px;" style="color: #9d9ea2";>'.mi18n("Kennwort wiederholen:").'</td>',chr(10);
   echo '      <td><input name="newpw2" type="password" size="15" maxlength="24"></td>',chr(10);
   echo '    </tr>',chr(10);
   echo '    <tr>',chr(10);
   echo '      <td style="width: 150px;">&nbsp;</td>',chr(10);
echo '      <td><a href="javascript:document.forms[0].submit(); " style="color: #9d9ea2">Go</a>&nbsp;<a href="javascript:document.forms[0].submit();"><img src="images/navi_pfeil_rechts.gif" alt="Go" title="Go" border="0"/></a></td>',chr(10);
   echo '    </tr>',chr(10);
   echo '  </table>',chr(10);
   echo '</form>',chr(10);
   echo '</div>',chr(10);
}
?>
Wer seine Ansichten mit anderen Waffen als denen des Geistes verteidigt, von dem muss ich voraussetzen, dass ihm die Waffen des Geistes ausgegangen sind.

HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB » Fr 22. Jun 2007, 14:14

Das hidden field action muss schon noch drin vorkommen...

Code: Alles auswählen

<input type="hidden" name="action" value="save">
Einfach vor dem <a href... ergänzen.

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net

le grand
Beiträge: 16
Registriert: Fr 25. Mai 2007, 09:51
Kontaktdaten:

Beitrag von le grand » Mo 25. Jun 2007, 07:06

Hallo HerrB

erstmal danke für die schnelle Hilfe, doch leider funzt das auch noch nicht! Nach bestätigen des Go links bekomme ich immer die Suchergebnisse (nachfolgenden Pfad)
http://server/ordner/cms/front_content.php?idcat=40
geöffnet.
Vielleicht noch eine idee???

kann es sein das ich die action in der folgenden zeile noch abändern muss und wenn ja wie?

Code: Alles auswählen

echo '<form name="frmProfile" method="post" action="'.$auth->url().'">',chr(10);
Gruss
Le Grand
Wer seine Ansichten mit anderen Waffen als denen des Geistes verteidigt, von dem muss ich voraussetzen, dass ihm die Waffen des Geistes ausgegangen sind.

HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB » Mo 25. Jun 2007, 16:01

Das liegt daran, dass Du offensichtlich mehrere Formulare auf einer Seite hast (ein nicht unwesentliches Detail) und das Modul immer das erste absendet. Verwende statt

Code: Alles auswählen

document.forms[0].submit();

Code: Alles auswählen

document.frmProfile.submit();
Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net

le grand
Beiträge: 16
Registriert: Fr 25. Mai 2007, 09:51
Kontaktdaten:

Beitrag von le grand » Di 26. Jun 2007, 10:06

Hi HerrB!

wärst du FrauB würde ich Dir jetzt ein Bussy geben;) so muss Dir ein fettes DANKESCHÖN reichen!

So einfach kann Tennis sein wenn man es spielen kann, denn folgende Variante hatte ich auch schon vergebens getestet nur leider war die null noch zuviel;)

Code: Alles auswählen

document.frmProfile[0].submit();
Nochmal Danke!

gruss
Le Grand
Wer seine Ansichten mit anderen Waffen als denen des Geistes verteidigt, von dem muss ich voraussetzen, dass ihm die Waffen des Geistes ausgegangen sind.

HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB » Di 26. Jun 2007, 12:15

:oops:

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net

malsdgtac
Beiträge: 717
Registriert: Fr 12. Mär 2004, 15:50
Kontaktdaten:

Beitrag von malsdgtac » Fr 13. Jul 2007, 10:11

Hallo HerrB,

wieder mal ein super nettes Teil von dir. Hat auf Anhieb geklappt, danke dafür.

Gesperrt