Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    Problema scrittura su file txt

    Salve a tutti, premetto che mi sono avvicinato da poco al mondo del php, come tutti i principianti mi trovo ad avere un problema:

    Scrivendo un file txt mi compaiono nella stringa dei \ prima delle lettere accentate, apostrofi e virgolette, come posso fare?

    questa è la pagina php con cui vado a scrivere il txt partendo da un form normalissimo
    <?php
    file_put_contents('idform.txt', (int)file_get_contents('idform.txt') + 1);
    $textID=fopen("idform.txt", "r");
    $contaID=fread($textID,9999);


    $textfile=fopen("forum.txt", "a");
    $id=$contaID;
    $email=$_POST["email"];
    $richiesta=$_POST['richiesta'];
    $richiesta=str_replace(\, " ",$richiesta);
    $data=date ('d/m/y');
    $risposta="0";
    $datiform="$id|$email|$richiesta|$data|$risposta|\ n";
    $contenuto_completo = $datiform . file_get_contents('forum.txt');
    file_put_contents('forum.txt', $contenuto_completo);

    #fwrite($textfile,$datiform,strlen($datiform));
    fclose($textfile);
    //header("location: http://www.robertameo.it/public/visualizza.php");
    echo "

    Codice inserimento $contaID";
    echo "$richiesta";
    fclose($textID);
    ?>

    Grazie a tutti!!!!!

  2. #2

    Re: Problema scrittura su file txt

    Originariamente inviato da poad
    Scrivendo un file txt mi compaiono nella stringa dei \ prima delle lettere accentate, apostrofi e virgolette, come posso fare?
    Quello che vorresti fare è non far comparire i "\"?

    Ad ogni modo, sostituisci

    $richiesta=str_replace( \ , " ",$richiesta);

    con

    $richiesta=str_replace("\" , " ",$richiesta);

    Comunque modifica il post, dato che c'è un pulsante che consente di evidenziare il codice PHP. Almeno si legge meglio.

  3. #3
    non funziona, mi da il seguente errore:

    Parse error: syntax error, unexpected '"' in D:\Inetpub\webs\tuositoit\public\config\recforum.p hp on line 14

  4. #4
    Oltre a non farli comparire mi piacerebbe anche capire perchè vengono inseriti, se io scrivo nel form ad esempio: Questa è un'altra "prova". nel txt verrà scritto così: Questa \è un\'altra \"prova\". non capisco se devo inserire qualche tipo di codifica....

  5. #5
    Il problema e' molto probabilmente causato da una delle peggiori porcherie di PHP: magic quotes

    In sostanza e' una direttiva che dice a PHP di mettere automaticamente un backslash prima dei caratteri considerati a rischio, in tutti i dati ricevuti in input. Per questa ragione e' sempre utile usare la funzione stripslashes() su qualunque dato venga preso da un form.

  6. #6
    Mitico!!!!! è proprio la risposta che mi serviva, ho provato a mettere il codice che mi hai indicato e funziona! Grazie ancora

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.