2011-11-03 31 views
5

İletişim sayfasındaki tüm sayfalarda, inc-header.php içerisinde aşağıdakileri göstermesini istiyorum. sayfa contact.php günü Bu Sayfa Göster Bu Else Bu Göster Göster

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

, bunu göstermek istiyorum:

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

Bu, doğru mümkün olmalıdır?

+0

Neden her bir dosyaya tüm bağlantıları içeren ortak bir menü eklememelisiniz? sadece "ev" bağlantısına sahip olmak geçtiğimiz yüzyıldaki bir uygulama tarzıdır. –

cevap

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, ancak OP, "contact.php" adlı bir dosyaysa, söz konusu değildir. Belki de URL'ye göre daha iyi? –

+0

Tüm geri beslemeler için teşekkür ederim, yukarıdakiler işe yaradı. Teşekkürler! :) – 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

Sunucumda bu, /contact.php ile karşılaştırılmalı; Bu, sunucuya özgü olup olmadığından emin değil. – nickb

1

hızlı ve kirli bir çözümdür:

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

: Sayfanızın adını içerir $_SERVER['PHP_SELF'] adında bir genel değişken vardır

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

Ve "$ current_page" değerini nerede ayarlıyorsunuz? – Nico

+0

contact.php içinde! (contact.php'nin, iletişim sayfasının yüklendiği ve inc_header.php include ifadesinin bulunduğu dosya olduğu varsayılarak) – giorgio

3

şu anda talep edildi.

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

Sen deyimi ise basit ile yapabilirsiniz, ancak bu yalnızca iletişim sayfası için çalışacak: basename() ile birlikte bu çalışması gerekir. Ayrıca şöyle çalışacak senin inc-başlık dosyasında basit bir işlevi kullanabilirsiniz:

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

O bir tasarım açısından bir künt yaklaşımın çeşit Ancak birden çok şablonlarında LinkToPageOrHome('page.php', 'My Page'); kullanabilir ve konusunda endişelenmeyin asla kendi başına bir sayfa bağlantısı.