Jan2k Skrevet 10. april 2012 Skrevet 10. april 2012 Hvordan kan jeg gjøre det best mulig for å få mulighet til å vise admin og medlem samtidig? Vet ikke helt hvordan jeg skal gjøre det med admin. Kan jeg bruke elseif flere ganger? <?php if(!empty($_SESSION['LoggedIn']) && !empty($_SESSION['Username'])) { ?> Medlem } <?PHP if(!empty($_SESSION['LoggedIn']) && !empty($_SESSION['Admin'])) { ?> Admin <?php } elseif(!empty($_POST['username']) && !empty($_POST['password'])) { $username = mysql_real_escape_string($_POST['username']); $password = md5(mysql_real_escape_string($_POST['password'])); $checklogin = mysql_query("SELECT * FROM users WHERE Username = '".$username."' AND Password = '".$password."'"); if(mysql_num_rows($checklogin) == 1) { $row = mysql_fetch_array($checklogin); $email = $row['EmailAddress']; $_SESSION['Username'] = $username; $_SESSION['EmailAddress'] = $email; $_SESSION['LoggedIn'] = 1; echo "<h1>Suksess</h1>"; echo "<meta http-equiv='refresh' content='=2;index.php' />"; } else { echo "<h1>Feil</h1>"; } } else { }?>
Thomas. Skrevet 10. april 2012 Skrevet 10. april 2012 Du trenger ikke bruke elseif. Du kan gjøre noe ala dette: // Logget inn if($_SESSION['LoggedInn']) { if($_SESSION['Admin']) { // Admin } if($_SESSION['Username']) { // Medlem } } // Ikke logget inn else { // Logg inn } Når du logger inn som admin setter du både Username og Admin session, hvis en vanlig bruker logger inn setter du kun Username session'n. Anbefaler ikke bruke $_SESSION['Admin'] som en betingelse for at du er admin. Bruk heller et felt i brukerdatabasen din, f.eks 0 = vanlig bruker, 1 = admin. Også da sjekke brukeren som er logget inn sin info, om feltet er 1 = hvis innhold for admin.
Jan2k Skrevet 11. april 2012 Forfatter Skrevet 11. april 2012 Tusen takk! Om jeg bruker $_SESSION['Admin'] blir det en sikkerhetssvakhet da?
Gjest Skrevet 12. april 2012 Skrevet 12. april 2012 Du setter en session logged_in og der kan du bruke array til det eller objekt som en hel session. Altså du lagerer enten et objekt eller array i en session med brukernavn + isloggedin + rank (om det er bruker eller admin). Slipper du alle dine if / else if/ else
Hayer Skrevet 13. april 2012 Skrevet 13. april 2012 Evt. lagre userid i session og spørre databasen etter "rank" eller privilegier hver gang det trengs er jo også en mulighet.
Jan2k Skrevet 13. april 2012 Forfatter Skrevet 13. april 2012 Har sett litt på privilegier.. Jeg må sørge for at hver gang noen registrerer seg så lagres de automatisk med privilegier "1"? Noe sånt? if ($privileges=='1'){ echo "admin"; }else if ($privileges =='2'){ echo "medlem"; }else{ echo "logg inn"; }
Jan2k Skrevet 13. april 2012 Forfatter Skrevet 13. april 2012 sånn? if ($privileges=='1'){ echo "bruker"; }else if ($privileges =='2'){ echo "admin"; }else{ echo "logg inn"; } Hvordan gjør jeg det når de skal bli registrert som $privileges '1' når de registrerer seg?
Hayer Skrevet 13. april 2012 Skrevet 13. april 2012 sånn? if ($privileges=='1'){ echo "bruker"; }else if ($privileges =='2'){ echo "admin"; }else{ echo "logg inn"; } Hvordan gjør jeg det når de skal bli registrert som $privileges '1' når de registrerer seg? Skjønner ikke helt hva den siste else'en gjør der? Den har vel ikke noe funksjon? Å bruke samme variabel for å sjekke om noen er innlogget & privilegene deres virker på meg som ulogisk. Hvorfor ikke ha a) $_SESSION['userid'] og $_SESSION['userrank'] b) $_SESSION['userid'] og ha en funksjon for å hente privilegier fra database ved å bruke userid?
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå