Så er alt det overflødige fjernet, men jeg har samme problem. Koderne ser nu således ud:
accescontroltest.php (som inkluderes i alle filerne som der kræver login)
<?php session_start();
$brugernavn = isset($_POST['testu_name']) ? $_POST['testu_name'] : $_SESSION['testu_name'];
$adgangskode = isset($_POST['testp_word']) ? $_POST['testp_word'] : $_SESSION['testp_word'];
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 Transitional//EN" "
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html>
<head>
<title>
Test af sessions
</title>
<meta http-equiv="content-type" content="text/html; Charset=iso-8859-1" />
</head>
<?php
if(!isset($brugernavn))
{
?>
<body>
Angiv brugernavn og adgangskode.
<br /><br />
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" />
Brugernavn: <input type = "text" name = "testu_name" size = "8" />
Adgangskode: <input type = "password" name = "testp_word" size = "8" />
<input type = "submit" value = "Log ind" />
</form>
</body>
</html>
<?php
exit;
}
//hvis brugernavn er sat
else
{
$_SESSION["testu_name"] = $brugernavn;
$_SESSION["testp_word"] = $adgangskode;
require("functions_hp.php");
opret_forbbruger();
$result = mysql_query("SELECT * FROM bruger WHERE username = '$brugernavn' && password = '$adgangskode'");
luk_forbbruger();
//hvis der ikke er noget resultat fra forespørgslen
if (!$result)
{
$resultat_mes = "Der opstod en fejl.";
?>
<body>
<?php // Fejlmeddelelse
echo ("Fejl i forespørgsel <b>$resultat_mes</b>");
?>
</body>
</html>
<?php
exit;
}
//hvis ikke der var nogen mathches
if (mysql_num_rows($result) == 0)
{
unset($_SESSION['testu_name']);
unset($_SESSION['testp_word']);
?>
<body>
<h2>
Log ind
</h2>
<br />
Adgang nægtet. Det indtastede brugernavn eller adgangskode er forkert. Forsøg at <a href = "<?php echo $_SERVER['PHP_SELF'] ?>" />log på igen</a>
</body>
</html>
<?php
exit;
}
}
?>
Så er der to testsider hvor man skal loogge ind:
testsessions.php
<?php include "accescontroltest.php";?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 Transitional//EN" "
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html>
<head>
<title>
Test af sessions
</title>
<meta http-equiv="content-type" content="text/html; Charset=iso-8859-1" />
</head>
<body>
<h1>
Test af sessions
</h1>
<a href ="testsessions1.php">test sessions 1</a>
<br />
<a href ="logouttestsessions.php">logud</a>
</body>
</html>
og testsessions1.php
<?php include "accescontroltest.php";?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 Transitional//EN" "
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html>
<head>
<title>
Test af sessions
</title>
<meta http-equiv="content-type" content="text/html; Charset=iso-8859-1" />
</head>
<body>
<h1>
Test af sessions
</h1>
<a href ="testsessions.php">test sessions</a>
<br />
<a href ="logouttestsessions.php">logud</a>
</body>
</html>
Og til sidst log ud siden:
<?php
session_start();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 Transitional//EN" "
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html>
<head>
<title>
Log ud, test sessions
</title>
<meta http-equiv="content-type" content="text/html; Charset=iso-8859-1" />
</head>
<body>
<h1>
Test af sessions
</h1>
<?php
session_destroy();
echo("Du er nu logget ud.");
?>
<a href ="testsessions.php">test sessions </a>
</body>
</html>
Når jeg logger ind på en side så er det som om at sessions ikke gemmes for jeg bliver bedt om at logge ind på hver side. Dette er kun indtil at jeg har klikket på logud. Herefter logger jeg på en af siderne og det virker efter hensigten.