Seite 1 von 1

Kennwortänderung für Frontenduser

Verfasst: Fr 14. Apr 2006, 17:18
von ReneFFM
Hallo,

ich habe hier ein kleines Modul für eine Vereinsseite geschrieben, welche es Mitgliedern ermöglichen soll, ihr Kennwort selber zu ändern.

Meine Frage ist, da ich relativ neu in der Materie bin, kann man das in dieser Form verwenden, oder gibt es dabei Problematiken ???

Code: Alles auswählen

<?php

$nname = urlencode($auth->auth['uname']);
$surl = $sess->url("front_content.php?idcat=$idcat&idart=$idart&parentid=$parentid");
    
/* Kennwor neu schreiben */
function neuschreiben($nname, $surl, $npw)
{
  $write_new_pw = "UPDATE `mfc_frontendusers` SET `password`='$npw' WHERE `username` = '$nname'";
  mysql_query($write_new_pw);
}
    
/* Ausgabe des Formulars in HTML */
function formular($surl)
{
  echo "
  <form method=\"post\" action=\"$surl\">
  <table border=\"0\">
  <tr><td>Neues Passwort eingeben</td></tr>
  <tr><td><input type=\"password\" name=\"new_pw1\" value=\"\"></td></tr>
  <tr><td>Bestätigung</td></tr>
  <tr><td><input type=\"password\" name=\"new_pw2\" value=\"\"></td></tr>
  </table>
  <input type=\"submit\" name=\"pw_chg\" value=\"Aendern\">
  </form><br>";
}


/* Funktionsausführung */
if($_REQUEST['pw_chg'] == 'Aendern')
{
  if($_REQUEST['new_pw1'] == $_REQUEST['new_pw2'])
  {
    $npw = md5($_REQUEST['new_pw1']);
	neuschreiben($nname, $surl, $npw);
	print "Vielen Dank. Ihre Daten wurden erfolgreich geändert und sind beim nächsten Login aktiv.";		    
  }
  else
  {
    print "Sie haben zwei nicht übereinstimmende Kennwörter eingegeben.<br>Bitte geben Sie zwei gleiche Kennwörter ein.";
    formular($surl);
  }
}
else
{
  formular($surl);
}

    
?>
Vielen Dank im voraus....

Verfasst: Sa 15. Apr 2006, 00:00
von HerrB
Nun, wie soll ich sagen... Unter Module 4.6 gibt es das Change Password-Modul.

Größere Probleme sehe ich ansonsten nicht, Du hättest in der Abfrage auch einfach $auth->auth["uid"] nehmen können, weniger aufwendig (statt über den Namen).

Stilistisch wäre es natürlich schön, wenn die Frontend User-Klassen verwendet werden würden, aber so geht es auch...

Gruß
HerrB