Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2005
    Messaggi
    154

    generare pagine html da form

    ciao a tutti. ho creato un'area riservata su un sito dalla quale gli utenti possono creare delle pagine html tramite una form. Il problema è che non so come far avere a queste pagine lo stesso template del sito.
    mi spiego:
    Codice PHP:
    /********************************************************************/
    $titolo stripslashes $_POST['titolo'] );
    $contenuto stripslashes $_POST['testo'] );
    /********************************************************************/
    $file = ($titolo).'.html';
    $handle fopen($file'x') or die("Impossibile creare il file");
    fwrite($handle$contenuto) or die ("impossibile scrivere il file");
    fclose($handle); 
    con questo codice creo un nuovo file html il cui contenuto è ciò che gli utenti hanno digitato nel form.
    Il problema è: come posso fare per mettere nel file creato tutto l'html del tempate del sito è inserire dove voglio il contenuto recuperato dalla form?
    Spero di essermi fatto capire. grazie in anticipo per eventuali risposte.

  2. #2
    potresti ad esempio avere un file di "template" contenente tutto il layout, e una parola chiave come segnaposto; ad esempio

    codice:
    <!DOCTYPE
     html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
     "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    
    <head><title>Titolo</title></head>
    <body>
    <div id="main">
    	%%CONTENT%% 
    </div>
    </body>
    poi carichi il file di template in una stringa con $template = file_gets_content('/percorso/file');
    e rimpiazzi alla parola chiave il contenuto


    Codice PHP:
    <?php str_replace('%%CONTENT%%'$contenuto_del_form$template); ?>
    ciao
    Windows mom: «Finish your veggies! There are processes in Ubuntu that are starving to death!»
    NoWhereBlog
    FlatPress Blog Flat file, valido xhtml, espandibile

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    209
    la tecnica di templating più usata è quella di aprire il file di template è salvare il flusso in una stringa. Nel sorgente del template si mettono dei "segnaposto" tipo ##testo##.
    con un str_replace si sostituisce testo con i dati, nel tuo caso $_POST[testo], poi si salva o si mostra un video con un semplice echo.

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2005
    Messaggi
    154
    ho provato così:
    Codice PHP:
    /********************************************************************/
    $titolo stripslashes $_POST['titolo'] );
    $contenuto stripslashes $_POST['contenuto'] );
    /********************************************************************/
    $template file_get_contents('template.php');
    $pagina str_replace('##titolo_pagina##'$titolo$template);
    $pagina str_replace('##titolo##'$titolo$template);
    $pagina str_replace('##contenuto##'$contenuto$template);
    /********************************************************************/
    $filename = ($titolo).'.html';
    $handle fopen($filename'x') or die("Impossibile creare il file");
    fwrite($handle$pagina) or die ("impossibile scrivere il file");
    fclose($handle); 
    funziona solo l'ultimo str_replace, i primi due non vengono sostituiti perche?
    nel template sono inseriti così:
    codice:
    <title>##titolo_pagina##</title>
    <h1>##titolo##</h1>
    
    
    ##contenuto##</p>
    solo ##contenuto## viene sostituito dal $contenuto non riesco a capire perchè....

  5. #5
    Utente di HTML.it L'avatar di chris
    Registrato dal
    Sep 1999
    Messaggi
    1,568
    Originariamente inviato da j4ck455
    funziona solo l'ultimo str_replace, i primi due non vengono sostituiti perche?
    perché non sono concatenati.
    se applichi una funzione alla variabile A e poi redirigi il risultato sulla variabile B non c'è da stupirsi alla successiva applicazione di una variabile A se questa è A e non B.

    in pratica:

    $template = str_replace('##titolo_pagina##', $titolo, $template);
    $template = str_replace('##titolo##', $titolo, $template);
    $template = str_replace('##contenuto##', $contenuto, $template);

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.