Definitionen på "tom" skal vi lige have på plads. Når du anvender isset() kontrollerer du blot om en given variabel eksisterer - ikke dens værdi.
Derfor vil du opdage at følgende er sandt:
<?php
$var = '';
if(isset($var))
echo "Vil ske, da variablen er sat";
else
echo "Sker kun hvis variablen ikke er sat, men det er den jo netop, selvom den indeholder en tom værdi";
// Såfremt du gerne vil teste en variabel for indhold, kan du bruge empty():
if(!empty($var))
echo "Variablen indeholder noget";
else
echo "Variablen er tom";
Men ellers ville jeg anvende samme fremgangsmåde som i #13. Du skal i princippet blot kalde session_start(), hvorefter du kan bruge sessions som 'almindelige' variabler, der blot eksisterer på tværs af dine sider.
En sidste ting du lige skal huske, når du videresender med header() er, at browseren fortsætter med at udføre koden på resten af siden. Husk derfor at kalde exit(), efter hver redirect:
<?php
session_start();
if(empty($_SESSION['myusername'])){ // Du kan også anvende "!isset" fremfor "empty"
header("location:index.php");
exit(); // Stop udførslen
}
// Din beskyttede kode
?>