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

    Problema cookie e include php

    Ciao a tutti,
    ho appena fatto un contatore visite che si trova nella root principale del mio sito (http://xxx.com/contatore.php).
    L'ho incluso nella home page del mio sito con un include e...non mi setta i cookie come vorrei.
    Se invece vado alla pagina contatore.php mi setta il cookie come da codice.
    Posto qui il codice della pagina contatore.php

    Codice PHP:
    <?php //VISITE TOTALI $apri_visite_visitato=fopen("visite_all.txt", r);     //Apre il file delle visite oggi $visite_leggi=fread($apri_visite_visitato, filesize("visite_all.txt"));   //Legge tutto il file fclose($apri_visite_visitato);                                        //Lo chiude echo "[b]Visite totali:  ".$visite_leggi."[/b]"; if ($HTTP_COOKIE_VARS["SCW_STAT"]=="visitato"){       //Controlla se l'utente ha visitato il sito nelle precedenti 24 ore }else{ setcookie ("SCW_STAT","visitato",time()+86400,"/");  //Setta il cookie $apri_visite_no=fopen("visite_all.txt", r); //Apre il file con le visite totali $visite_leggi=fread($apri_visite_no, filesize("visite_all.txt"));    //Lo legge fclose($apri_visite_no);                    //lo chiude $apri_visite_write=fopen("visite_all.txt", w);           //Apre il file per scrivere fwrite($apri_visite_write, $visite_leggi+1);         //Scrive il numero prima letto e lo somma a 1 fclose($apri_visite_write);                          //Chiude il file in esame } // //VISITE OGGI $apri_oggi=fopen("visite_oggi.txt", r); $array_oggi=file("visite_oggi.txt"); fclose($apri_oggi); echo "
    [b]Visite oggi:  ".$array_oggi[0]."[/b]"; if ($HTTP_COOKIE_VARS["SCW_STAT"]=="visitato"){ }else{ setcookie ("SCW_STAT","visitato",time()+86400,"/");  //Setta il cookie $apri_oggi=fopen("visite_oggi.txt", r); $array_oggi=file("visite_oggi.txt"); fclose($apri_oggi); $leggi_oggi_w=fopen("visite_oggi.txt", w); $write=$array_oggi[0]; if (date("d-m-y")==$array_oggi[1]){ fwrite ($leggi_oggi_w$write+1); fwrite ($leggi_oggi_w, "\n".$array_oggi[1]); }else{ fwrite ($leggi_oggi_w, "1"); fwrite ($leggi_oggi_w, "\n".(date("d-m-y"))); } } echo $HTTP_COOKIE_VARS["SCW_STAT"]; ?>
    Spero sappiate aiutarmi
    Grazie in anticipo

    SC
    http://www.simonecassin.altervista.org => NEW!!!

    http://simonecassin.altervista.org/guida/ =>Nuova guida di Base al Pascal

    http://simonecassin.altervista.org/Forum/ =>Nuovissimo forum!!!

  2. #2
    Utente di HTML.it L'avatar di neroux
    Registrato dal
    Aug 2009
    Messaggi
    1,973
    Meglio usare $_COOKIE invece di $HTTP_COOKIE_VARS

    www.sitemeer.com » Quando un sito pare irraggiungibile

    Se ti piace ci puoi trovare anche su Facebook

  3. #3
    EDIT: rettifico, non funziona nemmeno ora il codice.
    Codice PHP:
    <?php //VISITE TOTALI $apri_visite_visitato=fopen("visite_all.txt", r);     //Apre il file delle visite oggi $visite_leggi=fread($apri_visite_visitato, filesize("visite_all.txt"));   //Legge tutto il file fclose($apri_visite_visitato);                                        //Lo chiude echo "[b]Visite totali:  ".$visite_leggi."[/b]"; if ($_COOKIE["SCW_STAT"]=="visitato"){       //Controlla se l'utente ha visitato il sito nelle precedenti 24 ore }else{ setcookie ("SCW_STAT","visitato",time()+86400,"/");  //Setta il cookie $apri_visite_no=fopen("visite_all.txt", r); //Apre il file con le visite totali $visite_leggi=fread($apri_visite_no, filesize("visite_all.txt"));    //Lo legge fclose($apri_visite_no);                    //lo chiude $apri_visite_write=fopen("visite_all.txt", w);           //Apre il file per scrivere fwrite($apri_visite_write, $visite_leggi+1);         //Scrive il numero prima letto e lo somma a 1 fclose($apri_visite_write);                          //Chiude il file in esame } // //VISITE OGGI $apri_oggi=fopen("visite_oggi.txt", r); $array_oggi=file("visite_oggi.txt"); fclose($apri_oggi); echo "
    [b]Visite oggi:  ".$array_oggi[0]."[/b]"; if ($_COOKIE["SCW_STAT"]=="visitato"){ }else{ setcookie ("SCW_STAT","visitato",time()+86400,"/");  //Setta il cookie $apri_oggi=fopen("visite_oggi.txt", r); $array_oggi=file("visite_oggi.txt"); fclose($apri_oggi); $leggi_oggi_w=fopen("visite_oggi.txt", w); $write=$array_oggi[0]; if (date("d-m-y")==$array_oggi[1]){ fwrite ($leggi_oggi_w$write+1); fwrite ($leggi_oggi_w, "\n".$array_oggi[1]); }else{ fwrite ($leggi_oggi_w, "1"); fwrite ($leggi_oggi_w, "\n".(date("d-m-y"))); } } echo $_COOKIE["SCW_STAT"]; ?> [/b]
    http://www.simonecassin.altervista.org => NEW!!!

    http://simonecassin.altervista.org/guida/ =>Nuova guida di Base al Pascal

    http://simonecassin.altervista.org/Forum/ =>Nuovissimo forum!!!

  4. #4
    Potresti provare a postare il codice in modo che sia leggibile?

    Detto ciò, probabilmente è una questione di invio degli header DOPO l'invio di dati al buffer d'uscita. Vedi:

    Come abilitare la visualizzazione degli errori in PHP.
    Warning: Cannot modify header information - headers already sent ...

  5. #5
    Scusa, ma l'ho postato con il pulsante "PHP" non essendoci il pulsante "CODE"

    Lo posto così com'è, senza i bb code:

    <?php
    //VISITE TOTALI
    $apri_visite_visitato=fopen("visite_all.txt", r); //Apre il file delle visite oggi
    $visite_leggi=fread($apri_visite_visitato, filesize("visite_all.txt")); //Legge tutto il file
    fclose($apri_visite_visitato); //Lo chiude
    echo "Visite totali: ".$visite_leggi."";
    if ($_COOKIE["SCW_STAT"]=="visitato"){ //Controlla se l'utente ha visitato il sito nelle precedenti 24 ore
    }else{
    setcookie("SCW_STAT","visitato",time()+86400,"/"); //Setta il cookie
    $apri_visite_no=fopen("visite_all.txt", r); //Apre il file con le visite totali
    $visite_leggi=fread($apri_visite_no, filesize("visite_all.txt")); //Lo legge
    fclose($apri_visite_no); //lo chiude
    $apri_visite_write=fopen("visite_all.txt", w); //Apre il file per scrivere
    fwrite($apri_visite_write, $visite_leggi+1); //Scrive il numero prima letto e lo somma a 1
    fclose($apri_visite_write); //Chiude il file in esame
    }
    //
    //VISITE OGGI
    $apri_oggi=fopen("visite_oggi.txt", r);
    $array_oggi=file("visite_oggi.txt");
    fclose($apri_oggi);
    echo "
    Visite oggi: ".$array_oggi[0]."";
    if ($_COOKIE["SCW_STAT"]=="visitato"){
    }else{
    setcookie("SCW_STAT","visitato",time()+86400,"/"); //Setta il cookie
    $apri_oggi=fopen("visite_oggi.txt", r);
    $array_oggi=file("visite_oggi.txt");
    fclose($apri_oggi);
    $leggi_oggi_w=fopen("visite_oggi.txt", w);
    $write=$array_oggi[0];
    if (date("d-m-y")==$array_oggi[1]){
    fwrite ($leggi_oggi_w, $write+1);
    fwrite ($leggi_oggi_w, "\n".$array_oggi[1]);
    }else{
    fwrite ($leggi_oggi_w, "1");
    fwrite ($leggi_oggi_w, "\n".(date("d-m-y")));
    }
    }
    echo $_COOKIE["SCW_STAT"];
    ?>
    [/b]

    EDIT: mettendo il codice proposto dal tuo primo link viene fuori una cosa come:
    Notice: Use of undefined constant r - assumed 'r' in /membri/simonecassin/contatore.php on line 7
    Visite totali: 4
    Notice: Undefined index: SCW_STAT in /membri/simonecassin/contatore.php on line 11

    Warning: Cannot modify header information - headers already sent by (output started at /membri/simonecassin/index.php:97) in /membri/simonecassin/contatore.php on line 13

    Notice: Use of undefined constant r - assumed 'r' in /membri/simonecassin/contatore.php on line 14

    Notice: Use of undefined constant w - assumed 'w' in /membri/simonecassin/contatore.php on line 17

    Notice: Use of undefined constant r - assumed 'r' in /membri/simonecassin/contatore.php on line 23

    Visite oggi: 4
    Notice: Undefined index: SCW_STAT in /membri/simonecassin/contatore.php on line 27

    Warning: Cannot modify header information - headers already sent by (output started at /membri/simonecassin/index.php:97) in /membri/simonecassin/contatore.php on line 29

    Notice: Use of undefined constant r - assumed 'r' in /membri/simonecassin/contatore.php on line 30

    Notice: Use of undefined constant w - assumed 'w' in /membri/simonecassin/contatore.php on line 33

    Notice: Undefined index: SCW_STAT in /membri/simonecassin/contatore.php on line 43


    Cosa vuol dire? Cosa devo cambiare?

    --------------------------------------------------------

    Ho modificato delle cose nel codice (i doppi apici nel fopen) e ora mi rimangono questi errori:

    Visite totali: 18
    Notice: Undefined index: SCW_STAT in /membri/simonecassin/contatore.php on line 11

    Warning: Cannot modify header information - headers already sent by (output started at /membri/simonecassin/index.php:97) in /membri/simonecassin/contatore.php on line 13

    Visite oggi: 18
    Notice: Undefined index: SCW_STAT in /membri/simonecassin/contatore.php on line 27

    Warning: Cannot modify header information - headers already sent by (output started at /membri/simonecassin/index.php:97) in /membri/simonecassin/contatore.php on line 29

    Notice: Undefined index: SCW_STAT in /membri/simonecassin/contatore.php on line 4
    http://www.simonecassin.altervista.org => NEW!!!

    http://simonecassin.altervista.org/guida/ =>Nuova guida di Base al Pascal

    http://simonecassin.altervista.org/Forum/ =>Nuovissimo forum!!!

  6. #6
    Ciao i vari messaggi di errore erano nella mancanza degli apici su r e w,bisogna fare così:
    'r','w'.
    certo il cookie te lo setta,pero' per un contatore in questo modo non incrementa al nuovo accesso alla pagina con cookie ancora esistente.ti consiglio di usare le sessioni|cmq ho corretto il tuo codice in questo modo('anche se io preferisco programmare ad oggetti'):

    Codice PHP:
    <?php
    session_start
    ();
    $file="visite_all.txt";
    $file2="visite_oggi.txt";
    if(!
    file_exists($file))
    {
    $fd=fopen($file,"w+");
    fwrite($fd,"0");
        
    fclose($fd);
    }
    if(!
    file_exists($file2))
    {
    $fd=fopen($file2,"w+");
    fwrite($fd,"0"."/".date("d-m-y"));
        
    fclose($fd);
    }

    if (!isset(
    $_SESSION["VISITATO"])){

      
    $fd=fopen($file,"r");
           
    $visite_leggi=fread($fd,filesize($file));
     
    $visite_leggi++;
      echo 
    "[b]Visite totali: ".$visite_leggi."[/b]
    "
    ;
    $apri_visite_write=fopen($file"w+"); //Apre il file per scrivere

    fwrite($apri_visite_write$visite_leggi);
    fclose($apri_visite_write);

    $apri_oggi=fopen($file2"r");
    $val_oggi=fread($apri_oggi,filesize($file2));
    $array_oggi=explode("/",$val_oggi);
    fclose($apri_oggi);

        
    $visite_oggi=$array_oggi[0];
    if (
    date("d-m-y")==$array_oggi[1]){
    $visite_oggi++;

    $fd=fopen($file2,"w+");
    $res=$visite_oggi."/".$array_oggi[1];
    fwrite ($fd$res);

    fclose($fd);
    }
       else
       {
         
    $fd=fopen($file2,"w+");
    $res="1"."/".date("d-m-y");
    fwrite ($fd$res);
    fclose($fd);
    $visite_oggi="1";
       }
    echo 
    "
    [b]Visite oggi: "
    .$visite_oggi."[/b]";
    $_SESSION['VISITATO']="ok";

       }
    else{
    $apri_visite_visitato=fopen($file"r"); //Apre in lettura il file delle visite oggi
    $visite_leggi=fread($apri_visite_visitatofilesize($file)); //Legge tutto il file
    fclose($apri_visite_visitato);
     
    //Lo chiude
    echo "[b]Visite totali: ".$visite_leggi."[/b]";
      
    $apri_oggi=fopen($file2"r");
    $val_oggi=fread($apri_oggi,filesize($file2));
    $array_oggi=explode("/",$val_oggi);
    fclose($apri_oggi);


    if (
    date("d-m-y")==$array_oggi[1]){

        
    $visite_oggi=$array_oggi[0];
    $fd=fopen($file2,"w+");
    $res=$visite_oggi."/".$array_oggi[1];
    fwrite ($fd$res);

    fclose($fd);
    }
       else
       {
         
    $fd=fopen($file2,"w+");
    $res="1"."/".date("d-m-y");
    fwrite ($fd$res);
    fclose($fd);
    $visite_oggi="1";

       }

     echo 
    "
    [b]Visite oggi: "
    .$visite_oggi."[/b]";
    }




    ?>
    se poi vuoi aggiungere anche i cookie fammi sapere..

  7. #7
    Si, vorrei aggiungere i cookie.

    Quell'errore l'avevo già identificato. Ho scelto di usare i cookie perchè così posso impostare quanto tempo permangono (nel mio caso 24 ore) mentre le sessioni scompaiono una volta chiuso il browser....
    insomma: per un fatto di affidabilità nel "contare" le visite
    http://www.simonecassin.altervista.org => NEW!!!

    http://simonecassin.altervista.org/guida/ =>Nuova guida di Base al Pascal

    http://simonecassin.altervista.org/Forum/ =>Nuovissimo forum!!!

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.