form con dati troppo lunghi

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']);

}

#controllo 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["linea"][] = 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"][$i]."</font></h3></td></tr>";
 echo ' <tr><td><a href="annunci.php?number='.$i.'">'.$leggo["anteprima"][$i].'</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 non riescoproprio a scrivere dati lunghi

inviato 10 anni fa
pinoppi
X 0 X

ma il form non viene inviato proprio? Non viene caricata la pagina successiva?

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

esatto, la seconda che hai detto

mentre con i dati corti la pagina successiva (verifica.php) viene caricata, se io ci metto un bel poema, non succede assolutamente nulla!

risposto 10 anni fa
pinoppi
X 0 X

neanche pagina bianca?

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

niente di niente.... se mi dava apgina bianca almeno sapevo che c'era qualche problema nel file successivo... invece rimane tutto fermo.

Cmq provalo... l'ho postato apposta.

risposto 10 anni fa
pinoppi
X 0 X

cambia il metodo del form da "get" a "post"

 :bye:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

azz... ora funge

ma mi spiegate in maniera veramente semplice la differenza tra GET e POST? pensate di parlare con un bambino di 5 anni....

risposto 10 anni fa
pinoppi
X 0 X

se usi get allora tutti i dati inseriti nel forum verranno accodati nell'URL utilizzato dal broswser per raggiungere la pagina successiva. In pratica:

http://www.tuosito.it/pagina_successiva?testo=ciao%20a%20tutti

se usi post invece i dati del form vengono inviati alla pagina successiva accanto all'URL (senza accodarli)

L'HTTP non permette URL troppo lunghi, ecco perché non funzionava con il metodo GET.

 :bye:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

ammetto che nel mio script ho messo un metodo  a casaccio

all'inizio mi era indifferente GET o POST.... però a sto punto mi viene una domanda spontanea

Se  GET ha questi difetti, perchè si usa? alla fine quali pregi può avere?

risposto 10 anni fa
pinoppi
X 0 X

non lo so  :dunno:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

Get è più veloce con pochi parametri e se sono brevi, con post si possono anche inviare i file.

risposto 10 anni fa
LonelyWolf
X 0 X

Ok!! Ora mi è tuttopiù chiaro... lo script funge. ora vado con la versione 1.1 Voglio far si che i dati inseriti possano anche essere modificati senza cancellarli.

 8)  :coolsmiley: :bye:

risposto 10 anni fa
pinoppi
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda