Frage zu folgendem PHP-Code
Hi,
kann mir bitte einer beim verstehen dieses Php Codes helfen?
Also dieses "$_SESSION['username']" , überprüft den eingegebenen namen in der Datenbank, oder?
Wenn ich jetzt in der Datenbank anstatt "username", user_name habe.
Muß ich da alle zwei in user_name ändern oder nur den hinter Session?
M f G KingEli
kann mir bitte einer beim verstehen dieses Php Codes helfen?
|
|
PHP-Quelltext |
1 |
$this->username = $_SESSION['username'];
|
Also dieses "$_SESSION['username']" , überprüft den eingegebenen namen in der Datenbank, oder?
Wenn ich jetzt in der Datenbank anstatt "username", user_name habe.
Muß ich da alle zwei in user_name ändern oder nur den hinter Session?
M f G KingEli
Hi,
also meinem eingeschränkten Halbwissen nach würde ich behaupten das der Satz in deutsch wie folgt lauten müßte:
Wenn die Variabel $this mit dem Bezeichner username aufgerufen wird, dann hole den Inhalt aus der Datenbanktabelle, die in der aktuellen Session verwendet wird und dort aus der Spalte username.
Ergo würde ich sagen es müßte ausreichen den zweien Teil anzupassen. Wenn Du jedoch in den php-Dateien, welche der Parser anspricht (ich nehme mal an, das die Codezeile aus der lib_parse.php stammt.) nach beispielsweise $irgendwas[user_name] arbeiten läßt, dann müßte also auch der erste Teil angepasst werden.
Ich hoffe das ist ihnaltlich nicht nur richtig, sondern auch verständlich.
also meinem eingeschränkten Halbwissen nach würde ich behaupten das der Satz in deutsch wie folgt lauten müßte:
Wenn die Variabel $this mit dem Bezeichner username aufgerufen wird, dann hole den Inhalt aus der Datenbanktabelle, die in der aktuellen Session verwendet wird und dort aus der Spalte username.
Ergo würde ich sagen es müßte ausreichen den zweien Teil anzupassen. Wenn Du jedoch in den php-Dateien, welche der Parser anspricht (ich nehme mal an, das die Codezeile aus der lib_parse.php stammt.) nach beispielsweise $irgendwas[user_name] arbeiten läßt, dann müßte also auch der erste Teil angepasst werden.
Ich hoffe das ist ihnaltlich nicht nur richtig, sondern auch verständlich.
Vielen Dank.
Wieder eine Frage.
Verstanden hab ich diesen Code, ist ja garnicht so schwer wie ich dachte, glaub ich zumindest.
Orginal Code:
Geänderter Code, um die Daten von der phpkit Datenbank zu bekommen:
Bei diesem weiß ich nicht was ich wie ändern soll, so das er auf user und mod oder admin prüft.
Wieder eine Frage.
Verstanden hab ich diesen Code, ist ja garnicht so schwer wie ich dachte, glaub ich zumindest.
Orginal Code:
|
|
PHP-Quelltext |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
function adminUser($user) {
$admin_status = mysql_query('SELECT admin FROM ' . SQL_PREFIX . 'users WHERE username=\'' . mysql_real_escape_string($user) . '\'');
if(mysql_num_rows($admin_status) == 0)
return 'no_such_user';
$is = mysql_fetch_assoc($admin_status);
if($is['admin'] == 1) {
mysql_query('UPDATE ' . SQL_PREFIX . 'users SET admin=0 WHERE username=\'' . mysql_real_escape_string($user) . '\'');
return 'false';
} else {
mysql_query('UPDATE ' . SQL_PREFIX . 'users SET admin=1 WHERE username=\'' . mysql_real_escape_string($user) . '\'');
return 'true';
}
}
|
Geänderter Code, um die Daten von der phpkit Datenbank zu bekommen:
|
|
PHP-Quelltext |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
function adminUser($user) {
$admin_status = mysql_query('SELECT user_status FROM ' . SQL_PREFIX . 'user WHERE user_name=\'' . mysql_real_escape_string($user) . '\'');
if(mysql_num_rows($admin_status) == 0)
return 'no_such_user';
$is = mysql_fetch_assoc($admin_status);
if($is['admin'] == 1) {
mysql_query('UPDATE ' . SQL_PREFIX . 'user SET user_status='user' OR user_status='mod' WHERE user_name=\'' . mysql_real_escape_string($user) . '\'');
return 'false';
} else {
mysql_query('UPDATE ' . SQL_PREFIX . 'user SET user_status='admin' WHERE user_name=\'' . mysql_real_escape_string($user) . '\'');
return 'true';
}
}
|
Bei diesem weiß ich nicht was ich wie ändern soll, so das er auf user und mod oder admin prüft.
|
|
PHP-Quelltext |
1 2 |
if(mysql_num_rows($admin_status) == 0)
if($is['admin'] == 1)
|
bedenke bei deinem code folgendes..
die funktion mysql_query() deren inhalt du mit ' angibts..
falsch:
richtig:
also da die mysql abfrage innerhalb deiner ' steht, muss der wert den du bei user_status abfragst (welcher ja auch in ' stehen muss) anstatt nur in ' besser in \' gesetzt werden.. da deine oberen ' sonst das ende des inhaltes der mysql_query() funktion andeuten.. siehe hinten wo nach dem ' die klammer zu geht: ');
zu deinem code..
soll er (laut deinem code) wenn bei admin einen 1 als wert kommt den userstatus auf user setzen, oder soll er doch auf admin setzen? dann solltest das mit dem user und admin umkehren..
was du aber nicht bringen kannst ist folgendes:
SET user_status='user' OR user_status='mod'
soll mysql sich entscheiden ob es den userstatus auf user oder mod setzen soll?
das is ja keine abfrage mehr sondern eine eingabe in die DB.. da kannste sowas knicken..
du musst festlegen was mysql machen soll.. entweder das eine ODER das andere..
die funktion mysql_query() deren inhalt du mit ' angibts..
falsch:
|
|
PHP-Quelltext |
1 |
mysql_query('UPDATE ' . SQL_PREFIX . 'user SET user_status='admin' ...........');
|
richtig:
|
|
PHP-Quelltext |
1 |
mysql_query('UPDATE ' . SQL_PREFIX . 'user SET user_status=\'admin\' ...........');
|
also da die mysql abfrage innerhalb deiner ' steht, muss der wert den du bei user_status abfragst (welcher ja auch in ' stehen muss) anstatt nur in ' besser in \' gesetzt werden.. da deine oberen ' sonst das ende des inhaltes der mysql_query() funktion andeuten.. siehe hinten wo nach dem ' die klammer zu geht: ');
zu deinem code..
soll er (laut deinem code) wenn bei admin einen 1 als wert kommt den userstatus auf user setzen, oder soll er doch auf admin setzen? dann solltest das mit dem user und admin umkehren..
was du aber nicht bringen kannst ist folgendes:
SET user_status='user' OR user_status='mod'
soll mysql sich entscheiden ob es den userstatus auf user oder mod setzen soll?
das is ja keine abfrage mehr sondern eine eingabe in die DB.. da kannste sowas knicken..
du musst festlegen was mysql machen soll.. entweder das eine ODER das andere..
Oh man is das kompliziert.
Er soll wenn Admin 1 auf Admin setzen.
Ja aber eigenlich soll er ja nicht dieses false true benutzen sondern aus der Kit Datenbank den user_status auslesen.
Also wenn in user_status admin steht, dann bekommt er Adminrechte.
Wenn aber user, mod oder ban steht dann keine Adminrechte.
Er soll wenn Admin 1 auf Admin setzen.
Ja aber eigenlich soll er ja nicht dieses false true benutzen sondern aus der Kit Datenbank den user_status auslesen.
Also wenn in user_status admin steht, dann bekommt er Adminrechte.
Wenn aber user, mod oder ban steht dann keine Adminrechte.
Aber wie kann ich das machen, so das er auf user, mod, ban prüft?
Zitat
was du aber nicht bringen kannst ist folgendes:
SET user_status='user' OR user_status='mod'
prüfen tut man mit einer SELECT * FROM abfrage.. aber nicht mit UPDATE..
wenn du prüfen willst ob jemand mod,user oder ban ist, musst dies vorher tun..
aber diese abfragen sind doch nicht von einem phpkit oder? bzw einer datenbank-tabelle des phpkits..
oben fragst du den user mit namen $user ab und unten erneuerst (update) du den user mit namen $user
wenn du prüfen willst ob jemand mod,user oder ban ist, musst dies vorher tun..
aber diese abfragen sind doch nicht von einem phpkit oder? bzw einer datenbank-tabelle des phpkits..
oben fragst du den user mit namen $user ab und unten erneuerst (update) du den user mit namen $user
Ähnliche Themen
-
Web | Allgemein »-
Seite nur im iframe sehbar
(24. März 2008, 22:49)
-
alte Versionen [1.6.03|1.6.1|1.6.4] »-
Userinfo Daten
(29. Februar 2008, 12:44)
-
alte Versionen [1.6.03|1.6.1|1.6.4] »-
html-Code in Signatur
(23. Februar 2008, 00:36)
-
alte Versionen [1.6.03|1.6.1|1.6.4] »-
Sub-Kategorien auch als Navbox ?
(28. Dezember 2007, 20:04)



