Anders Moen Skrevet 12. august 2007 Del Skrevet 12. august 2007 Hei Driver med et forum, og man skal jo selvfølgelig få logge ut (hihi), og da bruker jeg denne koden på logout.php: <?php session_start(); session_destroy(); // header('Location: /index2.php?p=login'); // Skal ta bort slashene fra linja over, men jeg skal ha de der forløpig ?> Hvorfor blir jeg ikke logget ut da? Har aldri hatt dette problemet før :s Lenke til kommentar
ZoRaC Skrevet 12. august 2007 Del Skrevet 12. august 2007 Det er nok heller det at forumet ditt ikke krever at du er LOGGET INN? Eller at du får opp en cachet utgave, og derfor ser ut som du er innlogget? Hvordan sjekker du om en bruker er innlogget? Lenke til kommentar
Anders Moen Skrevet 12. august 2007 Forfatter Del Skrevet 12. august 2007 (endret) Først logger man inn, og hvis man har riktig brukernavn og passord: $_SESSION['navnpasession'] = true; Og så trykker man på "Log out" og da skal man egentlig bli logget ut, men det blir man ikke.. Cachet utgave? Har oppdatert sida som sjekker om man er pålogget/avlogget flere ganger.. Noe mer som trengs å vite? Edit: Jo da, forumet sjekker om man er logget inn. Hvis man er det, får man opp en meny, hvis man ikke er det så får man opp en annen meny. Endret 12. august 2007 av Anders-Moen Lenke til kommentar
ZoRaC Skrevet 12. august 2007 Del Skrevet 12. august 2007 Prøv å sett inn en "var_dump($_SESSION);" på siden der du sjekker om man er innlogget. Da skal du få frem noe når man er innlogget, men ikke etter at du har kjørt session_destroy(); Lenke til kommentar
Anders Moen Skrevet 12. august 2007 Forfatter Del Skrevet 12. august 2007 Nå fungerer det. Det var jo helt plutselig. Har ikke gjort noe spesielt...ikke noe som jeg husker iallfall. Men det fungerer iallfall nå. Skal si ifra om det skjer igjen Lenke til kommentar
Crowly Skrevet 14. august 2007 Del Skrevet 14. august 2007 Dette er logg ut rutina jeg bruker, fant den sikkert på phpbuilder.com en gang tror jeg PHP <?php // Unset all of the session variables. $_SESSION = array(); // If it's desired to kill the session, also delete the session cookie. // Note: This will destroy the session, and not just the session data! if (isset($_COOKIE[session_name()])) { setcookie(session_name(), '', time()-42000, '/'); } // Finally, destroy the session. session_destroy(); echo '<meta http-equiv="refresh" content="0;url=index.php" />'; ?> Lenke til kommentar
Anders Moen Skrevet 14. august 2007 Forfatter Del Skrevet 14. august 2007 Takk, skal prøve den når jeg får tid til å bytte litt Lenke til kommentar
loathsome Skrevet 14. august 2007 Del Skrevet 14. august 2007 Evt. kan du bare kjøre en "unset ()" på selve sessionen, i stedet for å destroye alt. Lenke til kommentar
Anders Moen Skrevet 14. august 2007 Forfatter Del Skrevet 14. august 2007 Sorry, men jeg prøvde det og. unset($_SESSION['navnet_pa_sessionen']); Lenke til kommentar
loathsome Skrevet 14. august 2007 Del Skrevet 14. august 2007 Vel, da er det noe som er gale. Enten med scriptet ditt, eller i serverkonfigurasjonen. Kan du poste *hele* koden? Lenke til kommentar
Anders Moen Skrevet 14. august 2007 Forfatter Del Skrevet 14. august 2007 Logg inn og logg ut, eller bare logg ut eller hva? Lenke til kommentar
loathsome Skrevet 14. august 2007 Del Skrevet 14. august 2007 Alt Så blir det lettere å finne hvor feilen ligger. Lenke til kommentar
magikern Skrevet 14. august 2007 Del Skrevet 14. august 2007 (endret) Sorry, men jeg prøvde det og.unset($_SESSION['navnet_pa_sessionen']); 9276786[/snapback] prøv: PHP <?php unset($_SESSION); ?> da tømmer du hele sesjonen, men det er vel strengt tatt det du vil ved en utlogging. Endret 14. august 2007 av magikern Lenke til kommentar
loathsome Skrevet 14. august 2007 Del Skrevet 14. august 2007 Sorry, men jeg prøvde det og.unset($_SESSION['navnet_pa_sessionen']); 9276786[/snapback] prøv: PHP <?php unset($_SESSION); ?> da tømmer du hele sesjonen, men det er vel strengt tatt det du vil ved en utlogging. 9277200[/snapback] Det gir jo samme effekt som "session_destroy ()" - som ikke funker i Anders-Moens tilfelle Lenke til kommentar
magikern Skrevet 14. august 2007 Del Skrevet 14. august 2007 kan se ut som det muligens er en bug i php (med mindre jeg har oversett noe her), testa dette: PHP <?php class test { function __construct () { session_start(); echo 'Initialize session.'; } function fillSession () { $_SESSION['random']=rand(1,100); } function toString () { echo "<pre>"; print_r($_SESSION); echo "</pre>"; } function __destroy () { echo session_destroy().""; echo 'Session destroyed.'; } } $test = new test(); $test->fillSession(); $test->toString(); $test->__destroy(); $test->toString(); ?> $test->toString(); printer fortsatt ut random variabelen etter $test->__destroy() men hvis jeg endrer __destroy() til PHP <?php function __destroy () { echo session_destroy().""; unset($_SESSION); echo 'Finally, destroy the session.'; } ?> så tømmes $_SESSION. Lenke til kommentar
magikern Skrevet 14. august 2007 Del Skrevet 14. august 2007 og der fant jeg ihvertfall ut hvorfor den eksempel koden min oppførte seg som den gjorde, kanskje det gir en pekepinn til trådstarter: session_destroy(); kjører ikke unset($_SESSION); med en gang, men derimot når scriptet er gjennomkjørt. 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å