Pagina 1 di 2 12 UltimoUltimo
Visualizzazione risultati 1 fino 30 di 42

Discussione: Editare file di testo con php

  1. #1
    Guest

    Predefinito Editare file di testo con php

    Ciao a tutti!
    Da poco ho cominciato ad usare php nel mio sito e sono contento dei risultati ottenuti.
    Adesso ho creato un contatore visite con questo linguaggio, ma ho un piccolo problema:
    il server non apre il file .txt su cui dovrebbe scrivere i dettagli delle visite.
    X aprire il file ho usato la funzione fopen, così: "fopen (nomefile.txt,r+);"
    Se volete un esempio, andate nella mia home page (picciamico.altervista.org) e guardate a piè di pagina.

    credo che sia colpa del server che non mi da le autorizzazioni necessarie per editare un file...
    o mi sbaglio?
    Qualcuno mi può dare una mano?
    Vi serve che vi posti il codice del contatore?
    Ultima modifica di picciamico : 15-08-2007 alle ore 19.59.16 Motivo: dimenticanza

  2. #2
    Guest

    Predefinito

    Citazione Originalmente inviato da picciamico Visualizza messaggio
    Ciao a tutti!
    Da poco ho cominciato ad usare php nel mio sito e sono contento dei risultati ottenuti.
    Adesso ho creato un contatore visite con questo linguaggio, ma ho un piccolo problema:
    il server non apre il file .txt su cui dovrebbe scrivere i dettagli delle visite.
    X aprire il file ho usato la funzione fopen, così: "fopen (nomefile.txt,r+);"
    Se volete un esempio, andate nella mia home page (picciamico.altervista.org) e guardate a piè di pagina.

    credo che sia colpa del server che non mi da le autorizzazioni necessarie per editare un file...
    o mi sbaglio?
    Qualcuno mi può dare una mano?
    Vi serve che vi posti il codice del contatore?
    Sbaglio o r+ va tra virgolette? solo una possibile soluzione he he

  3. #3
    L'avatar di mythologia
    mythologia non è connesso Moderatore
    Data registrazione
    05-01-2004
    Messaggi
    2,614

    Predefinito

    Probabilmente il file che tenti di aprire non esiste, almeno nella cartella nella quale tenti... Prova a cambiare mode r+ con w+... in tal modo parte sempre dall'inizio nella lettura/scrittura e se non esiste il file tenta di crearlo

  4. #4
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Citazione Originalmente inviato da Dharlet Visualizza messaggio
    Sbaglio o r+ va tra virgolette? solo una possibile soluzione he he
    Anche il percorso del file va tra virgolette.
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  5. #5
    L'avatar di mythologia
    mythologia non è connesso Moderatore
    Data registrazione
    05-01-2004
    Messaggi
    2,614

    Predefinito

    Credo, però, che in tal caso ci sarebbe proprio un errore a livello di codice, che sembra invece non esserci...

  6. #6
    Guest

    Predefinito Re

    scusate, avete ragione ho dimenticato di mettere le virgolette nel messaggio. Però nello script php eccome se le ho messe, ma non funge! Ho già provato con le opzioni w, w+ e anche a+ ma niente da fare... il file si che esiste!
    Voi avete fatto una cosa del genere nel vostro sito? Ha funzionato?

  7. #7
    Ospite Guest

    Predefinito

    Posta lo script in uso per intero

  8. #8
    Guest

    Thumbs up Script

    ecco qui:

    Codice PHP:
    <?php

    $text_file
    = "contatore.txt";
    $dir_numeri = "./num/";
    $min_num = 8;

    if (
    file_exists($text_file))
    {
    $fp = fopen("$text_file", "a+");
    flock($fp, 1);
    $visite = fgets($fp, 4096);
    $visite += 1;
    fseek($fp,0);
    fputs($fp, $visite);
    flock($fp, 3);
    fclose($fp);
    }
    else
    {
    echo
    "Errore nell'apertura del file<br>";
    exit;
    }


    chop($count);
    $min_num = max(strlen($visite), $min_num);
    $visite = substr("0000000000".$visite, -$min_num);

    $num = preg_split("//", $visite);

    for(
    $i = 0; $i <= $min_num; $i++)
    {
    if (
    $num[$i] != "")
    {
    $tot .= "<img src=\"$dir_numeri$num[$i].gif\">";
    }
    }

    ?>

    <?php echo $tot; ?>
    Quando posti un codice, utilizza gli appositi TAG!
    Ultima modifica di jostock : 18-08-2007 alle ore 23.32.51

  9. #9
    Guest

    Predefinito

    controlla se il file num/contatore.txt esiste, infatti esce la scritta che il fil enon è stato trovato

  10. #10
    Guest

    Predefinito si

    eccome se esiste, avevo già verificato in precedenza la sua esistenza!!

    Non è che qualcuno può provare per curiosità nel suo sito, a creare un file txt e uno script che vi accede tramite la funzione fopen("nomefile.txt","r+");

    X favore... e poi fatemi sapere

  11. #11
    L'avatar di mythologia
    mythologia non è connesso Moderatore
    Data registrazione
    05-01-2004
    Messaggi
    2,614

    Predefinito

    Prova così (togliendo il punto prima di /num/):

    Codice PHP:
    <?php

    $text_file
    = "contatore.txt";
    $dir_numeri = "/num/";
    $min_num = 8;

    if (
    file_exists($text_file))
    {
    $fp = fopen("$text_file", "a+");
    flock($fp, 1);
    $visite = fgets($fp, 4096);
    $visite += 1;
    fseek($fp,0);
    fputs($fp, $visite);
    flock($fp, 3);
    fclose($fp);
    }
    else
    {
    echo
    "Errore nell'apertura del file<br>";
    exit;
    }


    chop($count);
    $min_num = max(strlen($visite), $min_num);
    $visite = substr("0000000000".$visite, -$min_num);

    $num = preg_split("//", $visite);

    for(
    $i = 0; $i <= $min_num; $i++)
    {
    if (
    $num[$i] != "")
    {
    $tot .= "<img src=\"$dir_numeri$num[$i].gif\">";
    }
    }

    ?>

    <?php echo $tot; ?>

  12. #12
    Guest

    Predefinito no

    Provato: non funziona! non c'è nessuno che mi può aiutare?
    Ripeto: qualcuno può provare nel suo sito PER FAVOREEEEEE ?
    E poi mi fa sapere...

  13. #13
    L'avatar di mythologia
    mythologia non è connesso Moderatore
    Data registrazione
    05-01-2004
    Messaggi
    2,614

    Predefinito

    Scusa ma l'errore possibile è solo che non esista il file, almeno nella stessa directory dello script...

  14. #14
    Guest

    Predefinito Si

    Te l'assicuro!!! Se non ci credi vai su questa pagina ci sono i link x i files:
    http://www.picciamico.altervista.org/prova.html
    Ultima modifica di jostock : 23-08-2007 alle ore 22.07.18

  15. #15
    Guest

    Predefinito

    lo script funziona... sono le immagini del contatore che non funzionano

  16. #16
    Guest

    Predefinito re

    cioè? L'hai provato sul tuo sito e funziona oppure guardando il codice hai dedotto che è colpa delle immagini?

  17. #17
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,226

    Predefinito

    Il contatore genera un immagine casuale con delle immagini di numero da 0 a 9, dato che ti è stato fornito il codice php ma no le immagini, lo script cerca nella cartella impostata le immagini da far visualizzare agli utenti, quindi non trovandole ti da tutti quadratini bianchi con "X" rosse al centro per segnalare che l'immagine non c'è.
    Lo so perchè anche io utilizzavo quello script poi ho cambiato e ho messo un contatore normale.
    Apprezzi l'aiuto? Offrimi un caffè!

  18. #18
    Guest

    Predefinito no

    Ti sbagli, miki92... il contatore cerca le immagini nella cartella impostata nella variabile $dir_numeri e anch'essi ci sono tutti... non è quello il prob

  19. #19
    Guest

    Predefinito

    lo script cerca le immagini su http://www.picciamico.altervista.org/num/0.gif e in quella posizione non esistono!

  20. #20
    Guest

    Predefinito re

    invece no, siccome lo script php è situato dentro /altro/ lo script va a cercare le immagini in: /altro/num/0.gif

  21. #21
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,226

    Predefinito

    Va beh si, intendevo che cercava i numeri in una cartella preimpostata, comunque ha ragione...i numeri ci sono.
    Non so che dirti, prova a inserire il percorso completo dei numeri. Altrimenti ti consiglio di cambiare contatore
    Apprezzi l'aiuto? Offrimi un caffè!

  22. #22
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Citazione Originalmente inviato da picciamico Visualizza messaggio
    invece no, siccome lo script php è situato dentro /altro/ lo script va a cercare le immagini in: /altro/num/0.gif
    Ma se tu aggiungi lo slash iniziale, va a cercare le immagini partendo dalla root.

    Risolvi il tutto mettendo al posto di:
    Codice PHP:
    $dir_numeri = "/num/";
    Questo:
    Codice PHP:
    $dir_numeri="num/";
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  23. #23
    Guest

    Predefinito

    Però nel sito di picciamico dà "Errore nell'apertura del file", quindi lì non passa il controllo del file_exists.

    Nel sito php.net si possono leggere i commenti di tanti che hanno avuto lo stesso problema, il che potrebbe avere a che fare con safe mode e i proprietari di script, directory, php.

    Comunque, visto che stai usando lo script per il tuo sito, e sai che esiste il file, perché non togli il controllo?

  24. #24
    Guest

    Predefinito re

    Grazie funcool hai ragione, ora ho cambiato quella prozione di codice. Però non funziona lo stesso ho sostituito quell'if(file_exists(nomefile)) con un altro if(senza senso):
    codice:
    if ($min_num==8) # senza senso perchè il valore 8 alla variabile $min_num
    { # è fisso
    etc
    }
    fine codice

    Ma non ha funzionato lo stesso.
    Non c'è qualcun altro che usa questo script come contatore visite? è molto noto, si chiama Access Digits Counter l'ho scaricato da HTML.it e ho adattato le variabili come andavano bene a me...

  25. #25
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Non capisco che problemi hai, andando alla pagina del tuo script non ci sono errori.
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  26. #26
    Guest

    Predefinito grazie

    Hai ragione Funcool!!! Grazie!
    Non me n'ero neanche accorto!!!
    Ora ho capito dove sta l'errore: per aggiungere il contatore alla homepage ho usato INCLUDE "nomefile.php" ma così facendo è come che lo script sia salvato come la home su / (root) e infatti, quando va a cercare il file txt non lo trova perche lo cerca in /contatore.txt
    adesso aggiusto tutto... Grazie di nuovo e Ciao a tutti

    EDIT: Un'altra domanda: se io inserisco tutto il codice dentro una sessione con session() evito che quando la pagina viene ricaricata il contatore aumenti di 1 ?
    Ultima modifica di picciamico : 29-08-2007 alle ore 15.10.09

  27. #27
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Puoi salvare un valore "true" a una sessione, poi verifichi se la sessione esiste e aumenti o meno il contatore.
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  28. #28
    Guest

    Predefinito re

    beh... l'ho fatto. questo è il codice:

    codice:

    session_start();
    if($_SESSION["entrato"] == false)
    {
    $_SESSION["entrato"] = true;

    blabla (codice contatore)
    }

    ma ogni volta che cambio pagina il contatore aumenta di 1. Per vedere vai nel mio sito (www.picciamico.altervista.org) e dal menu di sinistra cambia sezione del sito.

    Come posso fare????

  29. #29
    Ospite Guest

    Predefinito

    Codice PHP:
    session_start();
    if(!
    $_SESSION["entrato"])
    {
    blabla (codice contatore)
    }

  30. #30
    Guest

    Predefinito re

    no Proibid, con il codice che mi hai dato non si vede proprio il contatore...

Pagina 1 di 2 12 UltimoUltimo

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •