2012-03-01 10 views
8

私はMagentoテンプレートの一部であるページタイトルを持っています。 URLの内容に応じて、2つのオプションのうちの1つを表示したいと思います。 URLはオプション1、ディスプレイの見出し1. URLは何か、表示見出し2である場合にはこれは私が思い付いたものですが、それは私のページのクラッシュを作っている場合:URLがこれと等しい場合はPHP、その後はアクションを実行します

<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を定義しましたか? –

+0

ページのこの部分の前のすべてが読み込まれ、停止します。エラーメッセージなし – miles

+0

このスレッドから$ domainを取得しました:http://stackoverflow.com/questions/1122261/php-check-if-domain-equals-value-then-perform-action – miles

答えて

22

ページが現在表示されているURLをお探しですか?間違った方法で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

+0

@milesが編集されました私の答えはあなたの観察を含み、他の人は答えを見に来ます。 –

4

私はあなたのドメイン権を取得しているかわかりません。私は実際にparse_urlをよく理解していないし、$domainが何であるかを私たちに示していない。

通常、ドメイン名を取得したい場合、私はこれを行います:$host = $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI']次にコードの残りの部分。

もしelse文が私にとって正当だと思われるなら、私は上記を試して、それがどのようになるかを見てみましょう。 ;)

編集:オープス、ジョンは私にそれを打つ。 :)

+0

上記の私の編集を参照してください。私はそれを試しましたが、前と同じ結果を得ました。 – miles

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

ページはもはやクラッシュしませんが、ステートメントは機能しません。私はまだ2番目の 'アカウントを作成'の見出しを取得しています – miles

+1

$ hostをあなたの自己があなたの望むURLと等しくない理由を見てエコーしてみてください。 –

+0

@miles提案したように$ hostを設定しようとしましたか? –

関連する問題