2009-12-07, 11:34
  #1
Medlem
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.
Citera

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in