Gå til innhold

login og logout


Anbefalte innlegg

Jeg har fått lagt opp selve login funksjonen da, men sliter litt med å finne ut av hvordan jeg får web-leseren til å huska at man er innlogget.

 

Ikke at det er ett must, men hadde vert greit å kunne navigere seg ut på det offentlige området og kunne gå tilbake å slippe og måtte legge inn ID og passord hver gang.

 

Finnes det noen måte som gjør at når man lukker nettleseren så logger man av, men om man bare forlater medlesmområdet så holdes man innlogget?

 

Usikker på hvordan jeg oppretter en logout funksjon, så kansje best å starte med å få en slik il i første omgang. Noen som kan hjelpe?

Lenke til kommentar
Videoannonse
Annonse

Jeg har fått lagt opp selve login funksjonen da, men sliter litt med å finne ut av hvordan jeg får web-leseren til å huska at man er innlogget.

 

Ikke at det er ett must, men hadde vert greit å kunne navigere seg ut på det offentlige området og kunne gå tilbake å slippe og måtte legge inn ID og passord hver gang.

 

Finnes det noen måte som gjør at når man lukker nettleseren så logger man av, men om man bare forlater medlesmområdet så holdes man innlogget?

 

Usikker på hvordan jeg oppretter en logout funksjon, så kansje best å starte med å få en slik il i første omgang. Noen som kan hjelpe?

 

Hmm... helt avhengig av hvordan du har gjort din login/logout så lagres session variabler i browseren. Når du lukker browseren, slettes også de data i minnet.

HOWEVER, jeg tror du kan løse ditt problem med cookies. Cookies er en lagret fil på disken din, ikke at det du spør om er å anbefale da... om jeg har forstått deg riktig. Man bør logge ut og inn etter hver "bruk" som en del av sikkerheten.

Lenke til kommentar

Jeg benytter meg av sessions da.

 

Logger inn via en form på "login.php" (bruker ID og passord)

 

formdataen valideres/sjekkes opp mot mysqldatabasen.

hvis bruker ID blir funnet og at passordet stemmer overens, så logges bruker inn til medlemsområdet samt at session_start() aktiveres.

Via session så drar den med seg bruker ID'en så jeg kan hente ut brukerinfo fra databasen til bruk på medlems-sidene.

 

Det jeg ønsker nå er en knapp som sier "logg av" (har den da) - Men vil at den skal fungere også, så riktig og sikker måte.

Lenke til kommentar

okay, men, hvordan setter jeg den opp?

 

Altså, jeg har en link som sier "log av". Setter seg <a href="logut.php">logut</a>

 

hvor logut.php inneholder:

<?php
 session_destroy($_SESSION['my_var']);
?>

hvordan legger jeg inn en redirect? Slik:

<?php
 session_destroy($_SESSION['my_var']);
 header ("Location:domene.no/login.html");
?>

Lenke til kommentar

jeg må ha gjort en feil en vei

Fikk denne feilmeldingen:

 

WARNING: Trying to destroy uninitialized session

 

hva kommer det av?

 

jeg er logget inn med en bruker... jeg linket "logg av" til ett rent php dokument med kun <?php session_destroy(); ?>

 

Må det stå i toppen av en aktuell side som man linker mot?

Lenke til kommentar

mhm, stemmer... fant ut av det nettopp. Laget ett nytt dokument med bekreftelse på utlogging.

Måtte naturligvis ha session_start() pga. man skal jo ikke ha tilgang til den siden uten å først være logget inn...

 

 

Men takk for hjelpen... Nå funker det smell

 

Eneste jeg lurer på nå er hvordan jeg kan forbli innlogget selv om jeg beveger meg bort fra medlemsområdet?

 

Altså, jeg har en link som heter "medlemsområdet". Når jeg klikker på den, og jeg ikke er innlogget må jeg legge inn ID nummer og ett passord.

Er det ikke mulig å legge inn en funksjon som sjekker om session_destroy() har blitt utløst eller ikke. Hvis ikke, så er det en hukommelse som sjekker og videresender deg inn på området?

 

forstålig forklart?

Lenke til kommentar

hmm... så lenge du starter session_start() på ALLE sider (spiller ingen rolle om det er en medlemside eller ikke så skal den ha orden på det. Om du tenker forbi din egen side må du ta i bruk cookies med en timer i seg tenker jeg.

 

så det du gjør da er at du finner opp en hemmelig variabel i session som beskriver om bruker er innlogget eller ikke, så starter du bare session på alle sider og kontrollerer din session variabel om brukeren er innlogget eller ikke som sagt.

Lenke til kommentar

jau, men kan jo ikke ha session_start() på de offentlige sidene. Da får jo ikke publikum tilgang til dem... :(

Så man må kansje lagre innloggingen på en måte? cookies nevner du. Lagrer ikke de verdier på maskina da? mener de brukes i forbindelse med handlekurv oppelegg. Altså, at man kan klikke på nettleserens tilbakeknapp uten at varen forsvinner fra handlekurven?

 

blir det ikke noe av det samme her?

Lenke til kommentar

Da må du gjøre noe med logikken på siden. Jeg pleier å ha session_start() på alle mine sider hvor jeg da har en innloggingsvariabel(+ noe anna fancy shit) som forteller om en bruker er innlogget eller ikke. Sånn jeg har løst det, ang din problemstilling er jeg litt usikker. Du får bare finne den strukturen som passer deg best.

Lenke til kommentar

Jeg satt opp en enkel funksjon for å sjekke om en er logget inn:

Den kaller jeg på "admin" sidene som er beskyttet om en kan kalle det det...

 

functions.php

function sikker_sjekk() {

// Start session om ikke startet	
if(!isset($_SESSION)) {
	session_start();
}

// Er admin innlogget?, om ikke redirect til loginsiden
if($_SESSION["is_logged_in"] != TRUE) {
header("Location: http://www.dinside.no/login.php");
exit;
}
}

 

admin.php

include ('functions.php');

// Hemmelig innhold under
sikker_sjekk();

// Admin greier
if($_SESSION["is_logged_in"] === TRUE) {
header("Location: http://xxx.pron.se");

 

logout.php

session_destroy();
header("Location: http://www.dinside.no/login.php");

Endret av sxxxe83
Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...