/ Die globale Variable / php funktioniert nicht in der enthaltenen Datei - php, globale Variablen, php-include

Die globale PHP-Variable funktioniert nicht in der enthaltenen Datei - PHP, globale Variablen, PHP-Include

Ich habe nach einem Tag gesucht, um eine Lösung dafür zu finden, aber noch kein Glück, Ich habe eine Funktion namens: online() Diese Funktion befindet sich in einer Datei namens client.php welches sich in root / dir / includes / client.php befindet:

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

?>

Über client.php:

Zuerst baut es eine Datenbankverbindung auf, dann prüft es, ob ein Benutzer verfügbar ist, wenn ja: $available = "true"; sonst: $available = "false";

Dann schließe ich ein client.php im index.php (befindet sich in root), also habe ich:

in index.php:

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

So weit so gut, alles funktioniert,

Das Problem ist...

Ich muss diese Funktion auf anderen Seiten in sub verwendenverzeichnisse auch, um genauer zu sein, versuche ich, diese funktion zu meiner wordpress website hinzuzufügen, die sich befindet in: root / wp In meinem WordPress-Header füge ich client.php :

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

Und ich erhalte die Ausgabe, also bin ich sicher, dass sie enthalten ist. Aber keine meiner globalen Variablen funktioniert, wenn ich mein WordPress (root / wp) öffne, was dazu führt $available = null während es erwartet wird "false" wie es in definiert ist client.php

Das Verwirrende ist, dass ich den Wert erhalten kann, wenn ich $ available in meinem WordPress-Header als Echo gebe, aber wenn ich es in meinem Header als Echo gebe client.php es ist wieder null, also wenn ich sowohl in wordpress header als auch echo client.php Wenn ich meine WordPress-Seite öffne, sehe ich die in der Kopfzeile enthaltene und die andere darin client.php ist Null.

Jede Hilfe würde sehr geschätzt werden.

Antworten:

0 für die Antwort № 1

Es kann ein Problem mit einem sein variabler Umfang. Versuchen zu benutzen

$GLOBALS["available"]

Anstatt von

$available

in deiner client.php. Es wird also im globalen Geltungsbereich definiert. Im Definitionsbereich auch:

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

0 für die Antwort № 2

Ihr Problem ist wahrscheinlich die Linkreferenz in Ihrer Include-Datei. Du könntest es versuchen: include "/rootfolder/dir/includes/client.php"; statt einschließen "../dir/includes/client.php"; Hatte auch ein Problem wie dieses, aber das hat es behoben.