Gå til innhold

"Session" forsvinner fra meg [nytt spm.]


Anbefalte innlegg

Hei.

 

Jeg har et problem med sessions. Jeg har laget et loginscript, som fungerer helt fint når jeg kjører det hos start.no, men når jeg kjører det på mitt webhotell (som er hos one.com), så blir sessionen "glemt" når jeg går til neste side. Er det noen som vet hva som forårsaker dette?

 

Her er eksempler på scriptene. Du logger på i høyre meny med brukernavn og passord "test". Når du har gjort det, så prøv å klikk på kontakt eller på hjem, da vil du se at på obrestad.org, så forsvinner session-variablene, og du er logget ut. Det gjør dem ikke på start.no sine serverer. Er det noen som har peiling på hvorfor dette sjer, og hvordan jeg kan unngå dette?

 

Start.no

ww2.obrestad.org

 

PS! diskusjonen starter på post 22

Endret av obrestad
Lenke til kommentar
Videoannonse
Annonse
Problemet mitt er bare det at det virker som om $_SESSION variablene blir husket når jeg går til en ny side. Er det noen kjente feil som gjør dette?

Hva mener du egentlig her? Kan nesten se ut som du mangler ikke.

Dersom det er tilfellet, sjekk at du kaller session_start() i toppen av scriptet. (Ser ikke ut som du gjør det her)

Lenke til kommentar
Husk også at session_start(); må være det aller første i scriptet

 

<?php session_start(); ?> er en fin løsning.

Det er en sannhet med modifikasjoner.

 

session_start() må kalles FØR du begynner å jobbe med sessions (naturlig nok), og FØR det gjøres noe output til browseren. (Noe som ofte skjer i slutten av scriptet når man bruker output buffering)

Lenke til kommentar

Du kan se på hjemmesiden min hvordan det virker i praksis. Bare logg deg på med test som brukernavn og passord, og se at du er innlogget (sjekk session variablene til høyre), klikk så på kontakt, og du er logget av igjen. Hvordan kan jeg "holde" brukeren pålogget?

 

Her er selve loginscriptet slik det ser ut nå:

<h3>Logg deg på:</h3>
 <?php
 if (isset($_SESSION['bruker']))
   echo '<p>Du er nå logget på, <a href="index.php?side=logut">Logg av</a></p>';
 else
 {
  $bruker = "test"; 
  $passord = "test";
  if (isset($_REQUEST['bruker'])) 
  {
   if ($bruker == $_REQUEST['bruker'] && $passord == $_REQUEST['passord'])
   {
	$_SESSION['bruker']= 'test';
	$_SESSION['id']= '1';
   }
   else
	echo 'Feil brukernavn eller passord';
  }
  else
  {
   echo "
   <form method='post' action='index.php?side=hjem'>
   Brukernavn:<br> 
	<input name='bruker' type='text'><br>
   Passord:<br>
	<input name='passord' type='password'><br>
	<input type='submit' value='Logg deg på'>
   </form>";
  }
  }
  ?>

Endret av obrestad
Lenke til kommentar

Ja.

 

index.php:

<?php
session_start();
error_reporting(E_ALL);
ini_set("display_errors", true);
?>

<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<link rel="stylesheet" type="text/css" href="default.css">
<title>Obrestad.org</title>
</head>
<body>
<div id="outer">
 <div id="outer2">
  <div id="header">
<h1>Obrestad.org</h1>
<h2></h2>
  </div>
  <div id="menu">
<?php include('meny.php') ?>
  </div>
  <div id="content">
<div id="column1">
 <?php include('include.php') ?>
</div>
<div id="column2">
 <?php include('login.php'); ?>
 <?php include('side.php'); ?>
</div>
  </div>
  <div id="footer">
<p>Copyright © 2007 Obrestad.org.</p>
  </div>
 </div>
</div>
</body>
</html>

Endret av obrestad
Lenke til kommentar

Hva mener du nå?

 

EDIT:

 

Her kan du se includsa:

 

meny.php

<ul>
 <li><a href="index.php?side=hjem">Hjem</a></li>
 <li><a href="index.php?side=kontakt">Kontakt</a></li>
</ul>

 

include.php

<?php
switch ($_GET['side'])
{
case 'hjem':
 include('sider/index.php');
 break;
case 'kontakt':
 include('sider/kontakt.php');
 break;
case 'logut':
 session_destroy();
 break;
default:
 include('sider/index.php');
}
?>

 

side.php

<br>
<h3>var_dump($_SESSION);</h3>
<pre>
 <?php var_dump($_SESSION); ?>
</pre>

Endret av obrestad
Lenke til kommentar

Ny index.php:

<?php
session_start();
error_reporting(E_ALL);
ini_set("display_errors", true);
?>

<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<link rel="stylesheet" type="text/css" href="default.css">
<title>Obrestad.org</title>
</head>
<body>
<div id="outer">
 <div id="outer2">
  <div id="header">
<h1>Obrestad.org</h1>
<h2>Av Eigil Obrestad</h2>
  </div>
  <div id="menu">
<?php //include('meny.php') ?>
  </div>
  <div id="content">
<div id="column1">
 <?php //include('include.php') ?>
</div>
<div id="column2">
 <?php include('login.php'); ?>
 <?php //include('side.php'); ?>
</div>
  </div>
  <div id="footer">
<p>Copyright © 2007 Obrestad.org.</p>
  </div>
 </div>
</div>
</body>
</html>

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å
×
×
  • Opprett ny...