ho un problemino molto particolare che mi ha fatto perdere
una nottata intera. e sicuramente sarà una cavolata.
Ho scaricato questo semplice script da freephp.html.it per
capire se il browser è abilitato ai cookie o meno.
credo che molti di voi lo conosceranno (lo allego in fondo),
il problema e' che non mi scrive il cookie anche se
il mio browser e' abilitato e ricevo come risposta "il browser
rifiuta i cookie"
ma più curioso sono le prove che ho fatto per capire il
motivo:
prima di tutto se commento l'istruzione header e la
sostituisco con un refresh da meta-tag lo script funziona.
ancora, se commento l'istruzione header e faccio un refresh
manuale il cookie e' stato scritto e lo script funziona.
L'exit() l'ho messo per prova ma ho provato tutti i casi anche senza.
Ho controllato se l'istruzione header funzionava ed
effettivamente sembra cosi, perche' stampavo anche la variabile passata
in get ed era valorizzata come settata
nell'header.
Secondo voi come mai succede una cosa del genere?
Grazie grazie grazie
Vi allego lo script:
codice:
<?php
if(empty($_COOKIE)) {
//Se non risultano cookie e la variabile "cookieTest" (passata attraverso la query_string)
//non esiste, significa che ancora non ne è stato inviato alcuno.
if(!isset($_GET["cookieTest"])){
$message="questo è un test" ;
//Quindi invio il cookie di prova
setcookie("test",$message) ;
//Effettuiamo il refresh per leggere il cookie di prova
//appena inviato, e "marchio" il test passando via query_string la variabile "cookieTest"
header("Location: ".$_SERVER["PHP_SELF"]."?cookieTest=1") ;
exit();
}
else{
//La variabile "cookieTest" esiste, quindi il cookie di prova è stato inviato
//ma evidentemente il browser lo ha rifiutato.
$abilitato=0 ;
}
}
else{ //L'array $_COOKIE non è vuoto quindi il browser accetta i cookie
$abilitato=1 ;
}
// Controllo abilitazione cookie
if($abilitato){
echo("Il tuo browser accetta i cookie, ecco la lista di quelli presenti
") ;
foreach($_COOKIE as $key=>$value){
echo("NOME: ".$key." VALORE: ".$value."
") ;
}
}
else{
echo("Il tuo browser rifiuta i cookie" . $cookieTest) ;
}
?>
stanotte mi e' venuta in mente che potrei provare a passare il cookie direttamente con l'header ma adesso non riesco