Avatar billede mr-xmas Nybegynder
07. april 2006 - 18:18 Der er 3 kommentarer og
1 løsning

ingen adgangs tjekker ens rank

Hejsa

har en brugersystem som køre med sessions men mangler en kode der går ind og tjekker om brugeren har til at stå "1" i en collone der hedder "admin"

håber i forstår mig
tak på forhånd :D
Avatar billede pvtsommer Nybegynder
07. april 2006 - 19:33 #1
Hvis din session hedder $_SESSION[user_id] gør du følgende

$dump = mysql_query("SELECT rang FROM users WHERE id='$_SESSION[user_id]' LIMIT 1");
$viewRang = mysql_fetch_assoc($dump);

if($viewRang[admin] != 1) {

  echo 'Du er ikke administrator så smut kaffeøre</body></html>';
  exit;
} else {
// Admin face...

echo 'Hej admin!';

}
Avatar billede pvtsommer Nybegynder
07. april 2006 - 19:37 #2
Eller du kunne lave en funktion til det samme?

function protect(){

  $userid = $_SESSION[user_id];
  $dump = mysql_query("SELECT rang FROM users WHERE id='$_SESSION[user_id]' LIMIT 1");
  $viewRang = mysql_fetch_assoc($dump);

  if($viewRang[rang] != "1") {
    // Sender brugeren til forsiden...
    // Du kan eventuelt bare skrive http://domæne.dk/index.php hvis du vil det
    header("Location: http://" . $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']) . "");
 
  exit; // Hvis overstående fejler lukker dne uanset hvad for adgangen
  }

}


Så skal du på ALLE sider bare skrive protect(); i toppen (såfremt at filen protect() ligger i bliver inkluderet i toppen ;)

Jeg har gerne følgende:

include("include.php"); // Her i ligger alt fra database m.v. og så protect funktionen.
protect(); // Og siden er beskyttet.
Avatar billede mr-xmas Nybegynder
08. april 2006 - 11:25 #3
smid et svar brugte den første af dem :D
Avatar billede pvtsommer Nybegynder
08. april 2006 - 17:58 #4
:) - Glad for du kunne bruge det!

Du kan også - for at spare lidt på databasekræfterne lave en $_SESSION med en MD5-hashed 1-tal når man logger ind med rangen.

Dvs når du logger ind, tilføjer den lige en session med værdien md5("1");

og så udskifter du

$dump = mysql_query("SELECT rang FROM users WHERE id='$_SESSION[user_id]' LIMIT 1");
$viewRang = mysql_fetch_assoc($dump);

if($viewRang[admin] != 1) {

med

if($_SESSION[rang] != md5(1)) {

Den kan kun være hurtigere, og MD5-hashed gør at folk ikke lige kan regne ud at det er et simpelt 1-tal, såfremt man kan ændre det på den ene eller anden måde.. ;)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester