OK. börjar få huvudvärk nu av det här.. felet är i någon av dessa 2 sidor:
login.php:
[php]
if($_GET['logout']){
unset($_SESSION['hasAdministratorAccess']);
$message = "Du är utloggad";
}
// om man redan är inloggad så skickas man till admin.php
if($_SESSION["hasAdministratorAccess"]){
header("Location: secure/admin.php");
exit;
}
// annars kollar den om man skickat med pass/lösen i POST
$u = $_POST["username"];
$p = $_POST["password"];
if($u && $p){
if($u == "admin" && $p == "123"){
$_SESSION["hasAdministratorAccess"] = "yes";
session_write_close();
header("Location: secure/admin.php");
exit;
}else{
$message = "Fel användarnamn eller lösenord";
}
}elseif($_POST["isSubmitted"]){
$message = "Fyll i båda fälten";
}
[/php]
admin.php:
[php]
if(!$_SESSION["hasAdministratorAccess"]){
header("Location: ../login.php");
exit;
}[/php]
Hur jag än gör så skickas man tillbaks till login.php när man fyllt i rätt lösenord... "$_SESSION["hasAdministratorAccess"] = "yes";" sätts alltså aldrig till yes..
Har googlat och hittade att man skulle köra session_write_close(); efter man sparat en sessionsvariabel om man skulle använda header efter.. men det funkar ju inte :S
en fråga till, ger if(variabel) och if(isset(variabel)) samma resultat?
EDIT: hittade felet. Gjorde visst session_start-anropet i en include som fanns under koden i login.php
__________________
Senast redigerad av m4r7in 2009-12-07 kl. 11:46.