- Home
- Categorie
- Coding e Sistemistica
- PHP
- Funzione php per meta tags
-
Funzione php per meta tags
Salve a tutti. Vi spiego un po' la situazione del mio sito in php.
Ho una index che, tramite la funzione include, richiama le altre pagine del sito.Quello che succede è che i meta tags sono uguali in tutte le pagine del sito.
Nell'head della index c'è questo:
<title><?=$mainconfig['PAGE_TITLE']?></title>
<link rev="made" href="<?=$mainconfig['EMAIL_MADE_BY']?>" />
<meta name="author" content="<?=$mainconfig['MADE_BY']?>" />
<meta name="keywords" content="<?=$mainconfig['META-KEY']?>" />
<meta name="DESCRIPTION" content="<?=$mainconfig['META-DESCR']?>" />Il risultato è che title, description e keyword sono identiche in ogni pagina.
Come posso fare per avere meta tags diversi per ogni pagina?
Grazie a chiunque vorrà aiutarmi.
-
Ciao Cassy,
dovresti dare un valore diverso a quelle variabili nelle varie pagine.
Se le pagine vengono da un database, potresti sfruttare la tabella per inserire dei campi aggiuntivi per dare i valori che vuoi ai meta tag.
-
Purtroppo non so dove mettere le mani.
Ma non posso mettere una funzione nell'index per dichiarare:
se la pagina è pagina1, carica questi meta;
se la pagina è pagina2, carica questi altri ecc ecc ???
-
Se tutto viene caricato tramite include, si puoi farlo.
Metti $mainconfig['PAGE_TITLE'] = 'Quello che vuoi'; nella pagina e in teoria funziona, però cosi modifichi la configurazione.
Senza sapere com'è fatto lo script di preciso è impossibile comunque dirti quale sarebbe la cosa migliore da fare, per evitare problemi.
-
Noto codice di questo tipo:
case "chisiamo":
$includecontent = 'chisiamo';
//echo " <link rel='stylesheet' type='text/css' href='/style/css/chisiamo.css.php' />\n";
echo " <script type='text/javascript' src='${scripturl}lightbox/js/prototype.js'></script>\n";
echo " <script type='text/javascript' src='${scripturl}lightbox/js/scriptaculous.js?load=effects,builder'></script>\n";
echo " <script type='text/javascript' src='${scripturl}lightbox/js/lightbox.js'></script>\n";
echo " <link rel='stylesheet' href='${scripturl}lightbox/css/lightbox.css' type='text/css' media='screen' />\n";
break;Vado nella cartella content e vedo che esiste la pagina chisiamo.php
-
Se l'include avviene prima che vengnao mandati in input i meta tag puoi mettere in chisiamo.php $mainconfig['PAGE_TITLE'] = 'Quello che vuoi'; e il title cambia per quella pagina.
-
Ho provato. Non va. Quindi, secondo l'analisi che ne hai fatto, l'include avviene dopo che vengono mandati in input i meta tag.
-
Potrebbe essere quello il motivo.
Senza vedere lo script completo si tratta di pure supposizioni, potrebbe esserci anche un motivo differente.
-
Si, è vero.
-
Dovresti vedere se è possibile mandare i meta tag in output dopo l'inclusione della pagina, però se si tratta di include mi sembra altamente improbabile riuscire a fare qualcosa.
-
Mica posso pubblicare qui sul forum tutta la index? Mi sembra troppo...
-
Se la posti tra i tag php non c'è problema.
E se puoi posta anche chisiamo.php cosi vediamo un pò.
-
E non si può creare un file head.php e giocare con quello? Non saprei come ma mi sembra di aver letto tempo fa che si poteva fare qualcosa di questo tipo
-
Qualcosa si può fare, nel senso che però dovresti fare 2 switch e avere i meta tag divisi dalla pagina vera e propria che viene inclusa. In sostanza avresti 2 pagine, una con la pagina vera e propria e una con i meta tag della pagina.
Se puoi postare le 2 pagine tra i tag php, vediamo qual'è la soluzione più pulita.
-
[PHP]
codice
[/PHP]
-
Lo script non è il massimo, tutto fatto in maniera molto confusa, inoltre dovrebbe produrre alcuni notice ed essere vulnerabile ad SQL Injection se php è configurato con i magic_quotes OFF (E se il login è fatto senza misure di sicurezza come il resto dello script, chiunque può effettuare l'accesso senza password).
La soluzione più veloce è quella di togliere i meta tag da dove sono adesso e metterli sotto ogni case, insieme ai file css, cioè:
[php]
case "dovesiamo":
$includecontent = 'dovesiamo';
echo '<title>Mio Titolo</title>';
echo '<meta name="DESCRIPTION" content="Mia descrizione" />';
break;
[/php]
-
chi siamo
codice
-
Immaginavo che lo script fosse scritto male. Tra l'altro, richiama tante pagine che alla fine il sito non usa.
Ora provo subito la tua soluzione e ti dico
-
Ho provato ma, se tolgo i meta dove stanno e copio quel codice, non va
-
Mi sembra strano, se lo metti in chi siamo, accedendo a quella pagina quei 2 meta tag che hai impostato dovrebbe inviarli correttamente.