Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di leaf
    Registrato dal
    Oct 2012
    Messaggi
    316

    inclusione <head> in php

    ciao, ho un file php contenente una funzione per la struttura iniziale delle pagine html. la condizione è perchè in alcune pagine mi servono librerie in altre no, quindi il contenuto del <head> è diverso a seconda della pagina.

    header.php
    codice:
    function header($title, $tipo){
      if($tipo == 1):
        echo "<html>
             <head>
              ...
             </head>
             <body>
           ";
      elseif(tipo == 2):
        echo "<html>
             <head>
              ...
             </head>
             <body>
           ";
      endif;
    }
    queste pagine funzionano alla perfezione, però se le analizzo con firebug mi mostra il tag <head> vuoto e il contenuto stampato con l' echo all'interno dei tag body (che però non sono i miei dal momento che io non ne ho!). In pratica mi mostr questa struttura:

    codice:
    <html>
    <head>
    </head>
    <body>
     // qui mostra il contenuto della mia funzione
    
    ...
    Qualcuno sa dirmi perchè, se va bene uguale o eventualmente un altro metodo per fare questa cosa?
    Per precisare, non stampo alcun contenuto prima di chiamare la funzione.

    grazie!

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    La chiamata alla funzione header() dove la metti?
    Mostra il codice di una di queste pagine php.

  3. #3
    Utente di HTML.it L'avatar di leaf
    Registrato dal
    Oct 2012
    Messaggi
    316
    ecco. ultima riga prima della chiusura di ?>
    i due file inclusi all'inizio contengono solo funzioni php.
    dopo ?> inizia il codice HTML della pagina, che dovrebbe a questo punto essere dentro il <body>. in fondo alla pagina c'è la funzione footer() che, come per header(), richiama il footer con la chiusura dei tag </body> e </html>
    Comunque lo fa in ogni pagina in cui uso questo metodo

    codice:
    <?php
    
    include '../functions/functions_general.php';
    include 'functions/functions_GEN.php';
    
    check_manutenzione();
    $con=Connection();
    
    $options_corso="<option value='' selected>Scegli..</option>";
    $corsiAperti = mysqli_fetch_array(mysqli_query($con, "..."));
    
    if(!$corsiAperti){
      header("Corsi", 1);
      $message = "Non abbiamo corsi disponibili al momento.";
      GEN_message("index.php", $message, "Home");
      GEN_footer();
      exit;
    }
    
    $res=mysqli_query($con, "...");
    while($corso=mysqli_fetch_array($res)){
        $length=count($res);
        for($n=0;$n<$length;$n++){
            $options_corso.="<option value='$corso[$n]'>$corso[$n]</option>";
        }
    }
    
    header("Scegli Corso", 1);
    ?>

  4. #4
    Utente di HTML.it L'avatar di leaf
    Registrato dal
    Oct 2012
    Messaggi
    316
    up!

  5. #5
    Utente di HTML.it L'avatar di leaf
    Registrato dal
    Oct 2012
    Messaggi
    316
    non ho ancora risolto...

  6. #6
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,360
    Se uso la funzione header, php mi dà un errore visto che header è una funzione di php.

    Allora ho chiamato la funzione _header.

    IE11 mi aggiunge in automatico i tag </body> e </html> che mancano.
    Chrome non aggiunge nulla.
    Firefox si comporta come IE11.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  7. #7
    Utente di HTML.it L'avatar di leaf
    Registrato dal
    Oct 2012
    Messaggi
    316
    mmm..ho rinominato la funzione ma non è cambiato nulla..stesso risultato con IE, edge, opera e firefox..se guardo il codice con "analizza elemento" è tutto nel body..(invece se apro la pagina del sorgente sembra tutto in ordine)..

    codice:
    <?php
    
    function GEN_head($title, $type){
        if($type == 1):
            echo "
        <!DOCTYPE html>
            <html>
            <head>
            <title>$title</title>
                 ....

  8. #8
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,360
    Hai provato a chiudere i tag nella tua funzione ?
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

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.