2012-03-01 90 views
8

所以我有一個頁面標題是Magento模板的一部分;我希望它顯示2個選項中的1個,具體取決於URL的內容。如果URL是選項1,顯示標題1.如果URL爲別的,顯示標題2,這是我想出了,但它使我的頁面崩潰:PHP如果URL等於這個,然後執行操作

<div class="page-title"> 
<h1><?php 
$host = parse_url($domain, PHP_URL_HOST); 
if($host == 'http://domain.com/customer/account/create/?student=1') { 
echo $this->__('Create an account if you are a Post Graduate Endodontic Resident and receive our resident pricing. Please fill in all required fields. Thank you!') 
} 
else 
{ 
echo $this->__('Create an Account') 
} 
?></h1> 
</div> 

人有什麼想法?

編輯:所以它應該看起來像這樣?

$host = $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI']; 
if($host == 'http://domain.com/customer/account/create/?student=1') 
+1

「使我的頁面崩潰」是什麼意思?你是否收到錯誤信息?更進一步:你在哪裏定義了變量$ domain? – 2012-03-01 20:13:45

+0

在頁面的這部分加載之前的一切,然後停止。沒有錯誤信息 – miles 2012-03-01 20:32:19

+0

我從這個線程得到了$域:http://stackoverflow.com/questions/1122261/php-check-if-domain-equals-value-then-perform-action – miles 2012-03-01 20:33:13

回答

22

您是否正在尋找該頁面當前所在的網址?您錯誤地使用parse_url;即如果您只想獲取主機或域名,即只有「dev.obtura.com」。看起來你想要的不僅僅是這些。另外,您從不設置$domain變量,所以parse_url()不知道如何處理它。因此,現在,您的if聲明將始終返回「創建帳戶」。

相反,與$_SERVER變量設置$host

$host = $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];

你也將需要刪除的 「http://」 從您的支票 - $host將只包含一切後的 「http://」

由於Aron Cederholm建議,您需要在您的回聲語句的末尾添加分號(;)。

所以,你的PHP代碼應該是這樣的:

$host = $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI']; 
if($host == 'domain.com/customer/account/create/?student=1') 
{ 
    echo $this->__('Create an account if you are a Post Graduate Endodontic Resident and receive our resident pricing. Please fill in all required fields. Thank you!'); 
} 
else 
{ 
    echo $this->__('Create an Account'); 
} 
+0

看我上面的編輯 – miles 2012-03-01 20:25:06

+0

@miles編輯我的回答是包含您的觀察結果,其他人將會看到答案。 – 2012-03-01 20:47:44

4

我不知道您要提取的域名權。我不是很瞭解parse_url,而且您還沒有向我們展示$domain的定義。

通常情況下,如果我想獲得域名,我會這樣做:$host = $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI']然後剩下的代碼。

如果,否則陳述似乎對我來說是合法的,所以我會嘗試上述並看看如何。 ;)

編輯:哎呀,約翰打我。 :)

+0

看到我上面的編輯。我嘗試過,但得到了和以前一樣的結果。 – miles 2012-03-01 20:34:51

3

您應該在您的if-else內部的語句中添加分號。

if($host == 'http://dev.obtura.com/customer/account/create/?student=1') { 
    echo $this->__('Create an account if you are a Post Graduate Endodontic Resident and receive our resident pricing. Please fill in all required fields. Thank you!'); 
} 
else 
{ 
    echo $this->__('Create an Account'); 
} 
+0

頁面不再崩潰,但語句不起作用。我仍然得到第二個'創建帳戶'標題 – miles 2012-03-01 20:39:11

+1

嘗試回顯$主機以查看您的自我爲什麼它不等於您想要的網址。 – 2012-03-01 20:42:00

+0

@miles你是否按照我的建議嘗試設置$ host? – 2012-03-01 20:42:36

相關問題