Problem mit "Rollenbasierte Sicherheit"

caboom

Mitglied
Hi Leute, ich hab n kleines Prob. mit der Rollenbasierten Sicherheit.

Und zwar hab ich alles soweit gut hinbekommen.

Ich habe mir in mysql ne Tabelle angelegt und mir meine benutzerdaten eingetragen,
nun ich kann mich auch auf meiner Seite einloggen, aber wenn ich meine Daten ändern möchte, also über die page direkt, nicht über die DB dann macht er das nicht, ich müsste praktisch jeden user per Hand ändern wenn derjenige z.B. seine email Adresse wechselt.

Hier mal ein Link zu der Seite

http://jbwprogrammers.jb.ohost.de/andre/templates/awo/index.php

Ich denke mal das der fehler in der benutzerdaten.php zu finden ist, hier der Link zur benutzerdaten.txt damit Ihr euch den Quellcode anschauen könnt.

http://jbwprogrammers.jb.ohost.de/andre/templates/awo/benutzerdaten.txt

Ich hoffe Ihr könnt mein Problem lösen, wäre euch sehr dankbar.

PS: ich habe ein Test Konto angelegt über das Ihr euch einloggen könnt, damit Ihr euch das ganze mal anschauen könnt.

Loginname: user
Passwort: test
 
Hi,

ich denke mal die die SQL-Anweisung enthält einen Fehler.

Du schreibst :

"... Vorname = '".$_POST['vorname']."' Nachname = '".$_POST'nachname']."' ..."

es muss aber nach jedem Wert ($_POST['xxx']) ein Komma gesetzt werden :

"... Vorname = '".$_POST['vorname']."', Nachname = '".$_POST['nachname']."', ..."
 
Hm...das hab ich jetzt gemacht, aber geht immernoch nicht...

kannst ja mal schauen, habs auch in der benutzerdaten.txt geändert...

sonst hier noch mal der code

HTML:
$sql = "UPDATE benutzerdaten
	SET
	Vorname = '".$_POST['vorname']."',
	Nachname = '".$_POST['nachname']."',
	Email = '".$_POST['email']."',
	Kennwort = '".MD5($_POST['kennwort'])."',
	WHERE Id = '".$_SESSION[user_id]."',";

Ich muss das doch nur in dem teil den ich hier grad gepostet hab ändern, oder?
 
Hi,

Komma zu viel ....

Tipp: formatier das Query so das es übersichtlich wir. Und mach einfach ein mysql_error() ans Ende um zu sehen was dir MySQL sagt

PHP:
$sql = "UPDATE 
			benutzerdaten
    	SET
	    	Vorname = '".$_POST['vorname']."',
	    	Nachname = '".$_POST['nachname']."',
	    	Email = '".$_POST['email']."',
	    	Kennwort = '".MD5($_POST['kennwort'])."',
    	WHERE 
		Id = '".$_SESSION[user_id]."'";
		
mysql_query($sql) OR die(mysql_error());
 
Zuletzt bearbeitet:
neOhype ich hab das jetzt mal so gemacht, die Fehlermeldung lautet wie folgt



You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE Id = '1'' at line 7


hm....


in Reihe 7 finde ic nur kein WHERE Id = '1' .....



kann es sein das der Fehler in dieser Zeile steckt?

WHERE
Id = '".$_SESSION[ user_id ]."'";

das das vll.

WHERE
Id = '".$_SESSION[ ' user_id ' ]."'";

heissen muss?

und das ich das '".$_SESSION[ user_id ]."'"; auch in den anderen .php files in
in '".$_SESSION[ ' user_id ' ]."'"; abändern muss?
 
Zuletzt bearbeitet:
[...]die Fehlermeldung lautet wie folgt

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE Id = '1'' at line 7
[...]

Da ist auf den ersten Blick ein Komma zu viel drin - und zwar vor der WHERE-Klausel, also hinter dem Kennwort:

statt:
PHP:
...
Kennwort = '".MD5($_POST['kennwort'])."',
WHERE ...

wohl eher:
PHP:
...
Kennwort = '".MD5($_POST['kennwort'])."'
WHERE ...
da nach dem Kennwort ja kein weiteres Feld kommt...
 
Zurück