03. november 2008 - 18:19Der er
26 kommentarer og 1 løsning
Forbliv logget ind
Hej eksperter.
Jeg er igang med min egen hjemmeside, og er lige stødt ind i et lille problem. Jeg har lavet et lille login system (ikke noget krævende) bare et brugernavn og en kode. Men jeg har så problemer, med at når man er logget ind viser den det fint nok med "Hej ... og velkommen!" men så når jeg skifter side i menuen f.eks. eller et link (stadig på siden) så logger den af igen, og de to login bokse dukker op igen.
Jeg vil høre om man ikke lige kan indsætte et link, så man ikke logger af, når man skifter side i menuen f.eks.
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
Du bliver nødt til selv at sørge for, at tilstanden "logget ind" overføres. Det er nok næppe hensigtsmæssigt at gøre som en del af URL'en (med mindre du tænker dig godt om), men cookies eller sessions er sikkert vejen frem for dig.
Tjah, jeg ville nok basere det på sessions - http://dk2.php.net/manual/en/function.session-start.php - og så gemme brugernavn og pwd deri. Ved hver visning kan du sammenholde data med din brugerdatabase, eller hvad du nu har.
Alternativt kan du blot gemme "isLoggedIn" i en session og så slippe for at tjekke i DB ved hver visning. Det vil performe (marginalt) bedre, men er måske ikke helt så sikkert.
Jeg har kigget lidt inde på phpartikler, men kan ikke helt lige finde ud af, hvordan jeg skal gribe tingene an. Når man logger ind på min side via index, vises login-ok.php, og der har jeg brugt mysql_query til at selecte brugernavn og database.
Hvad skal jeg gøre, for at få de sessions op at køre?
if(!isset($_POST['Submit'])) { //Tester om brugeren kom fra index.html echo "Du skal komme fra index.php"; }else{ $postbruger = $_POST['Brugernavn']; $postpass = $_POST['Password']; //For læservenligheden overføres post variablerne til normale variabler
$resultat = mysql_query("SELECT id FROM `bruger` WHERE Brugernavn = '$postbruger' AND Password = '$postpass'");//Spørger efter ID
$number = mysql_num_rows($resultat);//Tæller antaller af resultater if($number == 1) { //Hvis der kun er et resultat, bliver brugeren logget in $_SESSION['loget_in'] = 1; $_SESSION['Brugernavn'] = $postbruger; $_SESSION['Password'] = $postpass; //Sætter session variablerne echo "Du er nu logget ind"; ?> <br><br> <a href="redigerprofil.php">Redigér min profil</a> <?
}else echo"De indtastede oplysninger er ikke korrekte"; } ?>
Jeg vil så gerne have lavet en session, med en slags if, else i. Altså hvis du er logget ind, viser den "Hej du er logget ind, rediger profil". Og hvis ikke, skal mine to login bokse komme frem. :)
array(3) { ["loget_in"]=> ∫(1) ["Brugernavn"]=> &string(5) "admin" ["Password"]=> &string(5) "admin" } Hvis den udskriver noget fornuftigt, bør du også kunne Hej, admin. Du er logget ind.
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.