- Home
- Categorie
- Coding e Sistemistica
- PHP
- Come si crea una pagina html da un form?
-
Fai un form POST,poi:
[php]<?
$file=fopen("nome_file.html","a+");
fwrite($file, "CODICE HTML DELLA PAGINA");
include("nome_file.html");
?>[/php]
-
Grazie mille probid,
ma il php deve funzionare su un server no? non puo funzionare sul desktop... o mi sbaglio?
Comunque ho provato ma non ci ho chiappato niente.
Dunque: Ho fatto il form con method post.
- che ci metto in ACTION? ed in SUBMIT?
2)nome_file.html che nome e'? Il nome del file che dovra' essere creato? ed e' il solito per include e fopen?
3)Al posto di codice html della pagina che ci metto, l'html del template oppure l'html del form? (non credo quest'ultima...)
Scusa ma sono veramente uno sprovveduto in fatto di PHP (e di altro, ma lasciamo perdere)
Grazie dell'aiuto dato (e di qeullo che darai....spero.... )
- che ci metto in ACTION? ed in SUBMIT?
-
- <form action="pagina.php" method="POST">
1b) <input type="submit" value="Invia">
2)Il nome del file da creare
3)L'html del template
- <form action="pagina.php" method="POST">
-
Ciao probid e grazie ancora per l'aiuto.
Ho fatto come mi hai detto, ma quando metto l'html del template come da punto 3 mi si scombina tutto.
Inoltre non mi hai risposto, forse perche' e' ovvio, ma il php lavora solo su un server, no? Quindi la devo caricare sul mio host questa pagina? E' per questo che non mi funziona?
Scusa le domand banali, ma per un'inesperto come me niente e' banale...E grazie ancora per l'aiuto!!
-
Sì,php funziona solo su server con relativo interprete.
In che senso "mi si scombina tutto"?
P.S importante :D: Quando nel html del template devi dichiarare il valore di un campo (es <a href="pagina.php">)
metti " (es <a href="pagina.php">)
-
puoi usare php anche in locale, installando apache.
Oppure installi easyphp che installa apache, php e mysql.
-
Grazie probid e swenziw ora ci provo....comunque non mi sento molto sicuro del fatto mio...vedremo..
grazie ancora a tutti e due!!
-
Allora, io non ci capisco piu molto:
1- Mi sono scaricato easyphp, funziona testato.
2- Poi ho preso il file php dove ho il form e l'ho rinominato index.php perche' easy php lo trovasse in locale
Qui di seguito il codice attuale:
<HTML> <HEAD> <TITLE>Voucher fatto</TITLE> </HEAD> <BODY> <? $file=fopen("voucher.html","a+"); fwrite($file, "<html> <head> <title></title </head> <body> <table id="frame" border="0" cellspacing="0" cellpadding="0"> <tr> <td> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <TD id="header" valign="top" align="right"> <p><h4>Portal To Your Wishes</h4></p> </div></td> </tr> </table> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <TD id="leftcol" valign="top" align="left"> <h1></h1> <p><img src="../HTML_EMAIL/finestra.png"></p> </div></td><td> </td> <TD id="content" valign="top" align="left"> <h2><i>Booking Voucher</i></h2> <p><div align="justify"> Reservation Date: $reservation = $_POST['reservation']; <br><br>Client Name: $name = $_POST['name']; <br><br>Client Email:$email = $_POST['email']; <br><br>Client Country: $country = $_POST['country']; <br><br>Adults: $adults = $_POST['adults']; <br><br>Children: $children = $_POST['children']; <br><br>Nights Total: $nights = $_POST['nights']; <br><br>Structure: $structure = $_POST['structure']; <br><br>Arrival Date: $checkin = $_POST['checkin']; <br><br>Time of Arrival: between 4 p.m. and 8,00 p.m. <br><br>Departure Date: $checkout = $_POST['checkout']; <br><br>Time of Departure: Not later than 10 a.m. </div></p> </div></td> <TD id="rightcol" valign="top" align="left"> </div></td> </tr> </table> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <TD id="footer" align="center" valign="middle"> <p></p> </div></td> </tr> </table> </td> </tr> </table> </body> </html>"); include("voucher.html"); ?> </BODY> </HTML>
3- Poi ho creato un altro file php chiamato submit_custom.php il cui codice posto di seguito
<HTML> <HEAD> <TITLE>Voucher fatto</TITLE> </HEAD> <BODY> <? $file=fopen("voucher.html","a+"); fwrite($file, "<html> <head> <title></title </head> <body> <table id="frame" border="0" cellspacing="0" cellpadding="0"> <tr> <td> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <TD id="header" valign="top" align="right"> <p><h4>Portal To Your Wishes</h4></p> </div></td> </tr> </table> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <TD id="leftcol" valign="top" align="left"> <h1></h1> <p><img src="../HTML_EMAIL/finestra.png"></p> </div></td><td> </td> <TD id="content" valign="top" align="left"> <h2><i>Booking Voucher</i></h2> <p><div align="justify"> Reservation Date: $reservation = $_POST['reservation']; <br><br>Client Name: $name = $_POST['name']; <br><br>Client Email:$email = $_POST['email']; <br><br>Client Country: $country = $_POST['country']; <br><br>Adults: $adults = $_POST['adults']; <br><br>Children: $children = $_POST['children']; <br><br>Nights Total: $nights = $_POST['nights']; <br><br>Structure: $structure = $_POST['structure']; <br><br>Arrival Date: $checkin = $_POST['checkin']; <br><br>Time of Arrival: between 4 p.m. and 8,00 p.m. <br><br>Departure Date: $checkout = $_POST['checkout']; <br><br>Time of Departure: Not later than 10 a.m. </div></p> </div></td> <TD id="rightcol" valign="top" align="left"> </div></td> </tr> </table> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <TD id="footer" align="center" valign="middle"> <p></p> </div></td> </tr> </table> </td> </tr> </table> </body> </html>"); include("voucher.html"); ?> </BODY> </HTML>
Come vedrete qui c'ho messo l' HTML dove probid mi aveva detto, che pero' non funziona come l'ho messo io. Quando lo testo il form cerca di aprire il file submit_custom.php ma mi da questo errore di codice:
"Parse error: parse error in c:\program files\easyphp1-8\www\submit_custom.php on line 20"Dove sbaglio? Lo metto bene l'html? Ed i vari campi?
Scusate ma mi sento in alto mare e non so dove andare. Grazie ancora dell'aiuto.
PS: probid mi faresti un esempio su come mettere l'html? Sono un po impedito...
-
tutti i file che devi vedere in locale vanno messi in c:dove hai installato easyphp/easyphp/www
per caricarli, esegui easyphp, apache deve essere attivo.
apri il browser e nella barra degli indirizzi scrivi:
localhost/nome file o nome cartella, in base a quello che hai messo in www.
non usare spazi nei nomi di file o cartelle
-
Devi sostituire tutti i "" nel codice con " "
es.
table id="frame" border="0" cellspacing="0" cellpadding="0">
-
Grazie ancora probid e swenziw..ho fatto esattamente come mi avete detto...adesso arriva alla linea 49 e mi da un altro pars error:
"Parse error: parse error, expectingT_STRING' or
T_VARIABLE' or `T_NUM_STRING' in c:\program files\easyphp1-8\www\submit_custom.php on line 49"Alla linea 49 si trova questo "Reservation Date: $reservation = $_POST['reservation'];"
Il codice del form non lo riposto che non e' cambiato
Il codice della pagina che dovrebbe creare il file lo riposto:
<HTML> <HEAD> <TITLE>Voucher fatto</TITLE> </HEAD> <BODY> <? $file=fopen("voucher.html","a+"); fwrite($file, "<html> <head> <title></title </head> <body> <table id=\"frame\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\"> <tr> <td> <table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\"> <tr> <TD id=\"header\" valign=\"top\" align=\"right\"> <p><h4>Portal To Your Wishes</h4></p> </div></td> </tr> </table> <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\"> <tr> <TD id=\"leftcol\" valign=\"top\" align=\"left\"> <h1></h1> <p><img src=\"../HTML_EMAIL/finestra.png\"></p> </div></td><td> </td> <TD id=\"content\" valign=\"top\" align=\"left\"> <h2><i>Booking Voucher</i></h2> <p><div align=\"justify\"> Reservation Date: $reservation = $_POST['reservation']; <br><br>Client Name: $name = $_POST['name']; <br><br>Client Email:$email = $_POST['email']; <br><br>Client Country: $country = $_POST['country']; <br><br>Adults: $adults = $_POST['adults']; <br><br>Children: $children = $_POST['children']; <br><br>Nights Total: $nights = $_POST['nights']; <br><br>Structure: $structure = $_POST['structure']; <br><br>Arrival Date: $checkin = $_POST['checkin']; <br><br>Time of Arrival: between 4 p.m. and 8,00 p.m. <br><br>Departure Date: $checkout = $_POST['checkout']; <br><br>Time of Departure: Not later than 10 a.m. </div></p> </div></td> <TD id=\"rightcol\" valign=\"top\" align=\"left\"> </div></td> </tr> </table> <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\"> <tr> <TD id=\"footer\" align=\"center\" valign=\"middle\"> <p></p> </div></td> </tr> </table> </td> </tr> </table> </body> </html>"); include("voucher.html"); ?> </BODY> </HTML>
"Nonna nonna! M'hanno fatto er buono!! Ma che vor di'?"
"eh, vor di che te la se' presa n'der culo!"Ecco io mi sento come se m'avessero fatto er buono...
Ma non e' che mi ci vuole un "echo" da qualche parte? No perche' se tolgo lo script dove ci sono i POST (peccato sia la parte importante) funziona benissimo, crea il file per bene e tutto...
Grazie dell'aiuto... ancora
-
Cio' riprovato in tutte le salse....sono andato su tremila forum... ma niente!
Un consiglio piu'?
Grazie !
-
Conviene mettere dei 'fermi' al codice. Prova a usare degli echo a partire dalla riga 49: penso che ti sarà più facile individuare l'errore. Che poi non è detto che l'errore sia proprio lì in quella, potrebbe anche essersi verificato a monte.
Valeria
-
Ciao Valeria,
grazie della risposta. Non so se ti sei letta il post dall'inizio, ma purtroppo so ben poco di php (0,0001 in una scala da 1 a 100) e quando ho parlato di echo nel post precedente l'ho buttata un po la', ma non so davvero come usare gli echo.
Il problema a monte. Be' vorrei sapere dove, visto che senza quel blocco di codice post funziona. cosa intendi? Nella pagina del form? Nel database?
So che forse questa e' una cosa un po' troppo complessa per avere aiuto serio gratis, ma altrimenti non so davvero dove sbattere la testa. Andrei tanto volentieri avanti da solo, ma avendo zero sapere di php mi trovo a vicoli cechi ovunque..
Grazie comunque dell'aiuto.
-
OOOOOOOOOOOOOOOO ma insomma neanche una persona che mi aiutiiiiiiiiii
-
Ciao Lord Baron,
mi stupisco personalmente, da parte di un utente con la tua esperienza, di un post con un contenuto simile aOOOOOOOOOOOOOOOO ma insomma neanche una persona che mi aiutiiiiiiiiii
Che non è propriamente in linea con il regolamento che tu stesso avrai sicuramente letto comprensivo sui consigli per endere il post efficace
Anche perchè arrivati ad un punto morto, in questo modo anche chi avesse capito il problema (mi scuserai ma io non sono tra quelli, visto che a mio avviso le informazioni che i colleghi forumisti ti hanno dato risolvevano appieno il problema) non si sentirebbe a mio avviso invogliato a condividere le sue esperienze (scopo del ForumGT).Ovvero. In merito al tuo problema mi sembra che tu non solo non conosca la risposta (cosa plausibile, siamo qui anche per questo) ma nemmeno la domanda.
Ciao
-
Veramente se leggi i post fatti in precedenza da chi mi ha molto gentilmente aiutato e portato vicino alla soluzione sembra che la domanda si capisca benissimo.
E come la dovrei spiegare, piu' che postare il codice con le modifiche suggerite da altri forumisti competenti?
Io se una cosa non la so la chiedo. Venividi ha fatto un intervento sibillino (per me) per il quale ho chiesto approfondimento.
Vedi, se invece di farmi leggere il regolamento su come si posta cercassi di capire quello di cui ho necessita' come forumista ed aiutare invece di buttare giu', magari in futuro chi si trovera' nello stesso problema mio fara' tesoro di questo mio piccolo calvario. Sai quanti post vacui che hanno contribuito alla morte di possibilmente interessantissimi thread ho trovato? a migliaia solo su GT. E sai cosa mi hanno fatto? PERDERE TEMPO!!
Come moderatore dovresti anche incitare chi si prende la responsabilita' di aiutare di farlo fino in fondo. Mi dispiace dirlo, ma se uno ti aiuta volontariamente ma a meta', meglio non aiuti affatto. Questa non e' una critica a chi mi ha aiutato fino ad ora, ma a cio' che hai detto in quanto limita gli spazi ed il potenziale del forum.
In verita', mi stupisco che queste parole vengano da un moderatore.
Comunque come moderatore, se vuoi, sposta pure il thread in offtopic, che tanto mi sembra dalla piega del tuo post di questo thread non sai che farci nel la sezione dedicata al php, e siccome nessun altro sarebbe adatto OT e' il miglior posto.
Grazie. Ciao.
-
Buongiorno Lord Baron.
Siamo spiacenti di averle causato la perdita del suo prezioso tempo.Tuttavia, tenendo anche noi al nostro tempo, la invito a prendere meglio in visione il Regolamento ed evitare sul forum polemiche sterili, sia con gli utenti, che con i moderatori ed Admin.
Non saranno più accettate posizioni simili.
-
Ma quali "posizioni"? Se rileggi bene e' uno stimolo a migliorare non una critica sterile. Mi sembra che stiate facendo di una pagliuzza una trave qui.
Comunque lascio l'argomento e vi faccio contenti. E mi sa tanto che lascio pure il forum.
Game Over.
PS: (a sto punto lo puoi anche chiudere questo thread. L'aria si e' fatta pesante.)