- Home
- Categorie
- Coding e Sistemistica
- PHP
- problema php scrittura e lettura file
-
problema php scrittura e lettura file
ragazzi nel mio sito ho un blocco dove si inserisce una notizia in una tex-area una volta che si sottomette dovrebbe comparire in un altro blocco dove sono racchiuse le notizie. fino a poco tempo fa funzionava ora per far comparire la notizia devo aggiornare la pagina l'unica cosa che ho inserito negli ultimi tempi sono i div che racchiudono i codici prima era tutto tabellare
questo è il codice dove inserisco la notizia
<div class="blocco" align="center">
<span class="style1" >::Nuova Notizia::</span>
<div class="blocco-inner" align="center">
<? //Inizio codice PHP
$data= date("d-m G:i");
//Recupero la variabile globale del primo numero
$testo=htmlentities(trim($_POST['testo']));if ($testo!="") //Proseguo se almeno un numero è definito
{
$testo= $data . " " . $testo;$file ="notizie.txt";
$testo = $testo . "\n" . "\n" . file_get_contents($file);
$apriw = fopen ($file,"w") or die("Errore nell' apertura del file");fwrite($apriw,"$testo\n")or die("Errore nella scrittura del file");
fclose($apriw);
Header("Location: index.php");
}
?>
<form name="input" action="index.php" method="post" name="testo"><textarea rows="4" cols="18" name="testo"> </textarea>
<br>
<input type="submit" value="Submit"></form><br>
</div></div>
<br>e questo è il blocco dove si visualizzano tutte le notizie
<div class="bloccogrande" align="center">
<span class="style1" >::NOTIZIE::</span>
<div class="bloccogrande-inner" align="center"><br>
<div class="box">
<div class="box-inner"><h3 align="left"> <?php
if (!$p_file = fopen("notizie.txt","r")) {
echo "Spiacente, file danneggiato";
} else {
for($i=0;$i<30;$i++)
{
$linea = fgets($p_file, 255);
echo "$linea<BR>";
}
fclose($p_file);
}
?>
<h3> </div></div>
<br><br>
</div></div>
-
Ciao fraie,
non so esattamente cosa facesse prima lo script ma probabilemte il problema è nelle tre righe che hai inserito prima di aprire il codice php (<?). Se osservi lo script hai un redirect lato server (Header("Location: index.php");) che funziona solo se non invii output prima del comando. In altre parole ogni echo, print o semplice html deve essere sotto il comando header, altrimenti questo non funziona.Come prova, elimina il codice
*** <div class="blocco" align="center">
<span class="style1" >::Nuova Notizia::</span>
<div class="blocco-inner" align="center">***facendo attenzione a non lasciare neanche uno spazio vuoto prima di <?: probabilmente risolvi. Ovviamente devi ristrutturare tutto l'output html...
Facci sapere se, e come, risolvi!