1

私はこれに対する解決策を見つけるために一日を探しましたが、まだうまくいきません. というonline()関数がありますclient.php.

client.php で:

// db connection
include "base.php";

// check if availabe
$available = "false";
$check = mysql_query("SELECT available FROM users ");
while ($row=mysql_fetch_array($check)) {
    if($row['available'] == "yes") {
        $available = "true";
    }
}
// get config
$fetch = mysql_query("SELECT * FROM config ");
$config = mysql_fetch_array($fetch);

// functions
function online() {
// globals
global $available,$config,$path;

// build box

    if($available == "true") {
        ?>
        <div id="online">

        <?
    } else {
            ?><div id="offline"> <?
        }
echo 'client.php is included';
}
}

?>

client.php について:

最初にデータベース接続を確立し、次にユーザーが利用可能かどうかを確認し$available = "true"; ます。 $available = "false";

次にclient.phpindex.php(ルートにある)に含めます。

index.php で:

$path = "dir/";
include $path . "includes/client.php";

これまでのところ、すべてがうまくいき、

問題は...

サブディレクトリの他のページでもこの関数を使用する必要があります。より具体的には、この関数を次の場所にある自分のワードプレス Web サイトに追加しようとしていますclient.php

include "../dir/includes/client.php";

そして、出力が得られるので、含まれていると確信していますが、ワードプレス(ルート/ wp)を開いたときにグローバル変数が機能せず、で定義されている$available = nullと予想される"false"client.php

紛らわしいのは、wordpress ヘッダー内で $available をエコーすると値を取得できますが、内部client.phpでエコーすると再び null になるため、wordpress ヘッダーとclient.phpの両方をエコーすると、wordpress ページを開いたときに、私がヘッダーに含めたものを見ることができ、内部の他のものclient.phpはnullです。

どんな助けでも大歓迎です。

4

2 に答える 2

0

変数のスコープの問題である可能性があります。使ってみて

$GLOBALS['available']

それ以外の

$available

あなたのclient.phpで。したがって、グローバルスコープで定義されます。定義セクションでも:

$GLOBALS['available'] = "false"; and $GLOBALS['available'] = "true";
于 2013-07-28T13:07:51.587 に答える
0

あなたの問題は、おそらくインクルード ファイルのリンク参照です。試すことができます: include "/rootfolder/dir/includes/client.php";代わりに include"../dir/includes/client.php";このような問題もありましたが、これで修正されました。

于 2013-07-28T13:51:29.377 に答える