Hey Leute, ich hoffe ihr könnt mir ein wenig helfen
Ich habe mir ein kleines LoginSystem geschrieben welches mit Session arbeitet, also bei jedem Login wird bei jedem User eine Session mit den Variablen:
ID
Nickname
Vorname
Name
Email
Homepage
undso weiter halt regsitriert. Bei der Benutzerregistration bleiben diese Werte teilweise leer.
Meine Frage ist nun, wie ein User dann direkt sein Wert verändern kann den er registriert hat.
Also seinen Namen, Email etc verändern kann.
Ich hoffe ihr könnt mir ein wenig unter die Arme greifen
Der User kann nicht selbst auf die Werte in den $_SESSION-Variablen zugreifen, das was du machst klingt leicht komisch, könntest du das vllt. noch mehr erklären, eventuell mit Code-Beispielen.
// Datenbankverbindung aufbauen
$connectionid = mysql_connect (“localhost”, “******”, “******”);
if (!mysql_select_db ("******", $connectionid))
{
die (“Keine Verbindung zur Datenbank”);
}
Wenn du auf eine Datenbank zurückgreifst lassen sich die dortigen Datensätze bearbeiten, indem du dem Benutzer ein Formular anbietest, das dann nach dem Absenden ein UPDATE ausführt…
Du erstellst einfach ein Formular mit dem entsprechenden Feld für das was du ändern möchtest und noch ein Feld mit einer Angabe zum prüfen. Also am Bsp. Nickname, machst du ein Feld wo der alte Nickname (oder irgendetwas anderes wie z.B.Name) eingetragen wird und ein Feld wo der neue Nickname eingetragen wird. Zum ändern in der DB benutzt du dann folgendes (als Beispiel auch hier Nickname):
[code]<?php
// Aufbau der Datenbankverbindung
$connectionid = mysql_connect („localhost“, „BENUTZER“, „PASSWORT“);
if (!mysql_select_db („DATENBANKNAME“, $connectionid))
{
die („Keine Verbindung zur Datenbank“);
}
$sql = „UPDATE benutzerdaten SET Nickname = '“ . $_POST[„nickname“] . „’ WHERE Nickname = '“ . $_POST[„alternickname“] .„'“;
mysql_query($sql);
Die Daten aus MySQL in die Session zu schreiben halte ich für wenig sinnvoll, schließlich fragst du die Daten jedes mal ab und kannst dann auch die Daten in $data direkt nutzen.
Aber mal was anderes, im PhP myAdmin bekomm ich einen Fehler wenn ich mich einloggen will
Die Sitzung konnte nicht ohne Fehler gestartet werden, schauen Sie bitte in das Fehlerprokoll von PHP und/oder Ihres Webservers und konfigurieren Sie PHP entsprechend (session.save_path, Schreibrechte).
Danke das klappt soweit, nur ist mir aufgefallen, dass die sache noch einen hacken hat.
Beim Login registriere ich das Passwort nicht als Session. Wäre es ein sicherheitsrisiko dieses zu tun?
ja, wäre es.,. vertrauliche Daten ob verschlüsselt oder unverschlüsselt ( was nie sein sollte bei passwörtern ) haben nichts in sessions oder cookies, etc. verloren.
Okay, habe ich mir schon fast gedacht, aber wie kann ich dann eine Passwort ändern dunktion nutzen?
Im moment habe ich das bei anderen sachen so gelöst, das ein formular einmal den alten werd sendet und den neuen (wobei der alte automatisch geschickt wird). dann wird in der DB gesucht wo das alte stand und das neue eingefügt. und das basierte halt auf session basis
Du könntest es einfach so lösen…
Formular mit den Feldern altespasswort und neuespasswort
dann hasht du das ganze in MD5 - dann SELECTest du das alte aus der Datenbank, vergleichst row->altespasswort mit $POST[altespasswort] - wenn die gleich sind UPDATE auf neuespasswort, sonst die(Ne, das geht so net!);