Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2016
    Messaggi
    9

    Inserimento valori in file TXT con PHP

    Salve ho un problema che riguarda l'inserimento di valori in un fil txt.

    In pratica ho creato uno script in php che recupera dati passati da una funzione AJAX e li deve inserire in un file testuale...i dati passati allo script sono l'id della struttura, il nome della struttura e un contatore che fa da contaclick.

    Ecco il codice PHP:

    Codice PHP:
    <?php

    $contatore
    =1;
    $id_struttura $_POST["idstruttura"];
    $nome_struttura $_POST["nomestruttura"];

    $fp fopen("click_counter.txt""a+");
    if(!
    $fp) die ("<strong>Errore nella connessione con il file txt</strong>");

    $contenuto_file =file_get_contents("click_counter.txt");
    $righe explode("\n"$contenuto_file);

    foreach(
    $righe as $riga) {
    $parte explode("|"$riga);

    if ( 
    $parte[0] == $id_struttura ) {
    $contatore=$parte[2]+1;
    fwrite($fp"$id_struttura|$nome_struttura|$contatore\n"); }
    else {
    fwrite($fp"$id_struttura|$nome_struttura|$contatore\n"); }
    }
    fclose($fp);

    ?>

    In pratica mi scrive correttamente tutte le righe la prima volta che va in esecuzione presentandomi in click_counter.txt un output di questo tipo:

    $id_struttura|$nome_struttura|$contatore\n

    Se però torno sulla struttura e faccio click di nuovo sul link che scatena l'evento, invece di aggiornarmi le voci del txt (incrementando solo il contatore), me ne crea delle nuove in aggiunta (col contatore aggiornato)...cosa può essere secondo voi?
    Ultima modifica di gugu85; 02-09-2016 a 16:37

  2. #2
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    fwrite scrive non rimpiazza. Devi svuotare il file dopo il file_get_contents e prima del foreach.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2016
    Messaggi
    9
    Alla fine ho risolto così, nel caso potesse servire a qualcuno:

    Codice PHP:
    <?php

    $contatore
    =1;
    $f=0;
    $id_struttura $_POST["idstruttura"];
    $nome_struttura $_POST["nomestruttura"];
    $nome_categoria $_POST["nomecategoria"];

    $fp fopen("click_counter.txt""a+");
    if(!
    $fp) die ("<strong>Errore nella connessione con il file txt</strong>");

    $contenuto_file =file_get_contents("click_counter.txt");
    $righe explode("#"$contenuto_file);

    foreach(
    $righe as $riga =>$linea) {
    list(
    $id,$nome,$category,$valore) = explode("|",$linea);
    if ( 
    $id == $id_struttura ) {
    $valore++;
    $righe[$riga] = "$id|$nome|$category|$valore";
    $f=1;
    break;
    }
    }
    if(
    $f == 1){
    $fp2 fopen("click_counter.txt""w+");
    fwrite($fp2,implode('#'$righe));
    }
    if(
    $f == 0){
    fwrite($fp"$id_struttura|$nome_struttura|$nome_categoria|$contatore#");
    }
    fclose($fp);

    ?>
    In questo modo, ogni volta che viene attivato l'evento su una nuova struttura, lo script aggiunge i dati della nuova struttura e imposta il conta click a 1, altrimenti incrementa solo il conta click (sulla struttura gia esistente nel txt)..

    L'unica cosa che non sono riuscito a fare è utilizzare \n al posto di # per fare da separatore nel file txt..usando \n non mi funziona bene, ma con # va benone..

    Se avete dei consigli per ottimizzare questo codice fatevi avanti
    Ultima modifica di gugu85; 05-09-2016 a 13:10

  4. #4
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Comunque se più personne possono accedere allo script contemporeneamante non penso funzionerà.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2016
    Messaggi
    9
    Comunque se più persone possono accedere allo script contemporaneamante non penso funzionerà.
    Mi farebbe piacere se potessi spiegarti meglio...io è da poco che mi sono cimentato col PHP e ogni consiglio è ben accetto...cosa intendi con quello che hai scritto? hai in mente delle soluzioni eventualmente per ovviare a questo problema? fai capire anche me, illuminami

    edit: intendi per caso se più persone fanno click contemporaneamente sul link che attiva l'evento? dici che non riuscirebbe a contare i click in maniera adeguata?

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.