Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    150

    Aiuto disperato: contatore che non conta!

    Lo so, anche questa discussione è stata tratta 1000 volte, ma proprio non ne vengo fuori

    file contatore.php
    ------------------------------------
    <?php

    function contatore()
    {
    $file = fopen("contatore.txt", "r+");

    flock($file,2);

    $contatore = fgets($file,4);
    $contatore++;

    rewind($file);

    fputs($file,$contatore,4);

    flock($file,3);
    fclose($file);

    echo "$contatore";

    }

    ?>
    --------------------------

    ho provato ad inserire il richiamo allo script (<?php require ("contatore.php"); ?>) sia prima del tag <html>, sia
    tra i tag <head></head> che tra i tag <body></body>, dove in quest'ultimo logicamente ho messo anche <?php echo contatore(); ?>.

    L'unico problema è che vedo sempre 1 e non incrementa mai.
    Dove sbaglio?

  2. #2
    così ad occhio è difficile dirlo... probabilmente verrà letto un valore nullo dal file, e quindi l'incremento produrrà uno.

    Prova a stampare $contatore prima di incrementarlo.... il perchè legga un valore nullo così du due piedi non saprei dirtelo...

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    150
    Allora, ho fatto altre prove:
    con lo script di prima mi trovo che il file "contatore.txt" (quello dove viene messo il valore del conteggio)
    ha sulla prima rigra 0 (perchè lo facevo partire da li) e crea una seconda riga con il numero 1 (infatti la prima volta, da 0 a 1, mi incrementa sempre).

    Se invece cambio lo script così:
    -----------------------------
    <?php

    function contatore()
    {
    $file = fopen("contatore.txt", "r");

    $contatore = fgets($file,4);
    $contatore++;
    fclose($file);

    $file = fopen("contatore.txt", "w");
    flock($file,2);
    fputs($file,$contatore,4);
    flock($file,3);
    fclose($file);

    echo "$contatore";

    }

    ?>
    -----------------------------

    allora funziona.
    Non capisco proprio perchè.

    Qualche idea ?

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    150
    Dai ragazzi, lo so che è una ca**ata, ma nessuno può aiutarmi ?

  5. #5
    beh. la seconda ricrea ogni volta il file scrivendoci dentro il valore corrente.. chiaro funzioni.-..

    sul perchè non funzioni la prima ne so quanto prima [ripetizione cacofonica ]

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    150
    Nessuno qui ha un contatore su file txt che legge e scrive con l'istruzione fopen in "r+" ???

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    150
    up

  8. #8
    prima leggi il valore del file di testo, se vuoto significa che sei al primo accesso, e quindi imposti contatore a 1 e lo scrivi nel file.
    secondo accesso: il valore del file è diverso da zero, allora prendi questo valore, lo aumenti di uno e lo scrivi..

    e cosi via per tutti gli altri accessi...

  9. #9
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    150
    Porta pazienza, ma questo lo sapevo anch'io.
    Volevo sapere perchè il primo script non va, dov'è l'errore ?

  10. #10
    che errore ti da?

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.