2011-10-31 12 views
3

自分のロゴが他のページに表示されないように指定しようとしていますが、表示したくないページはホームページと/index.phpです。大きなロゴが表示され消えてしまっているので、私は小さなロゴの反対をすることができると推測しましたが、何か間違ったことをする必要があります。ここに私の現在のコードは次のとおりです。PHP if文が間違っている箇所がわからない

<?php 
$dunpage = $_SERVER['REQUEST_URI']; if ($dunpage != '/index.php' || $dunpage != '/') {?>  
<h1 class="small-logo"> 
<a href="/" title="<?php echo $siteName; ?>"><span><?php echo $siteName; ?></a> 
</h1> 
<?php } 
?> 
<?php 
$currentpage = $_SERVER['REQUEST_URI']; if ($currentpage == '/' || $currentpage == '/index.php') {?> 
<h1 class="logo";> 
    <a href="/" title="<?php echo $siteName; ?>"><span><?php echo $siteName; ?></a> 
</h1> 
<?php } 
?> 
+1

'$ dunpage!= '/index.php' || $ dunpage!= '/' 'この条件は**常に** TRUEに評価されます – zerkms

+0

すみません、皆様、ありがとうございます。彼らはとても役に立ちました。私に多くの時間を救った:-) – user1021330

+1

@ user1021330ようこそスタックオーバーフロー。回答に満足している場合は、スコアの下にあるチェックマークをクリックして、それを合格とマークしてください。 –

答えて

2

は、あなたの小さなロゴの

if ($dunpage != '/index.php' && $dunpage != '/') { 

を試してみてください。

2

正しく==演算子を否定しましたが、||演算子は無効にしました。オペレーター。 dunpageが/index.phpでない場合やdunpageが/でない場合、それは基本的に常にそうすることを意味します。変更||小さなロゴの場合は& &になります。代わりに、論理和、あなたの最初の状態で、あなたは論理AND使用しなければならないの

3

:効果的

$dunpage = $_SERVER['REQUEST_URI']; if ($dunpage != '/index.php' || $dunpage != '/') {?> 
// Should be 
$dunpage = $_SERVER['REQUEST_URI']; if ($dunpage != '/index.php' && $dunpage != '/') {?> 

を、あなたは「ページがないかindex.phpない、または/であれば行動する。」と言いました。どちらの場合でも、その逆は真実です。 index.phpでない場合は、たとえば/となります。

1

なぜあなたはelseを使用しませんか?

<?php 
$currentpage = $_SERVER['REQUEST_URI']; if ($currentpage == '/' || $currentpage == '/index.php') { ?> 
<h1 class="logo";> 
    <a href="/" title="<?php echo $siteName; ?>"><span><?php echo $siteName; ?></a> 
</h1> 
<?php 
} else { 
?> 
<h1 class="small-logo"> 
    <a href="/" title="<?php echo $siteName; ?>"><span><?php echo $siteName; ?></a> 
</h1> 
<?php 
} 
?> 

(あなたが実際にそれが大きいか表示したい小さなロゴのどちらかだと言及していないが、私はそれがここでそうであると仮定しなければなりません。)

それとも、in_array使用することができます() この場合。

<?php 
$displayMainLogo = array('/', '/index.php'); 
if (in_array($_SERVER['REQUEST_URI'], $displayMainLogo)) { ?> 
<h1 class="logo";> 
    <a href="/" title="<?php echo $siteName; ?>"><span><?php echo $siteName; ?></a> 
</h1> 
<?php 
} else { 
?> 
<h1 class="small-logo"> 
    <a href="/" title="<?php echo $siteName; ?>"><span><?php echo $siteName; ?></a> 
</h1> 
<?php 
} 
?> 

あなたは三元(http://php.net/manual/en/language.operators.comparison.php)を行う方法を理解していれば、これはあなたがそれを作ることができるほど簡潔です。

<h1 class="<?php echo (in_array($_SERVER['REQUEST_URI'], $displayMainLogo)) ? 'logo' : 'small-logo' ?>";> 
    <a href="/" title="<?php echo $siteName; ?>"><span><?php echo $siteName; ?></a> 
</h1> 
関連する問題