login  Naam:   Wachtwoord: 
Registreer je!
 Forum

[BITWISE] 1 cijfer lager werkt wel (Opgelost)

Offline shibble - 23/01/2008 02:30 (laatste wijziging 23/01/2008 02:31)
Avatar van shibbleMySQL interesse Halloallemaal,

sorry voor de onderwerp naam ikw ist niet echt wat goeds:o.
Ik zit met het volgende probleem, ik ben nu met bitwise me leden administratie aan het beschermen alleen nu het volgende:

in me tabel "users" heb ik de record "shibble" bij username en een veld genaamd "rank", als er bij rank 7 is ingevuld dan laad me pagina wel gewoon maar als er 8 is ingevuld dan niet:s wete iemand hoe dat komt?

rank function (zit in security class)
  1. function rank()
  2. {
  3. if(isset($_COOKIE['userid']) || isset($_COOKIE['hash']))
  4. {
  5. $query = mysql_query('SELECT rank FROM users WHERE id = "'.$_COOKIE['userid'].'" AND hash = "'.$_COOKIE['hash'].'"') or die(mysql_error());
  6. $select = mysql_fetch_assoc($query);
  7.  
  8. return $select['rank'];
  9. }
  10. }


edit.php
  1. if(($rank & ADMIN_USERS) == ADMIN_USERS)
  2. {
  3. // Hier de pagina
  4. }


in me config.php:
  1. define('ADMIN_SITEMEMBER', 1);
  2. define('ADMIN_NEWS', 2);
  3. define('ADMIN_USERS', 4);
  4. define('ADMIN_ABOUT', 8);
  5. define('ADMINISTRATOR', 16);
  6.  
  7. $rank = $secure->rank();

3 antwoorden

Gesponsorde links
Offline Grayen - 23/01/2008 08:13
Avatar van Grayen PHP ver gevorderde Bij de if moet je && (and) plaatsen in plaats van || (or) want je gebruikt vervolgens beide variable en niet een van beide.

  1. function rank()
  2. {
  3. if(isset($_COOKIE['userid']) && isset($_COOKIE['hash']))
  4. {
  5. $query = mysql_query('SELECT rank FROM users WHERE id = "'.$_COOKIE['userid'].'" AND hash = "'.$_COOKIE['hash'].'"') or die(mysql_error());
  6. $select = mysql_fetch_assoc($query);
  7.  
  8. return $select['rank'];
  9. }
  10. }


Maar wat betreft dat niet de pagina zien bij 8 maar wel bij 7 komt doordat je gebruikt maakt van die bitwise operator:

$a & $b And Bits that are set in both $a and $b are set.

Dus zou je 7 hebben, dan zou het getal 4, 2, 1 erin staan, dus heb je de eerste 3 rechten, maar heb je de waarde 8, dan heb je alleen het recht ADMIN_ABOUT.

Hier staat een script van FangorN die het allemaal nog wat uitgebreider uitlegd:

http://www.site...&id=85
Offline marten - 23/01/2008 08:42
Avatar van marten Beheerder http://wiki.php...applicatie

Hier staat een goede tutorial, misschien ten overvloede....
Offline shibble - 23/01/2008 10:50
Avatar van shibble MySQL interesse Owh jah neeh het licht aan mij ik ben zo dom nja ik was ook moe maar das geen ecxuus he:p
maar het klopt wel sorry jongens mijn fout!
maar zowiezo bedankt ik heb er wat van opgestoken van die artikels;D!
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.256s