habe ein ähnliches problem wie Duke, doch noch keine Lösung gefunden, muss dazu sagen, das php für mich noch neuland ist.
habe die session_helper datei in "logindata.inc.php" umbenannt und die funktion "check_user" in 4 Teile aufgeteilt:
das soll feststellen, ob der User ein Admin ist (Typ 'H' ist adminstatus)
von diesen funktionen gibt es 4 stück: hauptadmin, admin, lehrer, schüler
soweit so gut, alle logins zu den gewollten bereichen gehen auch, aber es gibt ein verhehrendes internes sicherheitsproblem, wenn man als lehrer angemeldet ist und in der adressleiste die url für die adminzone eingibt, kommt man auch dahin!
habe schon 2 wochen lang irgentwas ausprobiert, aber es will nicht klappen...
die bedingung sieht wie folgt aus:
und so weiter und so fort....
das include ist deshalb als kommentar, weil sie vorher schon geladen wurde (im hauptframe, diese seite wird im teilframe ausgeführt)
habe echt keine peilung mehr, warum das nicht geht, denn logischerweise dachte ich mir, das wenn NICHT check_userh(...) UND check_usern(..) ist, auch nicht auf die seite kommt...
hoffe, ihr könnt mir helfen
habe die session_helper datei in "logindata.inc.php" umbenannt und die funktion "check_user" in 4 Teile aufgeteilt:
PHP-Code:
function check_userh($name, $pass)
{
$sql="SELECT userID
FROM users
WHERE name='".$name."' AND passwort=MD5('".$pass."') AND typ='H'
LIMIT 1";
$result= mysql_query($sql) or die(mysql_error());
if ( mysql_num_rows($result)==1)
{
$user=mysql_fetch_assoc($result);
return $user['userID'];
}
else
return false;
}
von diesen funktionen gibt es 4 stück: hauptadmin, admin, lehrer, schüler
soweit so gut, alle logins zu den gewollten bereichen gehen auch, aber es gibt ein verhehrendes internes sicherheitsproblem, wenn man als lehrer angemeldet ist und in der adressleiste die url für die adminzone eingibt, kommt man auch dahin!
habe schon 2 wochen lang irgentwas ausprobiert, aber es will nicht klappen...
die bedingung sieht wie folgt aus:
PHP-Code:
session_start();
//include "logindata.inc.php";
if (!logged_in()){
echo "Fehler, Sie sind nicht eingeloggt!";
exit;
}
if (!check_userh($name,$pass) AND !check_usern($name, $pass)){
echo "Fehler, keine Rechte!";
exit;
}else{
echo ' <h2>
<center>
Willkommen im Adminbereich
das include ist deshalb als kommentar, weil sie vorher schon geladen wurde (im hauptframe, diese seite wird im teilframe ausgeführt)
habe echt keine peilung mehr, warum das nicht geht, denn logischerweise dachte ich mir, das wenn NICHT check_userh(...) UND check_usern(..) ist, auch nicht auf die seite kommt...
hoffe, ihr könnt mir helfen
Kommentar