remi sture Skrevet 26. august 2005 Del Skrevet 26. august 2005 (endret) Holder på med et script hvor man må logge inn, men har problemer med å forbli innlogget. Når man er logget inn, og navigerer rundt på siden forblir man innlogget, men når man klikker "tilbake" må man logge inn igjen på nytt. Hvordan kan jeg unngå dette? Trodde man unngikk dette ved å ha session_start(); øverst i filen? Problemet er vel kanskje at $_SESSION['innlogget'] = false; blir satt i begynnelsen av filen, altså at denne slår til når man klikker "tilbake". Men hvordan i såfall fikse dette, og samtidig få samme funksjonalitet som jeg nå har, med tanke på innloggingen. Her er koden: http://norskwebforum.no/pastebin/1157 Logg inn her: http://julecupen.no/index.php?side=signup_ny2 Brukernavn: [email protected] passord: test Endret 26. august 2005 av remi sture Lenke til kommentar
remi sture Skrevet 26. august 2005 Forfatter Del Skrevet 26. august 2005 Har et nytt spørsmål her og: Hvordan kan jeg slette en sesjon. Jeg vil altså logge ut. Se nederst i koden jeg har postet over. Hva mer må jeg gjøre enn å bruke session_destroy();? Lenke til kommentar
PayZ Skrevet 26. august 2005 Del Skrevet 26. august 2005 (endret) hei! hvorfor bruker du egentlig $_SESSION['innlogget'] = false;? Her et koden jeg bruker på et av programmene mine og det fungere fint med tilbake-kanpp og utlogging..: session_start(); if ($loggut==ja) { session_destroy(); header("location: index.php"); } if (isset($_POST['brukerid']) && isset($_POST['passord'])) { $brukerid = $_POST['brukerid']; $passord = $_POST['passord']; $query = mysql_query("SELECT * FROM medlemmer",$db); $info = mysql_fetch_array($query); if ($info["id"]==$brukerid && $info["pass"]==$passord) { $_SESSION['bruker'] = $brukerid; } } if (isset($_SESSION['bruker'])) { echo "her går medlemmenes innhold"; } else { echo "her går innholdet til de som ikke er logget inn"; } hjalp dette...? Endret 27. august 2005 av PayZ Lenke til kommentar
remi sture Skrevet 27. august 2005 Forfatter Del Skrevet 27. august 2005 Nja, men jeg får det ikke til å funke med min kode... Kunne noen rett og slett sett over min kode og sett hva jeg må endre for at det skal funke? http://norskwebforum.no/pastebin/1158 Lenke til kommentar
kakkle Skrevet 27. august 2005 Del Skrevet 27. august 2005 (endret) Problemet ditt er at du legger alt man kan gjøre når man er innlogget i if setningen som sjekker om $_SESSION["innlogget"] er false, og det er den jo alltid, i og med at du setter den til false i scriptet. (Jeg liker best å bruke funksjonen isset() for å sjekke om en session inneholder noe, pluss at det kan være en fordel å la en session ta vare på brukernavnet til den som er innlogget) tips til løsning: <? session_start(); if(!isset($_SESSION["innlogget"])) { /* Vis det som skal vises for en som ikke er logget på... Sånn som innloggingsboks og rigstreringsting. Øverst i scriptet, sjekker du om "knapp" er trykket, og hvis brukernavn og passord stemmer, så setter du $_SESSION["innlogget"] til true, eller hva du vil, og reloader siden. Bruk evt. et eget login script til dette (Mye bedre) */ } else { // Her legger du alt som krever innlogging echo "du er logget inn..."; if(!$_GET["action"]) { //Vis formen for å legge til lag } elseif ($action == "blabla") { } } ?> ET veldig forenklet forslag. Men håper du skjønner prinsippet ihvertfall... Alt som en innlogget person skal kunne gjøre, må legges utenfor if setningen som slår til dersom man ikke er innlogget. EDIT: Litt annen ordleggelse, eller noe sånt Endret 27. august 2005 av kakkle Lenke til kommentar
remi sture Skrevet 28. august 2005 Forfatter Del Skrevet 28. august 2005 Tusen takk for at du prøver å hjelpe meg, kakkle! Prøvde det du sa, og kom fram til følgende, men det funker ikke det heller: http://norskwebforum.no/pastebin/1164 http://julecupen.no/index.php?side=signup_ny3 [email protected] | test Lenke til kommentar
kakkle Skrevet 28. august 2005 Del Skrevet 28. august 2005 (endret) Det kommer ingenting etter at du har lgget inn, fordi scriptet slutter da... Etter du har satt session, legg ut en beskjed som sier at man er innlogger, og en link til startsiden igjen.: $_SESSION["innlogget"] = true; // Merk: Enkelt likhetstegn. echo "Du er nå innlogget <br>"; echo "<a href='?side=".$_GET[side]."'>Trykk her for å fortsette</a>"; Prøv det... Skal fungere. Som sagt, husk et likhets tegn når du setter en variablel (ikke $_SESSION["innlogget"] == true;) Legg evt selve innloggings prosessen i en egen fil, og benytt header() for å redirecte til innlogget siden (scriptet) f.eks: login.php: if(!isset($_POST["knapp"])) { header("location:index.php?side=".$_GET["side"]); } else { // Sjekk om bruker navn og passord som er tastet inn stemmer // Dersom dette stemmer: $SESSION["innlogget"]=true; header("location:index.php?side=".$_GET["side"]); } og form tagen, hvor man logger inn: echo '<form method="post" action="login.php?side='.$_GET["side"].'"> EDIT: HUSK session_start() i starten av scriptet ! Endret 28. august 2005 av kakkle Lenke til kommentar
remi sture Skrevet 28. august 2005 Forfatter Del Skrevet 28. august 2005 Tusen takk for hjelpen! 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å