Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 21

Discussione: Template Ed Inclusione

  1. #1

    Template Ed Inclusione

    Salve a tutti.
    Volevo chiedervi come posso risolvere un problema il seguente problema.

    Ho un file php:

    main.php

    Codice PHP:
    $body = new Template("details.php");
    $edit = new Template("dtml/progetti/edit.html");
    ....
    ....
    .... 

    Nel dettaglio details.php ha al suo interno del codice HTML con al proprio interno un'inclusione di codice php:

    details.php

    Codice PHP:
    <html>
      <head>
         
      </head>
    <body>


    <?php 
       
    include ("helloworld.php");                                                                      
    ?>                                               

    </body>
    </html>
    Dove a sua volta helloworld.php non fa altro che stampare per mezzo di un echo la scritta "Ciao Mondo".
    Premetto che la pagina "main.php" presa singolarmente, senza quindi caricarla per mezzo di template, funziona correttamente, stampandomi a video la scritta "Ciao Mondo".

    Nel momento in cui vado a visualizzare la pagina caricata attraverso "new Template", non visualizzo la parte di codice inclusa, quindi quella inclusa nel file details.php.
    Mi è stato suggerito che la causa è da ricercare nel motore TEMPLATE che utilizzo che non gestisce la possibilità di inclusione di porzione di codice PHP.

    Come posso quindi gestire questo problema?
    Conoscete delle valide soluzioni alternative?
    moscacieca

  2. #2
    Invece di scrivere:

    Codice PHP:
    $body = new Template("details.php"); 
    Scrivi:

    Codice PHP:
    function read_include($filename) {
      
    ob_start(); 
      include(
    $filename);
      return 
    ob_get_clean();
    }

    $body = new Template(read_include("details.php")); 

  3. #3
    Ciao Filippo!

    Ho provato a fare come mi hai suggerito tu, ma ottengo come risposta:


    Fatal error: Cannot redeclare opendb() (previously declared in c:\programmi\easyphp1-8\www\site\htdocs\incl\db.inc.php:33) in c:\programmi\easyphp1-8\www\site\htdocs\incl\db.inc.php on line 32


    Dove ovviamente db.inc.php fa riferimento alle credenziali di connessione al DB.
    Ho dimenticato qualcosa?

    Grazie.
    moscacieca

  4. #4
    Quando includi delle librerie esterne, invece di usare include()/require(), utilizza include_once()/require_once().

  5. #5
    Ottengo questi tre Warning.



    Warning: fopen(
    in c:\programmi\easyphp1-8\www\site\htdocs\incl\template.inc.php on line 428

    Warning: fread(): supplied argument is not a valid stream resource in c:\programmi\easyphp1-8\www\site\htdocs\incl\template.inc.php on line 429

    Warning: fclose(): supplied argument is not a valid stream resource in c:\programmi\easyphp1-8\www\site\htdocs\incl\template.inc.php on line 430



    Inoltre:

    Quando includi delle librerie esterne, invece di usare include()/require(), utilizza include_once()/require_once().
    Intendi ad ogni file php che creo di ripetere sempre con include_once()/require_once() ?
    moscacieca

  6. #6
    Il percorso del file mi sembra quello corretto, che sia un problema di permessi sul file?
    moscacieca

  7. #7
    Modifica la classe Template e sostituisci il codice che si occupa di leggere il file con la funzione read_include().

  8. #8
    Ok, provo subito!!!
    moscacieca

  9. #9
    Scusa Filippo... nel template che posseggo ho la seguente funzione:

    Codice PHP:
    Class TagLibrary {

      function 
    htmlInclude($nome,$data,$pars) {

        
    $url $data;

        
    $content .= "\n";

        
    $fp fopen("$url","r");

        if (!
    $fp) {
          
    $content .=" Error while opening $url ";
        } else {
          
    $content .= fread($fp,filesize("$url"));
        }

        
    fclose($fp);

        
    $content .= "\n";

        return 
    $content;
      } 

    Potrebbe questa essermi utile? E se sì, come posso richiamarla nello specifico dell'esempio che stiamo analizzando?
    moscacieca

  10. #10
    UP!
    moscacieca

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 © 2025 vBulletin Solutions, Inc. All rights reserved.