Dersom du har session_start() i script A og du inkluderer script B i script A, vil sesjonen som du starter i script A også gjelde for det inkluderte script B.
For å bruke et fullstendig urelatert eksempel: Se for deg at du sitter i den parkerte bilen din midt på natta og leser en bok. Du trenger lys for å lese, ergo må du slå på lyset i bilen. Men dersom bilen står i et fullt opplyst parkeringshus
Dersom du har en bruker som leter seg fram til script B og åpner dette uten å gå gjennom script A først, vil ikke session_start() være kjørt, men bruker du kodesnutten jeg foreslo vil det ikke være et problem.
En enklere måte vil være å sette en variabel i index.php som du sjekker i alle andre script. For eksempel kan du skrive denne linjen et stykke langt opp i index.php:
... og øverst i hver av de filene som inkluderes i index.php (iallefall de som inneholder sensitiv medlemsinformasjon) skriver du denne snutten:
Kode:
if (!isset($cocacola) || $cocacola != 'brus') {
echo 'Jaså, du trodde at du var lur nå? Glem det!';
exit;
}
(echo-linja kan selvsagt erstattes med en header() som sender brukeren til index.php.)
session_start() skal stå bare ett sted i index.php, og så lenge du inkluderer xxx.php i index.php betyr det at du ikke skal ha noe session_start() i xxx.php.