Bitte um Registriererweiterung zum Loginscript Tutorial

i-mehl

Gesperrt
Bitte um Userändernerweiterung zum Loginscript Tutorial

Ich bitte um den Code des ein eingeloggter User seinen Namen, Passwort, etc. ändern kann. Hier ist der Link zum Tut


Also bitte um Hilfe, wäre sehr dankbar!


MfG i-mehl

EDIT:
Bitte um Antwort, oder will keiner
 
Zuletzt bearbeitet:
Eigentlich solltest du dir Gedanken machen wie man sowas umsetzen könnte und bei Problem hier nachfragen.
Nicht aber sollst du hier nach einem fertigen php-Script verlangen.

Zum Problem:
Du musst nur eine Datei erstellen, die die Daten des eingeloggten Users aus der Datenbankausliest und in ein <Form> einfügt, dieses Form wird dann abgeschickt und editiert die Daten des Users ...

PHP:
<?

if(isset($_POST['submit']) && $_POST['submit'] == "ändern")
 {
 if(mysql_query("UPDATE usertabelle SET username = '$_POST[username], password = '$_POST[password]' WHERE ID = '$_POST[ID]' LIMIT 1")) echo 'Daten geändert!';
 }
else
 {
 $get = mysql_fetch_assoc(mysql_query("SELECT * FROM usertabelle WHERE ID = '$_SESSION[ID]' LIMIT 1"));

 echo '
 <form method="POST" action="'.$PHP_SELF.'">
 <input type="hidden" name="ID" value="'.$get['ID'].'">
 <input type="text" name="username" value="'.$get['username'].'">
 <input type="passwort" name="password" value="'.$get['password'].'">
 <input type="submit" name="submit" value="ändern">
 </form>';
}
?>

Wär so meine Idee ...
 
Zuletzt bearbeitet:
Hi!

Interessanter Beitrag - nur weiss ich nicht genau wie ich das umsetzen kann. Ich habe ganz normal die Datenbankabfrage - Nick, Passwort, E-Mail - und ein entsprechendes Formular erstellt. Die werden auch dann als Information angezeigt.

Hier die Eingabefelder:
Code:
<tr bgcolor="<? echo $bg2 ?>">
		<td class="link2" height="20px" width="140px">Altes Passwort:</td>	
		<td width="300px"><input type="text" size="30" maxlength="30" name="$old_ident_pass" <? if(isset($_REQUEST[$old_ident_pass])){ 
    echo("value=\"".$_REQUEST[$old_ident_pass]."\""); } ?> class="input"> </td>	
	</tr>	
	<tr bgcolor="<? echo $bg2 ?>">
		<td class="link2" height="20px" width="140px">Neues Password:</td>
		<td width="300px"><input type="text" size="30" maxlength="30" name="ident_pass" <? if(isset($_REQUEST[ident_pass])){ 
    echo("value=\"".$_REQUEST[ident_pass]."\""); } ?> class="input"></td>		
	</tr>		
	<tr bgcolor="<? echo $bg2 ?>">
		<td class="link2" height="20px" width="140px">Wiederholen:</td>	
		<td width="300px"><input type="text" size="30" maxlength="80" name="ident_pass2" value="<? echo "$ident_pass2"; ?>" class="input"></td>	
	</tr>

..und der Eintrag in die DB:

PHP:
$sql = "SELECT ident_nick, ident_pass, ident_mail FROM inf_mem_ident"; 

$old_ident_pass = $ident_pass;
$mod_nick = $ident_nick;

if(isset($_REQUEST[$old_ident_pass])){     
    if(strlen($_REQUEST[$old_ident_pass]) == $mod_nick  && strlen($_REQUEST[$mod_nick]) == $ident_nick){ 
    }else
{
if($_REQUEST[ident_pass] == $ident_pass2){
   $updatepass = "UPDATE inf_mem_ident SET ident_pass = MD5('".addslashes(htmlspecialchars($_POST[ident_pass]))."')";
   echo $updatepass. "<br><span style=\"color: #FFCC00;\">Das Passwort wurde erfolgreich geändert!</span>"; 
   mysql_query($updatepass, $verbindung) or die(mysql_error());
   mail("$ident_mail", "$betreff", "$userdaten", "Geändert am: $modified");
    }}

Ich möchte nun die Abfrage so abändern, das man das alte Passwort und seinen Nick eingeben muss damit die Datenbank automatisch erkennt welcher User ändern möchte und somit die neuen Daten eintragen kann!?

Hoffentlich habe ich mich verständlich ausgedrückt! :(

thx for help
ice
 
PHP:
$sql = "UPDATE tabelle SET pass = '$_POST[newpass]' WHERE nick = '$_POST[nick]'";

Wobei ich denke es ist besser wenn du die ID des Users nimmst um im Query fesrtzulegen welcher DB Eintrag geändert wird ....

btw:
Code:
<tr>
 <td>Altes Passwort:</td>	
 <td><input type="text" size="30" maxlength="30" name="old_ident_pass" value="<?=$_POST['old_ident_pass']?>"></td>	</tr>

Ich denke das ist besser , schafft ein wenig mehr Übersicht :>
 
Zuletzt bearbeitet:
Zurück