Titolo PHP

  • Creatore Discussione Creatore Discussione Kolop
  • Data di inizio Data di inizio

Kolop

Utente Attivo
20 Mar 2017
57
0
6
26
Ciao io ho il seguente codice nella mia index.php:

PHP:
<?php
if(isset($_GET['page']) && file_exists('./pagine/'.$_GET['page'].'.html'))
include('./pagine/'.$_GET['page'].'.html');
else
include('news.php');
?>

Che mi crea pagine dinamiche. Ora il problema che mi sono accorto è che non ho un titolo per ogni pagina.
Mi spiego meglio.
Nella index ho il tag <title>Nome mio sito</title>
Nelle sottopagine non ho un titolo e quindi rimane sempre quello della index.
Per far si che ho un titolo anche nelle altre come faccio?
Ho letto un poco in giro e dice di creare un file.php dove inserisco i nomi delle pagine.html e tramite php un titolo per ogni pagina, ma siccome ho più di 900 file e passa, per me diventa impossibile scrivere a mano.
Se avete una soluzione migliore accetto volentieri.
Grazie.
 
Ciao.
Hai detto che non vuoi scrivere tutti i nomi manualmente, quindi immagino che vuoi che il titolo della pagina corrisponda alla variabile $_GET['page'].
Se è così, ti basta sostituire il tag del titolo con questo:
PHP:
<title><?php if (isset($_GET['page'])) echo $_GET['page'];?></title>
 
Ultima modifica:
Ciao @livellacri come dici tu funziona ma il titolo mi appare minuscolo e non è come voglio. Se devo creare un file e scrivere a mano come posso fare? Mi sembra la soluzione migliore anche se faticosa inserire più di 800 nomi.
Grazie.
 
Per inserire i titoli manualmente potresti fare così:
- crei un nuovo file (per esempio titolipagine.php), e lo riempi in questo modo:
PHP:
<?php
$titolipagine = array();
$titolipagine['pagina1'] = "Questo è il titolo della pagina 1";
$titolipagine['pagina2'] = "Questo è il titolo della pagina 2";
//Continua in questo modo per ogni pagina
?>

- all'inizio del file index.php, dopo <?php aggiungi questa riga:
PHP:
require_once("titolipagine.php");

- sostituisci la riga del titolo con questa:
PHP:
<title><?php if (isset($titolipagine[$_GET['page']])) echo $titolipagine[$_GET['page']]?></title>
 
Ciao @livellacri funziona tutto, solo una cosa. Nella index.php rimane miosito.altervista.org come faccio a mettere un titolo da me scelto?
Grazie.
 
PHP:
<?php
if (isset($_GET['page']) AND isset($titolipagine[$_GET['page']]))
    $titolopagina = $titolipagine[$_GET['page']];
else
    $titolopagina = "Inserisci_qui_il_titolo";
?>
<title><?php echo $titolopagina?></title>
 
Ma se hai tutte le pagine in format html con il relativo titolo, puoi con un glob elencarle tutte, con file_get_contents leggerlo e con un'espressione regolare tirarne fuori il tag title e poi visualizzarlo. In questo modo ogni volta che modifichi la tua pagina html verrà aggiornato automaticamente anche il titolo nel tuo script
 
Ciao @livellacri ho provato ma così facendo mi modifica tutte le pagine non solo la index.

Per @linoma posso farlo automaticamente, ma nel mio caso non mi serve, siccome non devo cambiare titoli ma solo modificare qualcosa nel file, quindi manualmente è meglio.
 
Il codice che ho postato mette come titolo "Inserisci_qui_il_titolo" a tutte le pagine che non hanno un titolo specificato nel file titolipagine.php
Se vuoi cambiare solo il titolo della index, e lasciare senza titolo le pagine che non hanno un titolo in titolipagine.php, fai così:
PHP:
<?php
$titolopagina = "";
if (empty($_GET['page'])) 
    $titolopagina = "TITOLO_INDEX";
elseif (isset($titolipagine[$_GET['page']]))
    $titolopagina = $titolipagine[$_GET['page']];
?>
<title><?php echo $titolopagina?></title>
 
Ciao @livellacri forse mi sono spiegato male. Il primo codice che mi hai dato cioè :

PHP:
<?php
$titolipagine = array();
$titolipagine['pagina1'] = "Questo è il titolo della pagina 1";
$titolipagine['pagina2'] = "Questo è il titolo della pagina 2";
//Continua in questo modo per ogni pagina
?>

PHP:
<?php
require_once("titolipagine.php");
?>

PHP:
<title><?php if (isset($titolipagine[$_GET['page']])) echo $titolipagine[$_GET['page']]?></title>

Va bene e ho già aggiunto i titoli nella pagina titolipagine.php. Facendo così la index mi viene senza nome.
Ora voglio che la index abbia un nome però anche le altre che ho fatto nel titolipagine.php rimangono lo stesso nelle altre pagine.
Non so se mi sono spiegato.
Grazie.
 
Se con pagina intendi "tuosito.com/index.php?page=nomepagina" e con index intendi "tuosito.com/index.php", dovrebbe funzionare quanto ho scritto nel precedente messaggio.
 
  • Like
Reactions: Kolop

Discussioni simili