2011-11-03 19 views
5

En todas las páginas aparte de la página de contacto, quiero que muestre lo siguiente en inc-header.php include.Si esta página muestra esta otra muestra esta

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

En la página contact.php, quiero que se muestre:

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

esto debería ser posible correcta?

+0

¿por qué no incluir un menú común contiene todos los enlaces en cada archivo? tener solo el enlace de "casa" es una práctica pasada de moda del siglo pasado. –

Respuesta

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, pero el OP no menciona si la página es un archivo llamado 'contact.php'. Tal vez basado en la URL es mejor? –

+0

Gracias por todo el feed back, el anterior hizo el trabajo. Gracias! :) – 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

En mi servidor, esto debería ser comparado con '/contact.php', ya que incluye una barra diagonal. No estoy seguro si esto es específico del servidor o no. – nickb

1

la solución rápida y sucia es:

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

En inc_header.php:

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

¿Y dónde establece el valor de '$ current_page'? – Nico

+0

en contact.php! (suponiendo que contact.php es el archivo donde se carga la página de contacto y se incluye la instrucción include inc_header.php) – giorgio

3

Hay una variable global llamada $_SERVER['PHP_SELF'] que contiene el nombre de la página actualmente solicitado. Combinado con basename() esto debería funcionar:

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

usted puede hacerlo con un simple if, pero esto sólo funcionará para su página de contacto. También es posible usar una función simple en su archivo inc-cabecera que funcionaría así:

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>'; 
} 

Es una especie de un enfoque contundente desde el punto de vista de diseño, pero se puede usar LinkToPageOrHome('page.php', 'My Page'); en varias plantillas y nunca preocuparse de tener un enlace de página a sí mismo.