index.php med included menu ang main

Helge

Profesjonell Googlesøker
om session_start() ligge i index.php og du inkluderer sider der, så nei, da er session allerede startet... du må bare sjekke at de som er innlogget faktisk er innlogget.
 
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:

Kode:
$cocacola = 'brus';

... 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.
 
U

Uregistrert

Guest
Hvis alt går gjennom index.php, sjekker du bare om brukeren er innlogget i index.php.

Bruk koden til olafmoriarty for å sjekke at man ikke besøker de andre sidene direkte.
 
Topp