2011-11-03 2 views
5

संपर्क पृष्ठ के अलावा सभी पृष्ठों पर, मैं चाहता हूं कि यह inc-header.php में निम्नलिखित को दिखाए।यदि यह पृष्ठ यह दिखाएं यह

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

पेज contact.php पर, मैं यह दिखाना चाहते हैं:

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

यह संभव सही होना चाहिए?

+0

क्यों एक सामान्य मेनू शामिल नहीं है प्रत्येक फ़ाइल में सभी लिंक शामिल हैं? सिर्फ "घर" लिंक होने के कारण पिछले शताब्दी अभ्यास का पुराना तरीका है। –

उत्तर

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, लेकिन ओपी का उल्लेख नहीं है कि पृष्ठ 'contact.php' नामक फ़ाइल है। शायद यूआरएल पर आधारित बेहतर है? –

+0

सभी फ़ीड के लिए धन्यवाद, ऊपर दिए गए एक काम ने किया। धन्यवाद! :) – 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

मेरे सर्वर पर, इसे '/contact.php' से तुलना करने की आवश्यकता होगी, क्योंकि इसमें अग्रणी स्लैश भी शामिल है। सुनिश्चित नहीं है कि यह सर्वर विशिष्ट है या नहीं। – nickb

1

त्वरित और गंदी समाधान है:

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

inc_header.php में:

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

और आप '$ current_page' का मान कहां सेट करते हैं? Contact.php में – Nico

+0

! (contact.php मानना ​​फ़ाइल है जहां संपर्क पृष्ठ लोड किया गया है और inc_header.php शामिल कथन रखा गया है) – giorgio

3

वहाँ एक वैश्विक चर $_SERVER['PHP_SELF'] नामित अपने पृष्ठ के नाम शामिल हैं वह यह है कि वर्तमान में अनुरोध किया गया। basename() के साथ संयुक्त यह काम करना चाहिए:

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

आप एक सरल अगर बयान के साथ यह कर सकते हैं, लेकिन यह केवल अपने संपर्क पृष्ठ के लिए काम करेंगे। आप भी अपनी इंक-हेडर फाइल में एक साधारण समारोह कि इतने की तरह काम करेगा इस्तेमाल कर सकते हैं:

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

यह एक डिजाइन दृष्टिकोण से एक कुंद दृष्टिकोण की तरह है, लेकिन आप एक से अधिक टेम्पलेट में LinkToPageOrHome('page.php', 'My Page'); इस्तेमाल कर सकते हैं और होने की चिंता कभी नहीं खुद के लिए एक पेज लिंक।