2017-01-15 11 views
0

私は2つのnavを持つPHPページを持っています。 1つは管理者のナビ、もう1つは公開です。下のコードを使用して、私が入っているディレクトリを特定しようとしています。そのディレクトリに応じて適切なナビを表示します。私はこのPHPスニペットがうまくいくように感じる。パスがパスと等しい場合にnavを表示

<?php 

    $public = APP_PUBLIC_PATH; 
    $admin = APP_ADMIN_PATH; 

    if(is_dir($public)) { 
     $publicnav = "showme"; 
     $adminnav = "hideme"; 
    } 
    else if (is_dir($admin)) { 
     $publicnav = "hideme"; 
     $adminnav = "showme"; 
    } 
?> 

<nav class="<?php echo $publicnav; ?"> 
<nav class="<?php echo $admin; ?"> 

私はまた、次のことを試してみた:

<?php 

    $public = APP_PUBLIC_PATH; 
    $admin = APP_ADMIN_PATH; 

    if(is_dir($public)) { 
     $publicnav = "showme"; 
     $adminnav = "hideme"; 
    } 
    else { 
     $publicnav = "hideme"; 
     $adminnav = "showme"; 
    } 
?> 

<nav class="<?php echo $publicnav; ?>"> 
<nav class="<?php echo $admin; ?>"> 
+0

*私はこのPHPスニペットがうまくいくように感じています。あなたは何が間違っているのかを私たちに伝えていません。 – Xorifelse

+0

あなたは定義されたconstのディスク上のパスを参照していますか?それはis_dirが – csminb

+0

をチェックすることで、問題は機能しないということです。@ csminbのように、間違った機能を使用している可能性が高いと言えます。私は何をしようとしているのか説明します。 私は、ユーザがどのサブディレクトリにいるかを判断し、そのディレクトリに従ってnavを表示しようとしています.2つのディレクトリはpublicまたはadminです。 私は自分の「APP_PUBLIC_PATH」と「APP_ADMIN_PATH」を使用しようとしましたが、これらの値は既に自分の設定で定義されています。 –

答えて

0

is_dirはあなたが提供するパスがディレクトリかそうでないかどうかを確認します。あなたの目標は、現在のパスが管理者用か通常のユーザー用かを確認することです。

現在のURIを取得する方法については、$ _SERVER superglobal変数を参照してください。私はこのようなことを信じています。

$currentPath = $_SERVER['REQUEST_URI']; 
if ($currentPath == $public) { 
    // do logic 
} else if ($currentPath == $admin) { 
    // other logic 
} 
関連する問題