Jan2k Skrevet 10. april 2012 Del 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 { }?> Lenke til kommentar
Thomas. Skrevet 10. april 2012 Del 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. Lenke til kommentar
Jan2k Skrevet 11. april 2012 Forfatter Del Skrevet 11. april 2012 Tusen takk! Om jeg bruker $_SESSION['Admin'] blir det en sikkerhetssvakhet da? Lenke til kommentar
Gjest Skrevet 12. april 2012 Del 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 Lenke til kommentar
Hayer Skrevet 13. april 2012 Del 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. Lenke til kommentar
Jan2k Skrevet 13. april 2012 Forfatter Del 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"; } Lenke til kommentar
Tom_ Skrevet 13. april 2012 Del Skrevet 13. april 2012 Eller omvendt da så ikke alle blir admin Lenke til kommentar
Jan2k Skrevet 13. april 2012 Forfatter Del 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? Lenke til kommentar
Hayer Skrevet 13. april 2012 Del 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? Lenke til kommentar
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å