Hallo!
Ich benutze folgende Funktion in einer Webapplikation. Mit Hilfe dieser Funktion hole ich mir bestimmte Voreinstellungen aus einer DB-Tabelle. Wie man sehen kann, alde ich eine globale Variable namens "dba".
$dba wird in der index.php wie folgt definiert:
Bis jetzt hat der Funktionsaufruf eigentlich immer geklappt. Heute habe ich allerdings eine Datei aufgerufen, in der ich auch die obige Funktion aufgerufen habe.:
Nachdem ich die Datei ausgeführt habe, kam folgender Fehler:
Erste Frage: Kann mir jemand erklären warum $dba in dieser Funktion auf einmal nicht mehr funktioniert? $dba ist als global in X anderen Funktionen in der Applikation definiert - funktioniert aber überall probemlos. Nur in dieser einen Funktionen habe ich auf einmal Probleme mit dem laden von $dba.
NAchdem ich __o() wie folgt umgeschrieben habe, funktionierte der Aufruf wieder, bis ....
...ich dann folgende Funktion wieder aufrufen wollte:
Dann zeigte mir mein Browser auf einmal an, dass die geforderte Seite nicht mehr verfügbar war. Auf meinem Server (debian,64bit, inkl. aller aktuellen Updates) sah ich unter /var/log/apache2/error.log nach, was da los war. Folgende Zeile stand da:
...sprich die Engine stürzte ab. Kann mir jemand sagen was ich falsch mache?
Bin ratlos!!
Ich benutze folgende Funktion in einer Webapplikation. Mit Hilfe dieser Funktion hole ich mir bestimmte Voreinstellungen aus einer DB-Tabelle. Wie man sehen kann, alde ich eine globale Variable namens "dba".
PHP:
function __o($option) {
global $dba;
$option = strtoupper($option);
$d = $dba->get("SELECT o_value FROM options WHERE o_option='{$option}'");
return $d['o_value'];
}
$dba wird in der index.php wie folgt definiert:
PHP:
$dba = new db("mysql:host".DB_HOST.";port=".DB_PORT.";dbname=".DB_NAME,DB_USER,DB_PASS);
Bis jetzt hat der Funktionsaufruf eigentlich immer geklappt. Heute habe ich allerdings eine Datei aufgerufen, in der ich auch die obige Funktion aufgerufen habe.:
PHP:
if(strlen($_POST['bill_reverse_cause'])<__o("MIN_LENGTH_REVERSEBILL")) {
$err++;
}
Nachdem ich die Datei ausgeführt habe, kam folgender Fehler:
Code:
Fatal error: Call to a member function get() on a non-object in /var/www/osm/functions/common.php on line 212
Erste Frage: Kann mir jemand erklären warum $dba in dieser Funktion auf einmal nicht mehr funktioniert? $dba ist als global in X anderen Funktionen in der Applikation definiert - funktioniert aber überall probemlos. Nur in dieser einen Funktionen habe ich auf einmal Probleme mit dem laden von $dba.
NAchdem ich __o() wie folgt umgeschrieben habe, funktionierte der Aufruf wieder, bis ....
PHP:
function __o($option) {
$dba = new db("mysql:host".DB_HOST.";port=".DB_PORT.";dbname=".DB_NAME,DB_USER,DB_PASS);
$option = strtoupper($option);
$d = $dba->get("SELECT o_value FROM options WHERE o_option='{$option}'");
return $d['o_value'];
}
...ich dann folgende Funktion wieder aufrufen wollte:
PHP:
if(strlen($_POST['bill_reverse_cause'])<__o("MIN_LENGTH_REVERSEBILL")) {
$err++;
}
Dann zeigte mir mein Browser auf einmal an, dass die geforderte Seite nicht mehr verfügbar war. Auf meinem Server (debian,64bit, inkl. aller aktuellen Updates) sah ich unter /var/log/apache2/error.log nach, was da los war. Folgende Zeile stand da:
Code:
[Sun Nov 23 16:31:11 2014] [notice] child pid 2492 exit signal Segmentation fault (11)
...sprich die Engine stürzte ab. Kann mir jemand sagen was ich falsch mache?
