Salve a tutti.
Sto facendo uno script per poter scrivere su file di testo tramite form.
il mio script va abbastanza bene.... l'unico problema me lo da quando nel form inserisco dati troppo lunghi.
In pratica quando clicco sul pulsante "invia" non mi fa niente e i form rimangono li. Se però i miei dati non sono relativamente lunghi.... non ho problemi.
Come faccio? ve lo posto
index.html :
<html>
<head>
<title>Pannello di controllo</title>
<link rel="stylesheet" href="../stile.css" type="text/css">
</head>
<body>
<center>
<table width=600>
<tr><td align="center" background="../sfondo.jpg"><font color="#ffffff" size="5"><b>:: PANNELLO DI CONTROLLO ::</b></font></td></tr>
<tr><td>
<form method=get action="verifica.php">
<br><b>TITOLO</b><br>
<input type="text" name="titolo" size="40">
<br><b><i>Anteprima</i></b><br>
<input type="text" name="anteprima" size="80">
<p>Editoriale<br>
<textarea name="articolo" rows="15" cols="80"></textarea> </p>
<br>Immagine<br>
<input type="text" name="immagine" size="20">
<br>
<input type="submit" value="Invia">
<input type="reset" value="Cancella">
</form>
</dt></tr>
<tr><td><center>:: <a href="../admin/prova.html">Home</a> ::</center></td></tr>
<tr><td height="10" width="400" bgcolor="#cccccc"> </td></tr>
</table>
</body>
</html>
verifica.php :
<?php
echo "<center>";
echo "Ciao ecco i risultati del tuo inserimento:";
$errore= false;
If((!$_GET['titolo']) || (!$_GET['anteprima']) || (!$_GET['articolo']) || (!$_GET['immagine'])) {
#controllo che nessun campo sia vuoto
$errore=true;
echo "Non hai compilato tutti i campi <a href="uno.html">torna indietro</a>";
exit;
}
else {
$_GET['titolo'] = stripslashes($_GET['titolo']);
$_GET['anteprima'] = stripslashes($_GET['anteprima']);
$_GET['articolo'] = stripslashes($_GET['articolo']);
$_GET['titolo'] = str_replace("\n", "<br>", $_GET['titolo']);
$_GET['anteprima'] = str_replace("\n", "<br>", $_GET['anteprima']);
$_GET['articolo'] = str_replace("\n", "<br>", $_GET['articolo']);
}
che il file sia accessibile
if (!$apri = fopen ("file.txt","a+")) {
$errore=true;
echo "non posso aprire il file";
}else{
$apriw = fopen ("file.txt","a+");
Sul file scrivo titolo e vado a capo,l'anteprima e vado a capo
l'articolo e vado a capo e il nome dell'immagine
fputs($apriw,$_GET['titolo']."\n");
fputs($apriw,$_GET['anteprima']."\n");
fputs($apriw,$_GET['articolo']."\n");
fputs($apriw,$_GET['immagine']."\n");
#chiudo il file
fclose($apriw);
}
#se c'e l'errore mi dice di inserirli di nuovo altrimenti mi fa leggere gli annunci
if($errore){
echo"<br> Riinseriscili per favore<br>";
}
else{
echo "<br> <a href="news.php">leggi gli annunci</a>";
}
?>
news.php :
<?php
echo "Ecco i vostri annunci<br>";
if (!$apri = fopen("file.txt","r")){
echo "Non posso aprire il file";
}else{
#Se il file si può leggere allora con un ciclo while
leggo tutte le righe del mio file
while(!feof($apri)){
#memorizza gli annunci in leggo che adesso è un vettore
$leggo["titolo"][] = fgets($apri,4096);
$leggo["anteprima"][] = fgets($apri,4096);
$leggo["articolo"][] = fgets($apri,4096);
$leggo["immagine"][] = fgets($apri,4096);
}
Conta il numero di annunci
$numero=count($leggo["titolo"])-1;
#fa il ciclo for al contrario dall'ultimo al primo
for($i=$numero-1;$i>=$numero-5;--$i)
{
echo " <table><tr><td bgcolor=#0392e0><h3><font color=#ffffff>".$leggo["titolo"]."</font></h3></td></tr>";
echo ' <tr><td><a href="annunci.php?number='.$i.'">'.$leggo["anteprima"].'</a></td></tr></table>';
}
}
fclose($apri);
?>
All'inizio pensavo che il problema fosse la funzione gets che legge massimo 4096 byte.... però, appunto LEGGE!! io invece non riesco proprio a scrivere dati lunghi