• Bannato User Attivo

    Come si crea una pagina html da un form?

    Salve a tutti,

    Allora io di php non ne so un tubo nulla.

    Quello che vorrei fare e' un bel form dove io ci metto dei dati (esempio, nome, testo, una foto, e altri dati in campi vari) e poi clicco sul bottoncino magico e mi appare la pagina gia' bell'e impostata con l'html che gli avevo dato.

    Sta cosa dovrebbe poter funzionare sul desktop, senza bisogno di essere messa su un server (ma all'occorrenza pure la).

    Io penso che sta cosa si debba fare con un print in php, ma se c'e' un modo piu' semplice ditemelo per favore.

    Grazie a tutti!!

    LB


  • Super User

    Questo non è php, però secondo me fa a caso tuo.
    http://xstandard.com/
    La versione lite, che funzia comunque benino, è gratuita per uso non commerciale, o comunque credo tu la possa provare.


  • Bannato User Attivo

    E grazie cumpa'! Mo' lo provo.

    LB


  • Bannato User Attivo

    Be', no, non era quello che cercavo. Quello me lo fa anche dreamweaver, e mi scassa anche meno col w3c...comunque grazie.

    Quello che sto cercando e' di creare un form che, con determinati parametri prefissati, mi consenta di riempire solo i campi prefissati.

    Hai presente quando inserisci un post su un forum o su un blog? Ecco, avere un form cosi', chiaramente molto piu semplice, ma che non richieda database o altro, ma che lavori in locale.

    Per esempio, fare una pagina html o php col form che in locale richiami una funzione che mi prende quei dati che ho appena scritto sul form e mi genera un html con template predefinito ma col testo, che ho appena cambiato. Non deve nemmeno poter essere in grado di catturare immagini (che credo complicherebbe molto le cose).

    Non so se mi spiego, (disse il paracadute).


  • Bannato User Attivo

    Credo che quello che sto cercando si possa fare solo con php.

    C'e' nessuno che abbia un consiglio?

    Grazie grazzissime grazie


  • Super User

    Fai un form POST,poi:
    [php]<?
    $file=fopen("nome_file.html","a+");
    fwrite($file, "CODICE HTML DELLA PAGINA");
    include("nome_file.html");
    ?>[/php]


  • Bannato User Attivo

    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.

    1. 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.... 🙂 )


  • Super User
    1. <form action="pagina.php" method="POST">
      1b) <input type="submit" value="Invia">
      2)Il nome del file da creare
      3)L'html del template

  • Bannato User Attivo

    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!! 😄


  • Super User

    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">)


  • User

    puoi usare php anche in locale, installando apache.

    Oppure installi easyphp che installa apache, php e mysql.


  • Bannato User Attivo

    Grazie probid e swenziw ora ci provo....comunque non mi sento molto sicuro del fatto mio...vedremo..

    grazie ancora a tutti e due!! 🙂


  • Bannato User Attivo

    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>&nbsp;&nbsp;</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>&nbsp;&nbsp;</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... 🙂


  • User

    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


  • Super User

    Devi sostituire tutti i "" nel codice con " "
    es.
    table id="frame" border="0" cellspacing="0" cellpadding="0">


  • Bannato User Attivo

    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, expecting T_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>&nbsp;&nbsp;</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 :ciauz:


  • Bannato User Attivo

    Cio' riprovato in tutte le salse....sono andato su tremila forum... ma niente!

    Un consiglio piu'?

    Grazie !


  • User

    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


  • Bannato User Attivo

    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. :ciauz:


  • Bannato User Attivo

    OOOOOOOOOOOOOOOO ma insomma neanche una persona che mi aiutiiiiiiiiii