RickiMedlem sedan juni 2000380 inlägg
Tjena,
Jag har ett mycket irriterande problem med session. Ibland funkar det och ibland inte... Även fast man tilldelar en session ett värde så glömmer den bort det på något sätt...
Denna kod används för att sätta en session:
<?php
session_start();
$_SESSION['familj'] = 'rickard';
?>
Och denna kod används för att kolla om den finns. Och även om jag har satt sessionen som ovan så säger den att den inte finns, för den redirectar till sidan!
<?php
// Kolla om man loggat in
session_start();
if (!isset($_SESSION['familj']))
{
header("Location: index.php");
}
?>
Är det någon som vet vad som blir fel??
Mycket tacksam för svar!
FuelMedlem sedan okt. 20001 325 inlägg
Du måste registrera en sessionvariabel :h
<?
session_start();
$familj = "rickard";
session_register("familj");
header ("location: /index.php");
exit;
?>
Och om du vill sätta flera variabler..
<?
session_start();
$city = "ankeborg";
$webforum = $row['forum'];
$username = $_POST['username'];
$session_id = "$PHPSESSID";
session_register("city", "webforum", "username", "session_id");
header ("location: /index.php");
exit;
?>
Avsluta sessionen..
<?
mysql_query("UPDATE members etc.... ") or die ("Kan inte sova!");
session_unset();
session_destroy();
header ("location: /index.php");
exit;
?>
They say if you play a microsoft cd backwards, you will hear satanic messages, thats nothing, if you play it forwards it'll install windows.. :l
RickiMedlem sedan juni 2000380 inlägg
Det fungerar ändå inte... Vad kan vara fel?
Jag ser att sessionen läggs till i den där PHP/sessiondata mappen, men ändå kan kan jag inte nå den sedan... Mycket skumt!
RickiMedlem sedan juni 2000380 inlägg
Är det ingen som vet som kan vara fel...
Om ni inte vet så kan ni väl skriva hur ni gör att att kontrollera om en person är inloggat med hjälp av sessions....
Plz, det är viktigt!
MatteMedlem sedan aug. 20002 970 inlägg
Personligen så gör jag som du visade i ditt första inlägg i den här tråden.
Med ett litet tillägg. Jag skriver exit; på raden efter header(). Detta gör jag för att skriptet inte ska hinna fortsätta exekveras vidare några rader, innan det skickar vidare.
WebslaveMedlem sedan maj 2002662 inlägg
Det kan även vara någe med dina inställningar i php.ini... inte säkert men det kan bråka ibland.
RickiMedlem sedan juni 2000380 inlägg
Tjena,
Nu har jag kommit på vad det är som krånglar (tror jag).
Om jag skriver ut sessionen på samma sida som den sätts, så funkar det...
Men när jag gör:
header("Location: kalender.php");
Funkar det inte i kalender.php.
Om jag däremot sätter sessionen i login.php och sedan själv går till kalender.php så funkar det.
Tömmer [header("Location: kalender.php");] sessionminnet på något sätt? Finns det någon parameter man kan skicka med för att den inte ska tömma....
Mycket tacksam för svar!
MatteMedlem sedan aug. 20002 970 inlägg
Testa med
header("Location: kalender.php?".SID);
RickiMedlem sedan juni 2000380 inlägg
Tackar, nu fungerar det... Men varför måste man ha med den där grejen?
Kommer ju dessutom en lång jäkla id grej i adressfältet!
EDITEDITEDIT
När jag undersökte problemet vidare var jag tvungen att skicka med SID på alla sidor för att det skulle fungera... Måste det vara så. Det känns ju lite jobbigt att lägga in det på varenda redirect!
FuelMedlem sedan okt. 20001 325 inlägg
Du har väl session_start(); längst upp på alla sidor ?
:l :stud :r ;)
RickiMedlem sedan juni 2000380 inlägg
Fuel skrev:
Du har väl session_start(); längst upp på alla sidor ?
:l :stud :r ;)
Japp, det har jag...
psykologMedlem sedan apr. 2000198 inlägg
I din php.ini så kan du ställa in
session.use_trans_sid = 1
någonstans.
Ifall du kör linux måste du nog kompillera in det.