Ciao a tutti!
Sono di nuovo qui per chiedervi un aiuto, spero semplice da creare.
Vorrei creare un form nel quale gli utenti inseriscono il proprio nome, poi premono il tasto "invia" e questo appare in una lista.
GRAZIE!
File form.php
Dovrebbe andare bene cosìCodice PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Senza nome 2</title>
</head>
<body>
<?php if($_GET['utente'] == ""){ ?>
<form action="form.php" method="get">
<input type="text" name="utente" value="" />
<input type="submit" value="Salva" />
</form>
<?php
echo "Utenti: <br /><br />";
echo file_get_contents('lista.txt');
}else{
$file = "lista.txt" // Il file dove sono memorizzati i nomi
$f = fopen($file,"a+");
$ut = $_GET['utente'];
fwrite($f,"$ut \r\n");
fclose($f);
Header("Location: form.php");
?>
</body>
</html>
grazie per l'aiuto, solo che mi trovo un po in difficoltà non sapendo nulla di php.
Allora, io metto questo codice nella pagina, ma devo creare altri file? Tipo form.php e lista.txt?? e dentro questi cosa devo mettere?
E per far apparire i nomi sulla pagina che comandi devo mettere?
grazie ancora!!!!
Non devi fare nient'altro che crearti una pagina chiamata "form.php" e inserirci il codice che sopra ti ho postato dopodichè nello stesso percorso del file php crei un file chiamato "lista.txt" e lascialo vuoto. Dopo apri il file php (da locale o dal web), inserisci un nick di prova e premi il pulsante sotto lo spazio nome. Infine vedrai che sotto l'input di dove ti chiede il nome comparirà la lista dei nomi salvati. Ogni qual volta salvi un nome verrà aggiunto sotto al precedente.
Premesso che lo script di Miki secondo me non è proprio il massimo e io avrei gestito le operazioni in altro modo, ti restituisce errore perchè alla riga 19 manca il ; di chiusura istruzione.
Ciao!Codice:$file = "lista.txt"; // Il file dove sono memorizzati i nomi
Prova così:
Codice PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Titolo</title>
</head>
<body>
<form action="form.php" method="get">
<input type="text" name="utente" value="" />
<input type="submit" value="Salva" />
</form>
<?php
$file="lista.txt"; // Il file dove sono memorizzati i nomi
if (isset($_GET['utente']) && trim($_GET['utente'])!="") {
$f=fopen($file,"a+");
fwrite($f,htmlentities($_GET['utente'])."\r\n");
fclose($f);
}
echo "Utenti: <br /><br />";
echo file_get_contents($file);
?>
</body>
</html>
Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
«Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen
Grazie funcool, quello tuo funziona. Vorrei chiederti due piccole modifiche:
Come faccio a visualizzare la lista degli utenti dove voglio? Nella pagina che sto costruendo la lista dei nomi è in altra posizione.
Come faccio a mettere i nomi incolonnati? Vengono visualizzati uno dietro l'altro...
grazie ancora a tutti!
Basta che inserisci nella pagina dove vuoi vedere la lista questo codice:
Scusa ma i nomi come ti vengono uno dietro l'altro? Non sono in questo ordine?Codice PHP:
<?php echo file_get_contents("lista.txt"); ?>
Potresti elencare un link di dove usi il codice di funcool?Codice:Utente1 Utente2 Utente3 Utente4 Utente5 ecc...
Ultima modifica di miki92 : 11-01-2008 alle ore 19.21.45
Te lo mostro io visto che la cosa sta interessando anche me :
http://fkingdom.altervista.org/form.php
Bah, prova un po' cosi:
Codice PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Titolo</title>
</head>
<body>
<form action="form.php" method="get">
<input type="text" name="utente" value="" />
<input type="submit" value="Salva" />
</form>
<?php
$file="lista.txt"; // Il file dove sono memorizzati i nomi
if (isset($_GET['utente']) && trim($_GET['utente'])!="") {
$f=fopen($file,"a+");
fwrite($f,htmlentities("$_GET['utente'] \r\n");
fclose($f);
}
echo "Utenti: <br /><br />";
echo file_get_contents($file);
?>
</body>
</html>
Da errore in questa riga
fwrite($f,htmlentities("$_GET['utente'] \r\n");
Che errore?
Prova cosi:
Codice PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Titolo</title>
</head>
<body>
<form action="form.php" method="get">
<input type="text" name="utente" value="" />
<input type="submit" value="Salva" />
</form>
<?php
$file="lista.txt"; // Il file dove sono memorizzati i nomi
if (isset($_GET['utente']) && trim($_GET['utente'])!="") {
$f=fopen($file,"a+");
$ut = $_GET['utente'];
fwrite($f,htmlentities("$ut \r\n");
fclose($f);
}
echo "Utenti: <br /><br />";
echo file_get_contents($file);
?>
</body>
</html>
Per incolonnare i nomi, con newline (\n) [questo post, riga sopra] dovrebbe funzionare, ma al limite provate con:Codice PHP:
fwrite($f,htmlentities($_GET['utente'])."\n");
Ciao!Codice PHP:
echo join('<br />',file($file));
P.S: Miki, correggi al post #10. E'file_get_contents
Niente... ora da questo errore:
Parse error: syntax error, unexpected ';' in /membri/fkingdom/form.php on line 17
manca una parentesi ) in quella riga prima del ;
Allora, questo è il codice che ho messo nella pagina di prova:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Titolo</title>
</head>
<body>
<?php echo file_get_contents("lista.txt"); ?>
<br />
<br />
<form action="form.php" method="get">
<input type="text" name="utente" value="" />
<input type="submit" value="Salva" />
</form>
<?php
$file="lista.txt"; // Il file dove sono memorizzati i nomi
if (isset($_GET['utente']) && trim($_GET['utente'])!="") {
$f=fopen($file,"a+");
$ut = $_GET['utente'];
fwrite($f,htmlentities($_GET['utente'])."\n");
fclose($f);
}
?>
</body>
</html>
Ho capito che non bisogna fare refresh, altrimenti il nome viene reinserito ogni volta, però talvolta bisogna scriverlo per due volte, perchè la prima non lo prende.
A parte questo, non vengono incolonnati. La riga:
non so dove metterla...Codice PHP:
echo join('<br />',file($file));
_grazie!
Quella riga la devi mettere dove vuoi visualizzare l'elenco.
Quindi al posto di echo file_get_contents("lista.txt"); che però andrebbe a sua volta spostato dopo l'inserimento nel file perché altrimenti l'ultimo inserito non verrebbe visualizzato subito.
Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
«Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen
Codice PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Titolo</title>
</head>
<body>
<?php
$file="lista.txt"; // Il file dove sono memorizzati i nomi
if (isset($_GET['utente']) && trim($_GET['utente'])!="") {
$f=fopen($file,"a+");
$ut = $_GET['utente'];
fwrite($f,htmlentities($_GET['utente'])."\n");
fclose($f);
}
echo join('<br />',file($file));
?>
<br />
<br />
<form action="form.php" method="get">
<input type="text" name="utente" value="" />
<input type="submit" value="Salva" />
</form>
</body>
</html>
Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
«Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen