Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    Come cambiare metatag title?

    Ciao a tutti
    premetto che sono abbastanza principiante nel php... per cui forse chiederò cose scontate... e non capirò le risposte

    ho fatto un sito in php senza usare database né cms e ho il problema che tutto il sito ha sempre lo stesso "title" che è quello definito nell'header.php chiamato nell'index.php
    il sito è questo: http://www.miciap.com
    vorrei trovare un modo per definire il tilte in ogni pagina php inclusa nell'index ma non so come fare!
    questo è l'index.php che chiama header, menu, contenuti principali e footer
    Codice PHP:
    <? 
    $lastissue 
    "issue0";
    include(
    "header.php");
    include(
    "menu.php");
    $nissue = array('issue0/main.php','issue1/main.php');
            if (isset(
    $_GET['nissue']) && in_array($_GET['nissue'],array_keys($nissue))) 
            {
                include(
    $nissue[$_GET['nissue']]);
            }
            else 
            {
                
    $p="$lastissue/main"//pagina di default per i contenuti centrali
                
    if(isset($_GET['page']))
                { 
    //pagina passata via parametro
                    
    $p=$_GET['page'];
                    if(
    $p!=basename($p) || !preg_match("/^[A-Za-z0-9\-_]+$/",$p) || $p=="index" ||
                    !
    file_exists($p.".php"))
                    
    $p="error"//pagina di errore
                
    }
                include(
    $p.".php");
            } 
    include(
    "footer.php");
    ?>
    quello che voglio è poter definire nel file main.php e in quelli di tutti gli altri contenuti il title che deve essere stampato nel metatag nell'header

    Suggerimenti?
    spero che possiate aiutarmi soprattutto perchè credo che sia una cosa facile... e il problema dipenda solo dalla mia incompetenza

    ciao e grazie a tutti
    daniele

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    puoi definire una variabile $title='quelchevuoi" in tutte le pagine PRIMA di fare include('header.php'); e in quest'ultimo al posto del title scritto "normalmente" metti <?php print $title; ?>

    OPPURE

    puoi fare tutto dentro header.php creando una lista dei titoli da applicare in base all'URL... questo te lo scrivo solo se la prima soluzione non va bene...

  3. #3
    Grazie della risposta!
    è la prima cosa cui avevo pensato anche io... però le pagine dei contenuti vengono chiamate nell'index.php dopo la chiamata dell'header... come faccio a farle chiamare prima senza però proi trovarmi con l'html completamente stravolto dal fatto che i contenuti stanno prima dell'apertura dell'html stesso che è nell'header?

    la seconda soluzione invece è veramente dispendiosa in termini di tempo perchè dovrei creare un title per ogni pagina mentre ci sono gruppi di pagine che voglio abbiano lo stesso titolo (come ad esempio le gallerie fotografiche)

    grazie ancora
    ciao
    daniele

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    puoi "leggere" il nome della pagina prima di includere l'header, o spostare gli include, per es.:

    Codice PHP:
    <?
    $lastissue 
    "issue0";

    $nissue = array('issue0/main.php','issue1/main.php');
            if (isset(
    $_GET['nissue']) && in_array($_GET['nissue'],array_keys($nissue)))
            {
                
    $to_be_included = ($nissue[$_GET['nissue']]);
            }
            else
            {
                
    $p="$lastissue/main"//pagina di default per i contenuti centrali
                
    if(isset($_GET['page']))
                { 
    //pagina passata via parametro
                    
    $p=$_GET['page'];
                    if(
    $p!=basename($p) || !preg_match("/^[A-Za-z0-9-_]+$/",$p) || $p=="index" ||
                    !
    file_exists($p.".php"))
                    
    $p="error"//pagina di errore
                
    }
                
    $to_be_included = ($p.".php");
            }

    $title 'Pagina '.$p// qui definisci il title
    include("header.php"); // questo stampa il title
    include("menu.php"); // questo è il menù di prima
    include($to_be_included); // questo include il blocco centrale in base all'IF precedente
    include("footer.php"); // questo chiude la pagina

    ?>

  5. #5
    WOW
    provo subito, grazie!
    a breve facci sapere se va o se ho problemi
    ciao
    daniele

  6. #6
    nulla da fare...
    mi se che ho sbagliato qualcosa...
    1) ho modificato l'index.php come mi hai detto
    2) ho inserito nell'header il title in questo modo:
    Codice PHP:
    <title><?php print "$title"?></title>
    3) ho inserito nel main.php la variabile $title in questo modo:
    Codice PHP:
    <?php 
    $title
    ="ISSUE#0 - SUMMER/2009 - Milano Citt&agrave; Aperta - Journal of Urban Photography";
    ?>
    il problema è che ora l'hompage dovrebbe mostrare il title settatto nel main invece il tag title risulta vuoto! per cui c'è un problema nel passaggio della variabile...
    ho provato anche ad aggiungere $title alla pagine contact.php ma anche in questo caso nulla da fare...

    dove ho sbagliato?
    ciao e grazie
    daniele

  7. #7
    non c'è proprio nessuno che mi possa aiutare?
    ne avrei proprio bisogno...
    anche cercando in rete ho trovato solo persone che chiedono aiuto ma pochissime risposte e nessuna che mi è risultata chiara o adeguata alla mia situazione.
    confido in voi!
    ciao e grazie in anticipo
    daniele

  8. #8
    provo a fare un ultimo UP!
    io davvero non trovo in rete una soluzione al problema e continuo a sbatterci la testa...
    consigli?
    grazie ancora
    daniele

  9. #9
    Utente di HTML.it
    Registrato dal
    Jun 2010
    Messaggi
    67
    Quando fai l'echo in header.php $title non deve essere tra virgolette essendo una variabile

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.