sessione che non dovrebbe esserci

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
146
63
PR
www.borgo-italia.it
Ciao a tutti

Per evitare che non sia permesso l’accesso ad una pagina riservata ho pensato di operare in questa maniera

Pagina: Password.php


PHP:
<?php
if(!isset($_SESSION)){
session_start();
}
?>
<!- -tutte le intestazioni html ecc.. -- >
<body>
<?php
$_SESSION['code']="049725858";
?>

<!- -form inserimento user e pass -- >
</body>
Pagina: operazioni.php

PHP:
<?php
if(!isset($_SESSION)){
session_start();
}elseif($_SESSION['code'] != "049725858"){
header("Location: http://www.pincopallo.com/");
}
?>
<!- -tutto l’html necessario -- >
Quindi se dal sito chiamo la pagina password.php e inserisco giusto user e pass (e si crea la sessione) accedo alla pagina operazioni.php, e sin qui non ci piove

Ma se direttamente nel browser scrivo

http://www.pincopallo.com/operazioni.php

non creo la sessione quindi la pagina dovrebbe reindirizzari alla home del sito, qui invece piove perché non funzia. Non capisco dove sia l’errore
 

satifal

Utente Attivo
25 Set 2008
522
13
0
Roma
Che problemi ti da? Riesci ad accedere come se il codice corretto fosse inserito in sessione? Come hai fatto la prova? Hai chiuso tutte le istanze del browser prima di riprovare?
Potresti avere una sessione aperta in una prova precedente. Se così, allora devi preoccuparti di implementare un logout che pulisca la sessione o qualcosa del genere.
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
146
63
PR
www.borgo-italia.it
ciao
ho fatto diverse prove in locale
1. usuale passaggio dal menù del sito
2. uscito dal sito e chiuso brow
3 riapero brwo e su riga comando

http://localhost:8080/pincopallo/operazioni.php

in questo modo (pensavo) avrebbe dovuto reindirizzarmi alla home in quanto la sessione si crea nella pagina password.php, invece accedo alla pagina operazioni.php (provato anche a resettare computer e svuotare la cche) cioè:

Riesci ad accedere come se il codice corretto fosse inserito in sessione?
SI
 

satifal

Utente Attivo
25 Set 2008
522
13
0
Roma
Prova così:

PHP:
<?php
if(!isset($_SESSION)){
session_start();
}
@ $code = $_SESSION['code'];
if($code != "049725858"){
header("Location: http://localhost/test/sessione/index.htm");
}
?>
Il problema era nell'if. Se la sessione non era presente effettuavi il session_start(), ma a causa dell'elseif non effettuavi il redirect alla home.
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
146
63
PR
www.borgo-italia.it
grazie
adesso provo, se non senti nulla funzia.

p.s.
evidentemente, alla mia età, l'intelligenza non è costante, ma certamente non in aumento