Yawa Skrevet 8. mars 2010 Del Skrevet 8. mars 2010 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
South_Bridge Skrevet 8. mars 2010 Del Skrevet 8. mars 2010 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
Yawa Skrevet 8. mars 2010 Forfatter Del Skrevet 8. mars 2010 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
Kris Skrevet 8. mars 2010 Del Skrevet 8. mars 2010 http://www.w3schools.com/php/php_sessions.asp Se under "Destroying a Session". Lenke til kommentar
Yawa Skrevet 8. mars 2010 Forfatter Del Skrevet 8. mars 2010 http://www.w3schools.com/php/php_sessions.asp Se under "Destroying a Session". Så jeg benytter meg av unset($_SESSION['my_var']); for å logge av da? Om jeg bruker destroy vil jeg slette all lagret data, er det nødvendig? Altså, hva slettes egentlig? Lenke til kommentar
South_Bridge Skrevet 8. mars 2010 Del Skrevet 8. mars 2010 (endret) med unset kan du slette (eller "unsette") hver enkelt session variabel... destroy tar knekken på alle (unsetter ALT tror jeg). en logout gjøres best med destroy da du i teorien skal slette alt mener jeg på. Endret 8. mars 2010 av South_Bridge Lenke til kommentar
Yawa Skrevet 8. mars 2010 Forfatter Del Skrevet 8. mars 2010 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
South_Bridge Skrevet 8. mars 2010 Del Skrevet 8. mars 2010 (endret) <?php session_destroy(); header ("Location:domene.no/login.html"); ?> Du trenger ikke å bruker noe annet en session_destroy(); Endret 8. mars 2010 av South_Bridge Lenke til kommentar
Yawa Skrevet 8. mars 2010 Forfatter Del Skrevet 8. mars 2010 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
South_Bridge Skrevet 8. mars 2010 Del Skrevet 8. mars 2010 shaize... jeg glemte: du må faktisk starte session for å kille den <?php session_start(); session_destroy(); header(...); ?> Lenke til kommentar
Yawa Skrevet 8. mars 2010 Forfatter Del Skrevet 8. mars 2010 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
South_Bridge Skrevet 8. mars 2010 Del Skrevet 8. mars 2010 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
Yawa Skrevet 8. mars 2010 Forfatter Del Skrevet 8. mars 2010 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
South_Bridge Skrevet 8. mars 2010 Del Skrevet 8. mars 2010 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
sxxxe83 Skrevet 8. mars 2010 Del Skrevet 8. mars 2010 (endret) 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 9. mars 2010 av sxxxe83 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å