Jump to content
Sign in to follow this  
remi sture

Hvordan forbli innlogget?

Recommended Posts

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: test@test.no

passord: test

Edited by remi sture

Share this post


Link to post

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();?

Share this post


Link to post

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...?

Edited by PayZ

Share this post


Link to post

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

Edited by kakkle

Share this post


Link to post

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 !

Edited by kakkle

Share this post


Link to post

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...