Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1

    Contatore incremento anomalo

    Buongiorno,
    ho provato due diversi script di counter molto semplici,
    (uno dei quali è quello della guida "PHP guida PRATICA").
    Entrambi utilizzano un file di testo per memorizzare le visite.
    stralcio minimale:

    Codice PHP:
    $visits_file "lib/visits.txt";
    $counter fopen($visits_file"r");
    $total fread($counterfilesize($visits_file));
    fclose($counter);

    $total++;          

    $counter fopen($visits_file"w");     
    fwrite($counter$total);     
    fclose($counter); 
    Ho notato che a seconda del browser utilizzato,
    lo script memorizza sul file un incremento differente:
    -Mozilla incrementa per multipli di 3:
    primo caricamento: $visit=0 (letto da file) -> html "visite:1
    ricaricando la pagina: $visit=3 (letto da file) -> html "visite:4
    ricaricando la pagina: $visit=6 (letto da file) -> html "visite:7

    -Chrome e Explorer incrementano per multipli di 2:
    primo caricamento: $visit=0 (letto da file) -> html "visite:1
    ricaricando la pagina: $visit=2 (letto da file) -> html "visite:3
    ricaricando la pagina: $visit=4 (letto da file) -> html "visite:5

    -Opera e Safari.... FUNZIONANO BENE!!!

    DOVE risiede l'errore?
    Ogni script provato è concettualmente corretto, il funzionamento anomalo sembra dipendere dal browser.

  2. #2
    ciao

    PHP non risente del browser che stai usando dal momento che è eseguito interamente lato server. Ciascuna prova avviene indipendente oppure

    - provi firefox
    - provi chrome
    - provi safari
    - torni su firefox

    ecc ecc?

  3. #3
    Sto usando php su Apache sul localHost.

    Provando lo script esclusivamente e ripetutamente su Mozzilla ho notato l'anomalia.
    Perciò, solo in seguito ho fatto le prove anche sugli altri browser ma sempre e cmq prove indipendenti l'una dall'altra.

    Che sia propio Apache??

  4. #4
    prova a fare

    $total = (int) fread($counter, filesize($visits_file));

    e vedere come va.

    In ogni caso non ha senso aprire il puntatore al file, leggerlo e chiudere il puntatore al file, poi riaprirlo per scriverci e richiuderlo: aprilo una volta e chiudilo una volta, e l'unica volta che lo apri metti come flag 'rw'

  5. #5
    So che non ha senso, ma sto provando script creati da altri.
    Prima di apporre migliorie, vorrei capire dove sta il problema.
    Continua a non funzionare anche cn la modifica che mi hai consigliato,
    e neppure caricando la pagina sul server on-line.

    x oggi mi arrendo

  6. #6
    Credo e ipotizzo, non ho fatto nessuna prova, ma credo che per velocizzare la lettura della pagina firefox richiede la pagina 3 volte separatamente per far visualizzare la pagina completa + velocemente e quindi se ci sono 3 richieste su quella pagina ovviamente lo script scrive per 3 volte.....

    avrò detto una c***?? xò come ipotisi non è male..
    Io penso con la mia di testa..tu come?

  7. #7
    Originariamente inviato da Skyline90
    Credo e ipotizzo, non ho fatto nessuna prova, ma credo che per velocizzare la lettura della pagina firefox richiede la pagina 3 volte separatamente per far visualizzare la pagina completa + velocemente e quindi se ci sono 3 richieste su quella pagina ovviamente lo script scrive per 3 volte.....

    avrò detto una c***?? xò come ipotisi non è male..
    più grossa non potevi spararla

  8. #8
    ahahaha seee...
    provo il codice e vediamo che succede a me
    Io penso con la mia di testa..tu come?

  9. #9
    IDEAAAA fai così e vedrai che fixi il problema....

    $totale = $total + 1;

    Codice PHP:
    $visits_file "lib/visits.txt";
    $counter fopen($visits_file"r");
    $total fread($counterfilesize($visits_file));
    fclose($counter);
    $totale $total 1;         
    $counter fopen($visits_file"w");     
    fwrite($counter$totale);     
    fclose($counter); 
    Testato con firefox e funziona.... la prima volta ti da errore xkè il file txt è vuoto ma se metti 0 risolvi anche per il primo count....

    potete fixare anche la guida
    Io penso con la mia di testa..tu come?

  10. #10
    Originariamente inviato da Skyline90
    IDEAAAA fai così e vedrai che fixi il problema....

    $totale = $total + 1;

    Codice PHP:
    $visits_file "lib/visits.txt";
    $counter fopen($visits_file"r");
    $total fread($counterfilesize($visits_file));
    fclose($counter);
    $totale $total 1;         
    $counter fopen($visits_file"w");     
    fwrite($counter$totale);     
    fclose($counter); 
    Testato con firefox e funziona.... la prima volta ti da errore xkè il file txt è vuoto ma se metti 0 risolvi anche per il primo count....

    potete fixare anche la guida
    $total++ e $total = $total + 1 sono equivalenti

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.