probleme mit der abfrage der userrechte und login

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Benutzeravatar
Shadowman
Mitglied
Beiträge: 170
Registriert: 16.12.2003 19:01
Wohnort: Vaterstetten

probleme mit der abfrage der userrechte und login

Beitrag von Shadowman »

hm, wie der titel schon sagt habe ich da ein paar probs,
und zwar habe ich das prinzip mit dem online status nich ganz begriffen, und wann jemand eingeloggt ist.
genügt diese abfrage, ob jeamdn ein admin ist:

Code: Alles auswählen

if($userdata['user_level']==1)
und ob dies hier auch das richtige code schnipsel ist, um abzufrgane ob jeamnd eingeloggt ist:

Code: Alles auswählen

if($userdata['session_logged_in']!=-1)
ich hoffe es stimmt so, denn ich hatte gerade massive probleme, das er mich einmal ein ein eigenes admin pannel gelassen hat, obwohl ich ausgeloggt war, dann hat er mich als ausgeloggt angezeigt, obwohl ich im forum eingeloggt war, etc...
Proud Admin & Webmaster of http://www.broxx-com.de
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Re: probleme mit der abfrage der userrechte und login

Beitrag von Pyramide »

Versuch's mal so:

Code: Alles auswählen

if($userdata['session_logged_in']) {
  if($userdata['user_level'] == ADMIN) {
    //admin
  }
  elseif($userdata['user_level'] == MOD) {
    //moderator
  }
  else {
    //normaler user
  }
}
else {
  //gast
}
Benutzeravatar
Shadowman
Mitglied
Beiträge: 170
Registriert: 16.12.2003 19:01
Wohnort: Vaterstetten

Beitrag von Shadowman »

uh danke, endlich gehts wieda.
hab nen richtigen schock bekommen, als ich nich eingeloggt war, aber news posten konnte etc...

*EDIT*
irgendwie stimmt was nicht. das hier ist mein code:

Code: Alles auswählen

<?php    
// schaun ob der benutzer eingeloggt ist
if($userdata['session_logged_in']!=-1)
{
echo "<center>"; 
echo "<font class='Head'>";
echo $userdata['username']."<br>";
if($userdata['user_level'] == ADMIN) { echo $lang['Status']['Admin']; }
elseif($userdata['user_level'] == MOD) { echo $lang['Status']['Moderator']; }
else { echo $lang['Status']['Normaluser']; }
echo "<br>";
echo "<a href='/forum/login.php?logout=true&sid=".$userdata['session_id']."'>[Logout]</a>";
echo "</font>";
echo "</center>";
}
else
{ 
echo "<center>"; 
echo "<font class='Head'>";            
echo "Sie sind nicht eingeloggt!<br>";
echo "<a href='/forum/login.php'>[Login]</a>";
echo "</font></center>";
} 
?>
doch nun erscheint das auf der seite:
Anonymous
Sie sind ein normaler User
[Logout]
das wundert mich rigendwie. was stimmt da nicht, muss ich da noch oben

Code: Alles auswählen

AND $userdata['user_id'] != -1 
hin??
Proud Admin & Webmaster of http://www.broxx-com.de
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Beitrag von Pyramide »

Nimm doch das != -1 bei session_logged_in mal raus. Vermutlich ist die Variable nicht -1, sondern 0, leer oder gar nicht gesetzt, wenn man ausgelogt ist. Wenn du einfach nur if($userdata['session_logged_in']) schreibst, werden diese Fälle alle korrekt als false erkannt.
Benutzeravatar
Shadowman
Mitglied
Beiträge: 170
Registriert: 16.12.2003 19:01
Wohnort: Vaterstetten

Beitrag von Shadowman »

jetzt funzt es wieder, danke :D
Proud Admin & Webmaster of http://www.broxx-com.de
Antworten

Zurück zu „Coding & Technik“