Jetzt kostenlos Anmelden!

KingEli Männlich

weiß wie man Threads erstellt

Beiträge: 187

Geschlecht: Männlich

Wohnort: Waldachtal-Hörschweiler

PHPKIT Version: 1.6.03

1

Mittwoch, 2. April 2008, 23:47

Frage zu folgendem PHP-Code

Hi,

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
  • Zum Seitenanfang
  • Zum Seitenende

philosapiens Männlich

Hilfologe

Beiträge: 657

Geschlecht: Männlich

Wohnort: Berlin

PHPKIT Version: 1.6.1

2

Donnerstag, 3. April 2008, 08:15

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. :S
Leider nutze ich das phpkit immer weniger und bastele mehr Eigenes: ^^
  • Zum Seitenanfang
  • Zum Seitenende

Headless Männlich

... nur noch zur deko

Beiträge: 2 374

Geschlecht: Männlich

Wohnort: Nürnberg

PHPKIT Version: keine

3

Donnerstag, 3. April 2008, 16:43

Das ganze findet in einer Klasse statt! Das heißt also übersetzt.

Der Variablen Bezeichner username der zu dieser Klasse gehört ($this->) wird mit dem Inhalt der Spalte username aus dem Session Array gefüllt!
  • Zum Seitenanfang
  • Zum Seitenende

KingEli Männlich

weiß wie man Threads erstellt

Beiträge: 187

Geschlecht: Männlich

Wohnort: Waldachtal-Hörschweiler

PHPKIT Version: 1.6.03

4

Donnerstag, 3. April 2008, 22:24

Vielen Dank.


Wieder eine Frage. :D
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)
  • Zum Seitenanfang
  • Zum Seitenende

Dirk Kántor Männlich

aká Dooki

Beiträge: 2 074

Geschlecht: Männlich

PHPKIT Version: keine

5

Sonntag, 6. April 2008, 01:27

bedenke bei deinem code folgendes..

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..
  • Zum Seitenanfang
  • Zum Seitenende

KingEli Männlich

weiß wie man Threads erstellt

Beiträge: 187

Geschlecht: Männlich

Wohnort: Waldachtal-Hörschweiler

PHPKIT Version: 1.6.03

6

Sonntag, 6. April 2008, 13:16

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.

Zitat


was du aber nicht bringen kannst ist folgendes:

SET user_status='user' OR user_status='mod'
Aber wie kann ich das machen, so das er auf user, mod, ban prüft?
  • Zum Seitenanfang
  • Zum Seitenende

Dirk Kántor Männlich

aká Dooki

Beiträge: 2 074

Geschlecht: Männlich

PHPKIT Version: keine

7

Sonntag, 6. April 2008, 13:31

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
  • Zum Seitenanfang
  • Zum Seitenende