Antworten auf deine Fragen:
Neues Thema erstellen

PHP authlevel Abfrage

S

simonzie

Guest

Hallo,

ich habe mal ne Frage, ich habe ein Online Game das bestimmt jeder kennt, Xnova .
Mein problem ist das die authlevelabfrage für den Admiin nicht zu funktionieren scheint.
Ich habe eine index.php in dem Ordner Admin wo das Authlevel wie folgt abgefragt wird:

PHP:
if ( $user['authlevel'] >= 3 and in_array ($user['id'],$Adminerlaubt) ) {

        $BodyTPL = gettemplate('admin/acp_body');
        $page = parsetemplate($BodyTPL, $parse);
        display($page, $lang['acp'], false);
} else {
    AdminMessage( $lang['sys_noalloaw'], $lang['sys_noaccess'] );
}

In der MySql Datenbank hat der Admin das Level 3 , jedoch kann ich nur mit meiner User ID 1 in den Admin bereich er lässt keinen anderen dem ich über das Controll Panel Rechte gebe in diesen Bereich. Könnt ihr mir vlt helfen woran es liegen könnte ?


Ich danke euch im Vorraus.

MFG Simonzie
 

Duddle

Posting-Frequenz: 14µHz

AW: PHP authlevel Abfrage

Vermutung: $Adminerlaubt ist falsch deklariert.
Ansatz: Debuggen, also alle Variablen an geeigneten Stellen ausgeben lassen, um den Fehler einzugrenzen.


Duddle
 
S

simonzie

Guest

AW: PHP authlevel Abfrage

sorry aber bin neuling in php wie meinst du das genau ?
eine art echo? wie mach ich das bzw. wie kann ich mich belesen wie sowas gemacht wird ?
 

holgermerz

Nicht mehr ganz neu hier

AW: PHP authlevel Abfrage

Lass dir mal mit echo $Adminerlaubt; oder print_r ($Adminerlaubt); den Wert von dieser Variablen ausgeben. Diese muss den Wert 1 haben. Sonst geht nix. Zeig mal das Array von $Adminerlaubt. Evtl. ist das falsch.
 
S

simonzie

Guest

AW: PHP authlevel Abfrage

Wenn ich es mit pront_r mach kriege ich folgende meldung auf der index :

Array ( [0] => 1 )
 

Duddle

Posting-Frequenz: 14µHz

AW: PHP authlevel Abfrage

Vermutung bestätigt :) Nur die Nutzer mit id 1 sind als Admins erlaubt, was ja genau deiner Aussage entspricht.

Die Frage ist nun, wo $Adminerlaubt festgelegt wird. Falls das im gleichen Script vorher manuell passiert, kannst du die erlaubten Nutzer-IDs dort mit eintragen. Wahrscheinlicher bei einem gut entworfenen System ist aber, dass es in irgendeiner Oberfläche modifizierbar ist. Ergo: Dokumentation oder Code lesen.


Duddle
 

Chriss1987

me.drinkCoffee();

AW: PHP authlevel Abfrage

Hi,

was steht denn in $user['authlevel']? Vielleicht ist dort etwas falsch? Hast du dir mal die User-ID ausgeben lassen? Vielleicht ist dort was falsch deklariert worden? Wo werden $user und $Adminerlaubt deklariert?

Schöne Grüße aus dem Sauerland!
Chriss

Edit: Duddle war schneller^^ ich sollte nicht so viel quatschen, leiber mehr Kaffee trinken zum wach werden und mich auf meine Arbeit konzentrieren... ;) :p
 
S

simonzie

Guest

AW: PHP authlevel Abfrage

Im selben script wird das nicht formuliert, das was ich im ersten Post geschrieben habe ist so ziemlich alles was überhaupt in der index.php steht. Ich hab es schon versucht zurück zu verfolgen aber hab bis jetzt nocht nicht gefunden wo du Variable Adminerlaubt definiert wird. Ich konnte mir das schon fast denken weil mich dieses ($user['id'],$Adminerlaubt)

sehr skeptisch gemacht hat.Das sind tausende PHP Dateien und wenn die jemand anders
geschrieben hat ist es immer sehr schwer nachzuvollziehen.
Vlt noch eine Idee wie ich die Abfrage der ID ändern könnte? Evtl.über eine Abfrage des Authlevels in der DB
 

Chriss1987

me.drinkCoffee();

AW: PHP authlevel Abfrage

Hi,

in der index.php müssten doch wenigstens noch ein include oder require oder so stehen, sonst hätte $Adminerlaubt nicht den von dir genannten Wert! Dann könntest du den include's dieser Welt folgen und dich auf die abenteuerliche Suche machen... ;)

