Privileg-System

Needa

Mitglied
Hallo,
basierend auf dem Loginscript von Worka habe ich das Script erweitert, also mit Rechten. Vom Prinzip her klappt es, hier ein Beispiel:
PHP:
<?php
if ($_SESSION["user_privileg"] == "admin")
{ echo "<a href='../news/newsadd.php'>News adden</a>"; }
elseif ($_SESSION["user_privileg"] == "member")
{ echo "Hui.. du bist schon Member?!"; }
elseif ($_SESSION["user_privileg"] == "trail")
{ echo "Du bist Trail, du bist Trail :>"; }
else { echo "bla"; }
?>
Das ist soweit auch kein Problem, nur wenn ich auf die im Script stehende newsadd.php linke, scheint es der checkuseradmin.php, in der überprüft wird, dass nur Admins auf die Seite zugreifen, egal zu sein, ob nun Admin, Member oder nichts von beiden!
checkuseradmin.php: (nach meinen Vorstellungen :P)
PHP:
<?php 
session_start (); 
if (!isset ($_SESSION["user_id"]) and ($_SESSION["user_privileg"]) == "admin") 
{ 
  header ("Location: form.php"); 
  exit();
  
} 
?>
Ich habe mir schon überlegt, dass sich das == "admin" auf beide Sessions bezieht, aber ohne das user_id würde es ja sowieso nicht gehen...
Hat jemand nen Plan, wie man das umgehen kann, oder wie die checkuseradmin.php richtig heißen müsste, damit es geht?
 
Hallo.

Da ist dir offenbar ein kleiner Denkfehler unterlaufen. :rolleyes: ;)
Schau dir deinen Code hier mal genauer an.

PHP:
 if (!isset ($_SESSION["user_id"]) and ($_SESSION["user_privileg"]) == "admin")
{
}


Schon mal probiert, dich als Admin anzumelden?!
Das geht nämlich nicht, weil du nur die Admin aussperren tust!
Du hast nämlich

PHP:
($_SESSION["user_privileg"]) == "admin"

geschrieben. Es müsste aber folgendermaßen geschrieben werden:

PHP:
($_SESSION["user_privileg"])!= "admin"

Also "wenn $_SESSION['user_privileg'] nicht 'admin'" ist.
Das sollte dann dein Problem lösen.
 
Zuletzt bearbeitet:
.. oh ^^ trotzdem danke!
EDIT: so nochmals danke, es klappt mit dem Code-Schnipsel, nur wenn ich mich nun mit einer Membersession einlogge und dann auf direkt auf die newsadd.php gehe, zeigt er den 404er Error an. Kann man das ändern? Eigentlich sollte er den Member dann weiterleiten..
 
Zuletzt bearbeitet:
Das kann ja nur heissen, dass du mit deinen Dateinamen etwas durcheinander gekommen bist.
Vielleicht solltest du die mal überprüfen?
Gibt es die Datei "form.php" - die im selben Verzeichnis (also news/form.php) liegen müsste - wirklich gibt?
Du solltest schon wissen, wo du deine User hin schickst! ;)
 
Zurück