editare file txt in text area php

michaelvismart

Nuovo Utente
22 Ago 2009
1
0
0
Ciao Ragazzi aiuto!!!!!!!,
è da un paio di giorni che sto combattendo con questo scrip ma non ne vengo a capo:
se al posto del parametro $GET_['p'] inserisco il nome del file ad esempio read.txt lo script funziona, mentre se al posto del nome del file inserisco $GET_['p'] (nome del file recuperato da un parametro ) lo script mi ritorna un' errore.
Vi posto il codice per ulteriore chiarimento
Grazie a tutti coloro che mi risponderanno

<?php
$what = $_GET['p'];

?>
<font face="Georgia">Edit <?php echo $what; ?></font>


<?php
$loadcontent = $_GET['p'];
if($save_file) {
$savecontent = stripslashes($savecontent);
$fp = @fopen($loadcontent, "w");
if ($fp) {
echo 'written';
fwrite($fp, $savecontent);
fclose($fp);
}
}
$fp = @fopen($loadcontent, "r");
$loadcontent = fread($fp, filesize($loadcontent));
$loadcontent = htmlspecialchars($loadcontent);
fclose($fp);

?>
<form method=post action="<?=$_SERVER['PHP_SELF']?>">
<textarea name="savecontent" cols="70" rows="25"><?php echo $loadcontent ?></textarea>
<br>
<input type="submit" name="save_file" value="Save">
</form>
<p><a href="java script:history.go(-1)">Back</a></p>
 
Dovresti postare maggiori informazioni riguardo all'errore che ti viene restituito.
Comunque prova ad aggiungere queste righe al tuo codice:

PHP:
...
$loadcontent = $_GET['p'];

$orderv= array("\r\n", "\n", "\r");
$loadcontent = str_replace($order, "", $loadcontent);

if($save_file) {
...
 
Da qualche parte $save_file è settato a true?
Rimuovi la @ davanti alle varie istruzioni dove l'hai messa tanto per evitare di leggere un secondo errore (effetto collaterale) anziché l'errore vero.

Io darei anche un'ordinata ai nomi delle variabili... almeno per rendere un po' più evidente l'errore.
In particolare ti faccio notare che hai usato $loadcontent come nome di file (usato in apertura sia per scrittura che lettura) e variabile inizializzata con il contenuto del file stesso.
$savecontent è usato per il contenuto della textarea.

Ti consiglierei di usare:
- $contenuto per il contenuto del file (in qualunque fase venga usato)
- $nomefile per il nome del file (in qualunque fase venga usato)
 

Discussioni simili