Welchen Editor benutzt du? Mit Notepad++ kann ich z.B. in allen Dateien eines Verzeichnisses suchen (oder in allen offenen oder ...). So könntest du prüfen, wo die $Adminerlaubt-Variable zugewiesen wird und welche Routine dafür verantwortlich ist.

Schöne Grüße aus dem Sauerland!
Chriss
 
S

simonzie

Guest

AW: PHP authlevel Abfrage

Ich habs gefunden, hab es grad getestet und es funktioniert, ich finde diese Variante zwar reichlich unüberlegt aber naja, im Admin Bereich kann ich User X Admin rechte geben und muss es jetzt immer in der Common.php die ID des neuen Admins mit hinzufügen. In der Common.php hab ich grad folgedes gefunden:

$Adminerlaubt = array ('1');
und jetzt funzt es.

Ich danke für eure Hilfe.
 

Chriss1987

me.drinkCoffee();

AW: PHP authlevel Abfrage

Hi,

das kann aber nicht der richtige Weg sein, jedes Mal, eine .php-Datei zu editieren! An die Stelle der Zuweisung könntest du auch einfach eine DB-Abfrage einrichten und das Array automatisiert mit den Werten aus der DB füllen, z.B. mit:

PHP:
$query = 'SELECT id FROM usertabelle WHERE admin=1';
$result = mysql_query($query) or die("Anfrage fehlgeschlagen: " . mysql_error());

$Adminerlaubt = array();
while ($row = mysql_fetch_array($result, MYSQL_ASSOC))
{
    $adminerlaubt[] = $row[id];
}
(dort fehlt noch der Verbindungsaufbau usw...)

Schöne Grüße aus dem Sauerland!
Chriss
 

Duddle

Posting-Frequenz: 14µHz

AW: PHP authlevel Abfrage

Wenn es ein `admin`-Feld gäbe, bräuchte man ja überhaupt nicht mehr $Adminerlaubt. Mein Vermutung liegt auf Fehlentwurf.


Duddle
 

Curanai

Aktives Mitglied

AW: PHP authlevel Abfrage

Ich habe persönlich mit einem "Zusatzfeld" je Benutzer, inhaltlich mit einem serialize()-Array (darin befinden sich mit einem Text-Key die Befugnisse auf 0 bzw. 1 Basis), sehr gute Erfahrungen gemacht. Aber Achtung: Quotes sind bei unserialize() ein Genickbruch unter Linux (Windows stört es nicht) ...
 

Chriss1987

me.drinkCoffee();

AW: PHP authlevel Abfrage

[...] im Admin Bereich kann ich User X Admin rechte geben [...]

Wenn es ein `admin`-Feld gäbe, bräuchte man ja überhaupt nicht mehr $Adminerlaubt. Mein Vermutung liegt auf Fehlentwurf.[...]

Hatte es so verstanden, dass man im Adminbereich das Konfigurieren kann und dann müssen die Daten ja auch irgendwo gespeichert werden und die Methode mit dem zusätzlichen Array könnte man auffassen als Einsparung von weiteren SQL-Anfragen, aber da der TO noch nicht alles mitgeteilt hat und meine Glaskugel Visio 3000 noch nicht geliefert wurde, kann auch deine Aussage zutreffen! ;) Generell stimme ich dir zu: Fehlentwurf... ;)

Schöne Grüße aus dem Sauerland!
Chriss
 
S

simonzie

Guest

AW: PHP authlevel Abfrage

Ja an sich ist es nicht die erfüllung das ich dort noch im Adminbereich und in der PHP Datei das ändern muss, das ist irgendwie komisch geschrieben der fragt es in der index.php ab dann gibt es eine indexa.php und eine indexb.php und überall steht die selbe abfrage. Versteh ich nicht ganz. Erstmal ein Großes Danke für die Hilfe, ich versuch das mal was Chriss1987 geschrieben hat, hab noch nicht genau eine Ahnung wie aber ich versuchs , wenn nicht meld ich mich nochmal. Muss ich die alte Abfrage komplett entfernen ?oder kann ich nebenher laufen lassen?
 

Curanai

Aktives Mitglied

AW: PHP authlevel Abfrage

Mein Vorschlag: Bevor Du diese entfernst und Dir letztendlich auch nicht soooo sicher bist, was Du dort tust, würde ich diese parallel in Betrieb lassen ... die Entnahme kannst Du durchaus später vornehmen, wenn Du "sattelfest" bist.
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.614
Beiträge
1.538.351
Mitglieder
67.525
Neuestes Mitglied
mgtaucher
Oben