27. november 2006 - 18:14Der er
48 kommentarer og 1 løsning
Angående sessions
Hejsa Eksperter.
Er stadig på begynder stadiet af PHP og leger lidt med sessions. Mit spørgsmål er så om jeg kan få en side til at gå ind og tjekke session[admin] om den står til 0, 1 eller 2 i en db hvor den så gerne skulle vise det der har med 0 og 1 og 2 at gøre. f.eks 2 er Admin, 1 er Co-admin og 0 er alm bruger.
Håber i forstår mit spørgsmål og evt. kan hjælpe mig?
Mit bud er dette her,hvis jeg forstår dig korrekt. <? if($_SESSION[admin] == "1"){ ?> // vis admin menu <? }else if($_SESSION[admin] == "2"){ ?> //vis co-admin <? }else{ ?> Du har ikke adgang til admin sektionen! <? } ?>
Måske dette her: $res = mysql_query("select * from TABEL where admin='$_SESSION['admin']'"); // finder det i tabellen hvor admin er den værdi der er sat i session
$admin_session = $_SESSION['admin']; $res = mysql_query("select * from TABEL where admin='$admin_session'"); // finder det i tabellen hvor admin er den værdi der er sat i session
ARGH ved ikke rigtigt hvordan jeg kan forklare det anderledes.. Altså jens12 har fat i nået af det rigtige til siderne, men $_SESSION[admin]; skal jo gå ind og se i DB for den enkelte bruger om han enten har 0,1 eller 2 stående i den der hedder admin i brugere.
$_SESSION['admin']; kan ikke selv gå ind og se hvad brugerens admin er. Du skal bruge den jeg skrev til sidst:
$admin_session = $_SESSION['admin']; $res = mysql_query("select * from brugere where brugernavn='$brugernavn' admin='$admin_session'"); $num = mysql_num_rows($res);
if ($num == 0) { // brugeren har ikke den adgang der er i $_SESSION['admin']; } else { // brugeren har adgang }
brugernavn='$brugernavn' er så hvor du finder brugernavnet hvor du skal se hvad admin er sat til. Jeg ved ikke hvad den hedder i din tabel.
Den ser om brugeren har den adgang der er sat i $_SESSION['admin'];
Hvis du bare vil se hvilken adgang brugeren har, skal du bruge: $res = mysql_query("select admin from brugere brugernavn='$brugernavn'"); $row = mysql_fetch_assoc($res); $admin_database = $row['admin']; // admin værdien sat i databasen
$admin_database indeholder så den adgang brugeren har i databasen
Sådan her ser koderne ud: $admin_session = $_SESSION['admin']; $res = mysql_query("SELECT * FROM brugere WHERE admin='$admin_session'"); //
<? if($_SESSION[admin] == "1"){ ?> // vis admin menu <? }else if($_SESSION[admin] == "2"){ ?> //vis co-admin <? }else{ ?> Du har ikke adgang til admin sektionen! <? } ?>
Men jeg mangler sikkert et eller andet ?? Siden den ikke giver nået som helst
Jeg vil ha det sådan på den side jeg har lavet. At hvis brugeren har nr 2 i admin- så skal den vise et billede som linker til en admin side. hvis brugeren har 1 skal den linke og vise billede fra Co-Admin siden og hvis der er 0 eller hvis der ingenting står skal den ikke vise nået ??
I din "side" fil, fjerner du: $admin_session = $_SESSION['admin']; $res = mysql_query("SELECT * brugere WHERE userNick='$userNick' admin='$admin_session'"); $num = mysql_num_rows($res);
Altså jeg har valgt jeg er 2 i admin og der burde jo være kommet et billede plus et link til admin siden, men den er ikke kommet, det er det jeg mener med uden resultat
Nu har jeg ikke gidet læse hele tråden, men jeg formoder at du har en session ved navn 'admin' og du skal ved hjælp af if statements finde ud af hvad brugeren skal have adgang til. Værdierne hentes fra databasen..
Hvis fejlen ikke var der før, ligger den i det du ændrede her: $res = mysql_query("SELECT userNick, userId, admin FROM brugere WHERE userNick='".$nick."' AND userPass='".$pass."'");
Du er sikker på du har et felt der hedder admin i tabellen brugere?
Og du har fjernet: $admin_session = $_SESSION['admin']; $res = mysql_query("SELECT * brugere WHERE userNick='$userNick' admin='$admin_session'"); $num = mysql_num_rows($res);
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.