- Home
- Categorie
- Coding e Sistemistica
- PHP
- Php leggere e modificare file di testo
-
solo un commento veloce... ricordati sempre che quando vai a scrivere sul filesystem dovresti controllare che nei dati che stai per scrivere non ci siano cose potenzialmente dannose, se il form che stai realizzando è accessibile agli utenti dovresti eliminare tag html, codice php o mysql, comandi di shell, dati binari, ecc.
-
@gabriele1986 said:
Ciao l'errore è l'uso dell'opzione w che cancella il contenuto precedente del file txt sostituendolo con quello inserito nella text area
Versione sistemata dello script
[PHP]
<?php
if (isset($_POST['submit']) === true) // Controllo che il form sia stato inviato
{
$file = fopen('file.txt', 'a+'); // apro il file usando l'opzione a o a+ dal momento che l'opzione w o w+ cancella il contenuto precedente
fwrite($file , $_POST['commento']);
fclose($file);
}
?>
<form name="form1" method="post" action="<?php echo $_SERVER['PHP_SELF']?>">
<textarea name="commento" cols="35" rows="8">
<?php
echo file_get_contents('file.txt'); // Stampo il contenuto del file txt nella textarea
?>
</textarea>
<input type="submit" name="submit" value="Invia"></form>
<h1>Il contenuto del file txt è</h1>
<?php
echo file_get_contents('file.txt');
?>
[/PHP]Quà trovi del materiale che potrebbe servirti:allwebfree.it/php_txt. .
Grazie Gabriele appena rientro stasera provo subito....
Usavo w perchè a ed r avevo capito che servivano solo per la lettura...mi hai messo pure per stampare il contenuto nella text-area wow!!!
Stasera provo subito e poi mi guardo il link allegato
-
@fabio.mosti said:
solo un commento veloce... ricordati sempre che quando vai a scrivere sul filesystem dovresti controllare che nei dati che stai per scrivere non ci siano cose potenzialmente dannose, se il form che stai realizzando è accessibile agli utenti dovresti eliminare tag html, codice php o mysql, comandi di shell, dati binari, ecc.
Grazie per il consiglio fabio, in effetti saranno cose a mio avviso sicuramente dannose, sto facendo un minisito semplice alla mia ragazza che vuole scrivere e modificare qualche notizia sulle serie tv tipo di vampiri, lupi mannari & C.
Cmq accederà solo lei da una pagina con login, nel sito accessibile da tutti stampo solo il contenuto della text area.
Ciao!
-
ottimo, l'importante è quello... come intendi proteggere la pagina di modifica, con un file .htaccess o usi le sessioni di php? fra le due, la prima è più semplice, la seconda un po' più robusta
-
@gabriele1986 said:
Ciao l'errore è l'uso dell'opzione w che cancella il contenuto precedente del file txt sostituendolo con quello inserito nella text area
Versione sistemata dello script
[PHP]
<?php
if (isset($_POST['submit']) === true) // Controllo che il form sia stato inviato
{
$file = fopen('file.txt', 'a+'); // apro il file usando l'opzione a o a+ dal momento che l'opzione w o w+ cancella il contenuto precedente
fwrite($file , $_POST['commento']);
fclose($file);
}
?>
<form name="form1" method="post" action="<?php echo $_SERVER['PHP_SELF']?>">
<textarea name="commento" cols="35" rows="8">
<?php
echo file_get_contents('file.txt'); // Stampo il contenuto del file txt nella textarea
?>
</textarea>
<input type="submit" name="submit" value="Invia"></form>
<h1>Il contenuto del file txt è</h1>
<?php
echo file_get_contents('file.txt');
?>
[/PHP]Quà trovi del materiale che potrebbe servirti: allwebfree.it/php_txt.php .
Ecco, lho provato , all'inizio non andava con action sun <?php echo $_SERVER['PHP_SELF']?>
e ho messo (grazie ai tuoi consigli di lettura) il metodo di apertura su "c" così non cancella il contenuto quando lo apre e lo puoi modificare ed inviare.
La versione finale del codice è la seguente:
[HTML]
<form name="form1" method="post" action="prova_modifiche1.php">
<textarea name="commento" class="editabile">
<?php
echo file_get_contents('divina.txt'); // Stampo il contenuto del file txt nella textarea
?>
</textarea>
<input type="submit" name="submit" value="Invia"></form>
<h1>Il contenuto del file txt è</h1>
<?php
echo file_get_contents('divina.txt');
?>
[/HTML]e per action:
[HTML]
<?php
if (isset($_POST['submit']) === true) // Controllo che il form sia stato inviato
{
$file = fopen('divina.txt', 'c'); // apro il file usando l'opzione a o a+ dal momento che l'opzione w o w+ cancella il contenuto precedente
fwrite($file , $_POST['commento']);
fclose($file);
header("Location: ./index.php");
}
?>
[/HTML]Ecco così me lo modifica e lo salva quasi regolarmente.....
Si possono fare aggiunte e cncellare qualcosina, ma se per esempio si vuole cancellare tutto e scrivere solo ciao.......prova tu stesso ho questo dfominio dove faccio le mie prove.... prova a cancellare tutto il testo e scrivere tu e poi inviare, oppure prova a cancellare l'immagine, va cosa rimane e cosa ciu vuole per cancellarlo.....:x
belinchecodice.altervista.org/prova_editor/index.php
In più ho altri 2 problemini, difficelmente risolvibili credo.
Di quel favoloso editor non mi prende
-colore carattere
-grandezza carattereCioè funzionano le icone (chechissene) e non queste cose più importanti, possibile?
Grazie mille ciao
-
Ecco, lho provato , all'inizio non andava con action sun <?php echo $_SERVER['PHP_SELF']?>
e ho messo (grazie ai tuoi consigli di lettura) il metodo di apertura su "c" così non cancella il contenuto quando lo apre e lo puoi modificare ed inviare.Scusa come mai come costante nel parametro dopo l'apertura del file hai messo la costate c?
ho fatto un test rapido usando la costante c come secondo parametro nella funzione per l'apertura del file e "stranamente" ( dal momento che la costante c non è tra quelle previste dalle funzioni per la manipolazione del file vedi link o documentazione di php) permette random di applicare le modifiche, per quando riguarda il problema con l'editor, potrebbe dipendere dalla versione che usi, se è una versione rc ancora in beta potrebbe avere qualche bug,
per il discorso dell'immagine devo ancora pensare cosa potrebbe essere, fai solo una prova a sostituire c con a come dall'esempio che ti ho postato e vedi se si risolvono i vari problemi, a me funzionava lo script senza problemi, non ho provato integrando un editor wysiwyg, ma non dovrebbe cambiare dal momento che l'editor non interagisce con le parti in php.all'inizio non andava con action sun <?php echo $_SERVER['PHP_SELF']?>
forse non ti andava perchè avevi spostato la parte dei controlli sulla pagina prova_modifica1.pph
<?php echo $_SERVER['PHP_SELF']?> fà riferimento alla stessa pagina come metodo dell'action quindi vuole i controlli sulla stessa pagina.
-
Trova la costante c mi era sfuggita sulla documentazione, credo che però il problema sia dato dall'uso di quella costante, perchè leggendo la documentazione sembra un misto tra la costante w e la costante a.
-
@fabio.mosti said:
ottimo, l'importante è quello... come intendi proteggere la pagina di modifica, con un file .htaccess o usi le sessioni di php? fra le due, la prima è più semplice, la seconda un po' più robusta
Ciao fabio, va, non ho proprio le idee chiare, io intendevo proteggerle con il tool di aruba che in automaqtico ti protegge una cartella...certo, voglio imparare ad usare anche metodfi piu manuali...tu nel caso tra sessioni (che avevo provato a farle con successo) e htaccess cosa mi consigli?
Nel caso sai dove trovare tutorial o buoni esempi sull'uso di file(credo sia file) htaccess???
Ciao grazie ancora
-
@gabriele1986 said:
Scusa come mai come costante nel parametro dopo l'apertura del file hai messo la costate c?
ho fatto un test rapido usando la costante c come secondo parametro nella funzione per l'apertura del file e "stranamente" ( dal momento che la costante c non è tra quelle previste dalle funzioni per la manipolazione del file vedi link o documentazione di php) permette random di applicare le modifiche, per quando riguarda il problema con l'editor, potrebbe dipendere dalla versione che usi, se è una versione rc ancora in beta potrebbe avere qualche bug,
per il discorso dell'immagine devo ancora pensare cosa potrebbe essere, fai solo una prova a sostituire c con a come dall'esempio che ti ho postato e vedi se si risolvono i vari problemi, a me funzionava lo script senza problemi, non ho provato integrando un editor wysiwyg, ma non dovrebbe cambiare dal momento che l'editor non interagisce con le parti in php.forse non ti andava perchè avevi spostato la parte dei controlli sulla pagina prova_modifica1.pph
<?php echo $_SERVER['PHP_SELF']?> fà riferimento alla stessa pagina come metodo dell'action quindi vuole i controlli sulla stessa pagina.Ciao gabri, ho trovato la chiamata giusta per fopen è "w+"
messa così fa tutto correttamente: apre modifica, aggiunge test e se lo si vuole cancella tutto con un canc solo (anche le immagini)
se vuoi testare: belinchecodice.altervista.orgGrazie al link che mi avevi inviato ero finito sul manuale di php dove avevano aggiunto anche le chiamate c ecc,ecc...l'articolo si vede era piu datato e non c'erano le ultime.
Ora dell'editor funziona anche la modifica del colore carattere, l'unico bug è che non cambia la grandezza del font, il resto tutto ok...
-
@simo10piu said:
Ciao fabio, va, non ho proprio le idee chiare, io intendevo proteggerle con il tool di aruba che in automaqtico ti protegge una cartella...certo, voglio imparare ad usare anche metodfi piu manuali...tu nel caso tra sessioni (che avevo provato a farle con successo) e htaccess cosa mi consigli?
Nel caso sai dove trovare tutorial o buoni esempi sull'uso di file(credo sia file) htaccess???
Ciao grazie ancoraguarda, si tratta di due soluzioni molto diverse... tendenzialmente le sessioni ti danno più possibilità di azione (puoi salvare variabili, ecc.) mentre la protezione tramite htaccess è una cosa per certi versi più basilare e sicuramente più facile da implementare.
per i file htaccess non c'è lettura migliore della documentazione di apache* (non ti riesco a incollare il link perchè non sono premium XD)*