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ď č. 1Môž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.