Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    errore indefinibile nello script per capire se cookie abilitati

    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

  2. #2
    per chi dovesse imbattersi nel mio stesso problema, ecco la soluzione:

    descrizione problema

    il problema e' il setcookie con successivamente un header(Location:...) che da problemi con versioni di IIS6 precedenti alla 6

    bisogna usare il mata tag refresh

    ciao

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    460
    Usare PHP con IIS vuole dire cercarsele, le notti insonni.
    There are 10 types of people in the world - those who understand binary and those who don't.

  4. #4
    Utente di HTML.it L'avatar di mark2x
    Registrato dal
    Nov 2005
    Messaggi
    1,940
    Ricordo che a suo tempo lo stesso problema lo ebbe un mio collega.
    Su php dot net c'è scritto di usare il comando session_write_close(); in questi casi.

    Non so se ti possa esser utile.. o se effettivamente sia vero - una volta sono stato smentito...




    [.:: JaguarXF ::.]
    __________________

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.