-
problema con form
ragazzi devo fare una form in cui si possono inserire messaggi e poi li voglio salvare in un file questo è il codice
<form name="input" action="index.php" method="post" name="testo">
<h4>Nuova notizia: <h4>
<textarea rows="4" cols="20"> </textarea>
<br>
<input type="submit" value="Submit">
</form>
<? //Inizio codice PHP
//Recupero la variabile globale
$testo= $_POST['testo'];
if ($testo) //Proseguo se il testo è definito
{
$file ="notizie.txt";
$apriw = fopen ($file,"w")or die("Errore nell' apertura del file");
fwrite($apriw,"$testo\n")or die("Errore nella scrittura del file");
fclose($apriw);
}
il problema è che $_POST['testo']; è sempre vuoto nn capisco l'errore
-
certo, la textarea non ha nome, quindi da dove caspita lo reperisci??
metti <textarea name="testo"></textarea>
ciauz!
-
quando scrivo nel file vorrei che n nmi cancella quello che ci stava prima ma che me lo mette i ntesta al file come devo fare...grazie
EDIT: ragazzi oltre al problema della scrittura nel file mi da anche un altro problema quando n ninserisco niente nella texarea n ndovrebbe scrivere niente nel file invece avviene i lcontrario mi scuve la data co nnessun argomento questo è il codice:
<? //Inizio codice PHP
$data= date("d-m-y G:i");
//Recupero la variabile globale del primo numero
$testo= $_POST['testo'];
if ($testo!=null) //Proseguo se almeno un numero è definito
{
$testo= $data . $testo;
$file ="notizie.txt";
$apriw = fopen ($file,"w")or die("Errore nell' apertura del file");
fwrite($apriw,"$testo\n")or die("Errore nella scrittura del file");
fclose($apriw);
}
?>
<form name="input" action="index.php" method="post" name="testo">
<h4>Nuova notizia: <h4>
<textarea rows="4" cols="20" name="testo"> </textarea>
<br>
<input type="submit" value="Submit">
</form>
-
Se il nuovo testo lo vuoi scrivere sotto al vecchio, basta che sostituisci:
Codice PHP:
$apriw = fopen ($file,"w")or die("Errore nell' apertura del file");
Con:
Codice PHP:
$apriw = fopen ($file,"a") or die("Errore nell' apertura del file");
Per l'altro problema modifica queste righe:
Codice PHP:
$testo= $_POST['testo'];
if ($testo!=null) //Proseguo se almeno un numero è definito
In questo modo:
Codice PHP:
$testo= trim($_POST['testo']);
if ($testo!="") //Proseguo se almeno un numero è definito
-
file
io vorrei che i nuovi messaggi vengon oscritti in testa al file
-
Dove c'è:
Codice PHP:
$apriw = fopen ($file,"a") or die("Errore nell' apertura del file");
Rimetti:
Codice PHP:
$apriw = fopen ($file,"w") or die("Errore nell' apertura del file");
Subito dopo a:
Codice PHP:
$file ="notizie.txt";
Aggiungi:
Codice PHP:
$testo.="\n".file_get_contents($file);
-
me lo sovrascive sempre dai un occhiata al sito fraie.altervista.org
-
Scrivi il codice intero che stai provando in questo momento.
-
ok ora funziona avevo dimenticato una cosa ...un altro problema se facci ol'aggiornamento della pagina mi scivedi nuovo una linea uguakle all'ultima messa
-
Quello è dovuto al fatto che ricarichi la pagina re-inviandogli i valori del form.
Dopo a:
Codice PHP:
fclose($apriw);
Potresti aggiungere:
Codice PHP:
Header("Location: pagina.php");
Però la parte dello script in PHP si dovrebbe trovare nella prima riga della pagina e poi dovrai, naturalmente, sostituire "pagina.php" con l'indirizzo della pagina in questione.
Inoltre dovresti proteggere lo script, altrimenti tutti potrebbero inserire delle notizie e del codice dannoso.
-
se aggiungo solo questa riga già funziona o devo emttere per forza gl iscript
Header("Location: pagina.php");
-
Se aggiungi quella riga e tutto funziona, allora è a posto ma i problemi di sicurezza rimangono.
-
per risolvere i problemi di sicurezza dovrei fare una login per far autenticare quelli autorizzati a scrivere
-
Sì, inoltre potresti bloccare anche la possibilità di inserire il codice HTML con la funzione htmlentities.
-
la funzione la devo chiamare sul parametro della form
-
Dove c'è:
Codice PHP:
$testo= trim($_POST['testo']);
Metti:
Codice PHP:
$testo=htmlentities(trim($_POST['testo']));