/ Globálna premenná / php nefunguje vo vnútri zahrnutého súboru - php, global-variables, php-include

php globálna premenná nefunguje vnútri zahrnutého súboru - php, global-variable, php-include

Hľadal som deň, aby som našiel riešenie, ale zatiaľ nemám šťastie, Mám funkciu s názvom: online() táto funkcia je vo vnútri súboru s názvom client.php ktorý sa nachádza v root / dir / includes / client.php:

V 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";
}
}

?>

O client.php:

najskôr vytvorí databázové pripojenie, potom skontroluje, či je používateľ k dispozícii, ak áno: $available = "true"; else: $available = "false";

Potom zaradím client.php v index.php (nachádza sa v root), takže mám:

v index.php:

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

Zatiaľ je všetko v poriadku, všetko funguje,

Problém je...

Túto funkciu musím použiť na ďalších stránkach v subadresáre tiež, aby som bol konkrétnejší, pokúšam sa pridať túto funkciu na svoju webovú stránku wordpress, ktorá sa nachádza v: root / wp do mojej hlavičky wordpressu zaraďujem client.php :

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

A dostanem výstup, takže som si istý, že je zahrnutý. Ale žiadna z mojich globálnych premenných nefunguje, keď otvorím svoj wordpress (root / wp), čo má za následok $available = null zatiaľ čo sa očakáva, že bude "false" ako je definované v client.php

Mätúce je, že keď ozvem $ k dispozícii vo vnútri mojej hlavičky wordpressu, môžem získať hodnotu, ale keď ju ozvem dovnútra client.php je znova nulová, takže ak ozvem echo aj v hlavičke wordpressu aj client.php , keď otvorím svoju stránku wordpress, vidím tú, ktorú som zahrnul do hlavičky, a tú druhú vnútri client.php je null.

Akákoľvek pomoc by bola veľmi cenená.

odpovede:

0 pre odpoveď č. 1

Môže to byť problém s a variabilný rozsah, Pokúste sa použiť

$GLOBALS["available"]

namiesto

$available

vo vašom client.php. Bude to teda definované v globálnom rozsahu. V časti definície tiež:

$GLOBALS["available"] = "false"; and $GLOBALS["available"] = "true";

0 pre odpoveď č. 2

Problémom je pravdepodobne odkaz na odkaz vo vašom súbore na zahrnutie. Môžete vyskúšať: include "/rootfolder/dir/includes/client.php"; namiesto zahrnúť "../dir/includes/client.php"; Tiež mal taký problém, ale tento problém vyriešil.