Visualizzazione risultati 1 fino 10 di 10

Discussione: Problem con fopen, fwrite, fclose

  1. #1
    Guest

    Predefinito Problem con fopen, fwrite, fclose

    salve a tutti, da poco ho creato un file in php che va a leggere alcune scritte inserite in un campo di testo e poi le va a scrivere su un file htm con le funzioni fopen, fwrite, fclose....Tutto funziona, ma l'unico problema è che quando nel campo per inserire il testo vengono scritti dei caratteri tipo è oppure viene utilizzato l'apostrofo, nel file htm, vengono scritti dei caratteri diversi, tipo:
    se scrivo Un'cane, esce scritto Un'\cane ecc.
    A cosa può essere dovuto questo problema, e come devo risolverlo....?
    Grazie anticipatamente.

  2. #2
    Guest

  3. #3
    Guest

    Predefinito Ho visto ma....

    Ho visto, ma non ho capito gran che, cortesemente, potresti spiegarmi come eliminare questo problema?

  4. #4
    Guest

    Predefinito

    Passi come parametro a htmlspecialchars() il contenuto della casella di testo e poi salvi nel database ciò che ti restituisce la funzione.

    Se visiti il link postato da debug, trovi un esempio.

    Ciao

  5. #5
    Guest

    Predefinito continuo a non capire

    continuo a non capire...
    Potreste modificarmi il codice?

    questo è il file inserisci.php
    Codice PHP:
    <?php
    $nomefile
    ="database.htm";
    $vecchiofile=fopen($nomefile, "r");
    $contenuto_file=fread($vecchiofile, filesize($nomefile));
    fclose($vecchiofile);
    $data=(date("d-m-Y"));
    $ora=(date("H:i:s"));
    $f=fopen($nomefile, "w+");
    fwrite($f, "<table width=\"600\" border=\"0\" cellspacing=\"5\"
    cellpadding=\"2\"><tr>\r\n"
    );
    fwrite($f, "<td width=\"450\" bgcolor=\"#666666\">
    <font color=\"#CCFF00\" size=\"4\" face=\"Arial, Helvetica, sans-serif\">
    $titolo</font></td>\r\n");
    fwrite($f, "<td width=\"150\" bgcolor=\"#666666\">
    <font color=\"#CCFF00\" size=\"2\" face=\"Arial, Helvetica, sans-serif\">
    $data alle $ora</font></td>\r\n");
    fwrite($f, "</tr><tr>\r\n");
    fwrite($f, "<td colspan=\"2\"><font size=\"2\" face=\"Arial, Helvetica, sans-serif\">$testo</font></td>\r\n");
    fwrite($f, "</tr></table>\r\n");
    fwrite($f, "<br>\r\n");
    fwrite($f, "$contenuto_file\r\n");
    fclose($f);
    ?>

    poi per vederlo utilizzo
    Codice PHP:
    <?php include("database.htm"); ?>

  6. #6
    Guest

    Predefinito

    Prova a modificarlo così:
    Codice PHP:
    <?php
    $nomefile
    ="database.htm";
    $vecchiofile=fopen($nomefile, "r");
    $contenuto_file=fread($vecchiofile, filesize($nomefile));
    fclose($vecchiofile);
    $data=(date("d-m-Y"));
    $ora=(date("H:i:s"));
    $f=fopen($nomefile, "w+");
    fwrite($f, "<table width=\"600\" border=\"0\" cellspacing=\"5\"
    cellpadding=\"2\"><tr>\r\n"
    );
    fwrite($f, "<td width=\"450\" bgcolor=\"#666666\">
    <font color=\"#CCFF00\" size=\"4\" face=\"Arial, Helvetica, sans-serif\">
    $titolo</font></td>\r\n");
    fwrite($f, "<td width=\"150\" bgcolor=\"#666666\">
    <font color=\"#CCFF00\" size=\"2\" face=\"Arial, Helvetica, sans-serif\">
    $data alle $ora</font></td>\r\n");
    fwrite($f, "</tr><tr>\r\n");
    fwrite($f, "<td colspan=\"2\"><font size=\"2\" face=\"Arial, Helvetica, sans-serif\">".htmlspecialchars($testo)."</font></td>\r\n");
    fwrite($f, "</tr></table>\r\n");
    fwrite($f, "<br>\r\n");
    fwrite($f, "$contenuto_file\r\n");
    fclose($f);
    ?>
    Ciao! :)

  7. #7
    Guest

    Predefinito no no

    niente da fare, non funziona, ma mi sorge anche un altro problema, infatti quando scrivo lettere accentate come la è, sul file database.htm esce la è, ma sul file dove c'è la funzione include, esce un quadratino, per quale motivo?

  8. #8
    Guest

    Predefinito

    Codice PHP:
    <?php
    $nomefile
    ="database.htm";

    $vecchiofile=fopen($nomefile, "r");

    $contenuto_file=fread($vecchiofile, filesize($nomefile));

    fclose($vecchiofile);

    $data=(date("d-m-Y"));

    $ora=(date("H:i:s"));

    $testonuovo = htmlspecialchars($testo, ENT_QUOTES);

    $f = fopen($nomefile, "w+");

    fwrite($f, "<table width=\"600\" border=\"0\" cellspacing=\"5\"
    cellpadding=\"2\"><tr>\r\n"
    );

    fwrite($f, "<td width=\"450\" bgcolor=\"#666666\">
    <font color=\"#CCFF00\" size=\"4\" face=\"Arial, Helvetica, sans-serif\">
    $titolo</font></td>\r\n");

    fwrite($f, "<td width=\"150\" bgcolor=\"#666666\">
    <font color=\"#CCFF00\" size=\"2\" face=\"Arial, Helvetica, sans-serif\">
    $data alle $ora</font></td>\r\n");

    fwrite($f, "</tr><tr>\r\n");

    fwrite($f, "<td colspan=\"2\"><font size=\"2\" face=\"Arial, Helvetica, sans-serif\">$testonuovo</font></td>\r\n");

    fwrite($f, "</tr></table>\r\n");

    fwrite($f, "<br>\r\n");

    fwrite($f, "$contenuto_file\r\n");

    fclose($f);

    ?>
    Ciao! :)

  9. #9
    Guest

    Predefinito niente

    Il problema persiste

    gradie per il tempo dedicatomi

  10. #10
    Guest

    Predefinito

    non conosco benissimo il php ma così dovrebbe andare:
    Codice PHP:
    <?php
    $nomefile
    ="database.htm";
    $vecchiofile=fopen($nomefile, "r");
    $contenuto_file=fread($vecchiofile, filesize($nomefile));
    fclose($vecchiofile);
    $data=(date("d-m-Y"));
    $ora=(date("H:i:s"));
    $towrite = "<table width=\"600\" border=\"0\" cellspacing=\"5\"
    cellpadding=\"2\"><tr>\r\n"
    ;
    $towrite .= "<td width=\"450\" bgcolor=\"#666666\">
    <font color=\"#CCFF00\" size=\"4\" face=\"Arial, Helvetica, sans-serif\">"
    . $titolo . "</font></td>\r\n";
    $towrite .= "<td width=\"150\" bgcolor=\"#666666\">
    <font color=\"#CCFF00\" size=\"2\" face=\"Arial, Helvetica, sans-serif\">"
    . $data . "alle " . $ora . "</font></td>\r\n";
    $towrite .= "</tr><tr>\r\n";
    $towrite .="<td colspan=\"2\"><font size=\"2\" face=\"Arial, Helvetica, sans-serif\">" . $testo . "</font></td>\r\n";
    $towrite .= "</tr></table>\r\n";
    $towrite .= "<br>\r\n";
    $towrite .= $contenuto_file . "\r\n";
    $f=fopen($nomefile, "w+");
    fwrite($f, $towrite);
    fclose($f);
    ?>
    il problema veiva anche a me, se sei in locale con linux è forse quello

Regole di scrittura

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