2011-11-03 13 views
5

Su tutte le pagine oltre alla pagina di contatto, voglio che mostri quanto segue nell'inc-header.php include.Se questa pagina mostra questo altro spettacolo Questo

<p><a href="contact.php">Contact</a></p> 

Nella pagina contact.php, lo voglio mostrare:

<p><a href="index.php">Home</a></p> 

questo dovrebbe essere possibile corrette?

+0

perché non includere un menu comune contiene tutti i collegamenti in ogni file? avere solo un link "di casa" è una pratica antiquata del secolo scorso. –

risposta

16
<?php 
if (stripos($_SERVER['REQUEST_URI'], 'contact.php')){ 
    echo '<p><a href="index.php">Home</a></p>'; 
} 
else{ 
    echo '<p><a href="contact.php">Contact</a></p>'; 
} 
+0

+1, ma l'OP non menziona se la pagina è un file chiamato 'contact.php'. Forse basato su URL è migliore? –

+0

Grazie per tutto il feed back, quello sopra ha fatto il lavoro. Grazie! :) – Jezthomp

5
if ($_SERVER["SCRIPT_NAME"] == '/contact.php') { 
    echo '<p><a href="index.php">Home</a></p>'; 
} else { 
    echo '<p><a href="contact.php">Contact</a></p>'; 
} 
+1

Sul mio server, questo dovrebbe essere paragonato a "/contact.php", in quanto include una barra iniziale. Non sono sicuro se questo è specifico del server o no. – nickb

1

la soluzione rapida e sporca è:

<?php 
$current_page = 'contact'; 
include('inc_header.php'); 
.... 
?> 

In inc_header.php:

<?php 
if($current_page == 'contact') { 
    // show home link 
} else { 
    // show contact link 
} 
?> 
+0

E dove si imposta il valore di '$ current_page'? – Nico

+0

in contact.php! (assumendo che contact.php è il file in cui è caricata la pagina di contatto e viene inserita l'istruzione include inc_header.php) – giorgio

3

V'è una variabile globale chiamata $_SERVER['PHP_SELF'] che contiene il nome della pagina attualmente richiesto. In combinazione con basename() questo dovrebbe funzionare:

if(basename($_SERVER['PHP_SELF'], '.php') == 'contact') { 
    // Contact page 
} else { 
    // Some other page 
} 
0

si può fare con una semplice istruzione if, ma questo funziona solo per la vostra pagina di contatto. Si potrebbe anche usare una semplice funzione nel file inc-header che avrebbe funzionato in questo modo:

function LinkToPageOrHome($script, $title){ 
    if (strtolower($_SERVER[ 'SCRIPT_NAME' ]) == strtolower($script)){ 
     $script = 'home.php'; 
     $title = 'Home'; 
    } 
    echo '<p><a href="' . $script. '">' . htmlentities($title) . '</a></p>'; 
} 

Si tratta di una sorta di approccio schietto dal punto di vista di design, ma è possibile utilizzare LinkToPageOrHome('page.php', 'My Page'); in più modelli e mai preoccuparsi di avere un link di pagina a se stesso.

Problemi correlati