Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2007
    Messaggi
    23

    help fopen "w" scrittura su file.txt

    Premessa sono alle prime esperienze con PHP.

    Con molta fatica ho realizzato uno script per scrivere su un file.txt attraverso un form, salvando un determinato numero di messaggi inviati.

    Quando eseguo lo script con apache funziona tutto, al contrario, quando viene pubblicato ed eseguito in rete non funziona.

    Non capisco perchè?

    Segue listato:

    <html>

    <head>

    <title>salvo dati su txt</title>

    </head>

    <body bgcolor="#ffff99" text="#000000">

    <form action="ghost.php" name="form">
    Se proprio non sai cosa fare scrivi il tuo nome:
    <input type="text" name="nome"> <input type="submit" value="invia">
    </form>

    <?php
    $n = 4; // numero di visite da mantenere
    $f = @fopen("ghost.txt", "r");

    if($f){

    echo "
    Dopo aver inviato il primo nome, ricarica la pagina e invia un altro nome, ho impostato la variabile fino a 4 visite.
    ";
    $i=0;
    while( !feof($f) && $i<$n-1 ){ // finchè fine del file o il $i< $n-1
    $righe[$i] = @fgets($f,4096); // file piccolo! utilizzo array scambio
    $i++;
    }
    @fclose($f); // è importante chiudere il file

    $f = @fopen("ghost.txt", "w"); // adesso lo riempio con i nuovi dati.
    if($f){
    echo "

    Bene, questo è il collegamento al merdoso txt: <a href=\"ghost.txt\">ghost.txt</a> Aperto
    correttamente. Sto salvando i tuoi dati. ";

    $nome=$_GET['nome'];
    $ora = $nome."il tuo IP:".$REMOTE_ADDR." alle ore: ".date("d-m-Y G:i:s")." \n";
    @fputs($f,$ora); // scrive la frase nel file tramite $f
    for ($i=0; $i<count($righe); $i++)
    @fputs($f,$righe[$i]);

    @fclose($f); // è importante chiudere il file
    echo ".......Fatto!";
    }

    }else{

    echo "
    Il file ghost.txt non esiste. Lo creo.";

    $f = @fopen("ghost.txt", "w");

    if($f){

    echo "

    file <a href=\"ghost.txt\">ghost.txt</a> Aperto
    correttamente. Sto salvando i tuoi dati";

    $ora = $nome."il tuo IP:".$REMOTE_ADDR." alle ore: ".date("d-m-Y G:i:s")." \n";
    $nome=$_GET['nome'];
    @fputs($f,$ora); // scrive la frase nel file tramite $f
    @fclose($f); // è importante chiudere il file

    echo ".......Fatto!";

    }else{
    echo "

    Non posso creare il ghost.txt";
    }
    }
    ?>

    </body>
    </html>

  2. #2
    Utente di HTML.it L'avatar di Gab-81
    Registrato dal
    Nov 2005
    Messaggi
    558
    Cosa intendi per "non funziona"? Potresti fare una prova eliminando le "@" per farti stampare messaggi di errore...la prima cosa che mi viene in mente è che sia un problema di permessi in scrittura: per caso in locale sei su Win e sul server sei su Unix? Ricevi qualche messaggio di errore particolare? Dire nn funziona è troppo generico...

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2007
    Messaggi
    23
    Mi sono riletto i dati di configurazione del dominio, ho commesso degli errori di pubblicazione dei files, ci sono cartelle con permessi di scrittura e altre no, le ho ricollocate, ho cancellato le "@", ora tutto funziona.

    Grazie

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.