PHP debuggen
Hallo alle miteinander,
ich habe ein Problem mit "squirrelmail". Auf etlichen Servern läuft es
brav, auf einem meldet es
PHP Fatal error: Call to undefined function getPref() in /path/to/
squirrelmail/include/load_prefs.php on line 25
Auslöser ist (in load_prefs.php) der Aufruf
$custom_css = getPref($data_dir, $username, "custom_css', 'none' );
Betriebssystem ist Linux (Kernel 2.6.2x.y), Apache 1.3.36/1.3.37, PHP
5.2.1/3
Kann ich "irgendwie" einen Debugger mitlaufen lassen, der mir etwas
genauer zeigen kann, warum bei dieser einen Maschine "getPref" als
"undefiniert" identifiziert wird?
Viele Gruesse!
Helmut
Re: PHP debuggen
Hi Helmut,
Helmut Hullen schrieb:
> ...
> $custom_css = getPref($data_dir, $username, "custom_css', 'none' );
ist die Kombination " und ' hier gewollt, oder nur ein Vertipper im Posting?
bye
Stefano
--
business: spicOne multimedia http://www.spicone.de - http://www.spic.de
projects: http://www.mythos77.de - http://www.typopolis.de
private: http://blog.stefano-picco.de - http://spicone.deviantart.com
Re: PHP debuggen
Hallo, stefano,
Du (s.picco) meintest am 07.08.07:
>> ...
>> $custom_css = getPref($data_dir, $username, "custom_css', 'none'
>> );
> ist die Kombination " und ' hier gewollt, oder nur ein Vertipper im
> Posting?
Tippfehler - sorry.
Auf den anderen Rechnern funktioniert die Zeile.
Viele Gruesse!
Helmut
Re: PHP debuggen
Helmut Hullen wrote:
> ich habe ein Problem mit "squirrelmail". Auf etlichen Servern läuft e=
s
> brav, auf einem meldet es
>
> PHP Fatal error: Call to undefined function getPref() in /path/to/
> squirrelmail/include/load_prefs.php on line 25
>
> Auslöser ist (in load_prefs.php) der Aufruf
>
> $custom_css =3D getPref($data_dir, $username, "custom_css', 'none' );=
Ja, gut, aber wo ist das Problem? getPref ist eben nicht deklariert.
Was würdest du davon halten, bei den Servern, bei denen es
funktioniert, mal zu gucken, wo getPref() deklariert wurde?
Re: PHP debuggen
Hallo, Anne,
Du (nomail) meintest am 07.08.07:
>> PHP Fatal error: Call to undefined function getPref() in /path/to/
>> squirrelmail/include/load_prefs.php on line 25
>>
>> Auslöser ist (in load_prefs.php) der Aufruf
>>
>> $custom_css = getPref($data_dir, $username, "custom_css', 'none'
>> );
> Ja, gut, aber wo ist das Problem? getPref ist eben nicht deklariert.
> Was würdest du davon halten, bei den Servern, bei denen es
> funktioniert, mal zu gucken, wo getPref() deklariert wurde?
Danke - ich habe bei der Suche nach "getPref.*=" 2 Treffer gefunden,
beide mit dem Aufbau "function getPref(...)". Bei PHP bin ich noch
blutiger Anfänger: ist das die einzige Form, die "getPref" deklariert?
Der Zusammenhang könnte passen, aber mich reizt nicht sonderlich,
intensiv einer falschen Spur zu folgen.
Viele Gruesse!
Helmut
Re: PHP debuggen
Helmut Hullen schrieb:
> Hallo, Anne,
>
> Du (nomail) meintest am 07.08.07:
>
>>> PHP Fatal error: Call to undefined function getPref() in /path/to/
>>> squirrelmail/include/load_prefs.php on line 25
>>>
>>> Auslöser ist (in load_prefs.php) der Aufruf
>>>
>>> $custom_css = getPref($data_dir, $username, "custom_css', 'none'
>>> );
>
>> Ja, gut, aber wo ist das Problem? getPref ist eben nicht deklariert.
>
>> Was würdest du davon halten, bei den Servern, bei denen es
>> funktioniert, mal zu gucken, wo getPref() deklariert wurde?
>
> Danke - ich habe bei der Suche nach "getPref.*=" 2 Treffer gefunden,
> beide mit dem Aufbau "function getPref(...)". Bei PHP bin ich noch
Ich denke, dass du nicht nur bei PHP blutiger Anfänger bist, sonst
würdest du hier nicht nach einem Debugger fragen.
> blutiger Anfänger: ist das die einzige Form, die "getPref" deklariert?
Nein getPref könnte auch in einer selbsterstellten Extension enthalten
sein. Aber wenn du schon fucntion getPref gefunden hast, dann ist ja
schon alles klar, musst nur noch nachsehen, wo auf dem funktionierenden
Servern das File das function getPref enthält includiert wird.
>
> Der Zusammenhang könnte passen, aber mich reizt nicht sonderlich,
> intensiv einer falschen Spur zu folgen.
>
> Viele Gruesse!
> Helmut
>
Re: PHP debuggen
Hallo, Stefan,
Du (sbraumi) meintest am 07.08.07:
>> Danke - ich habe bei der Suche nach "getPref.*=" 2 Treffer gefunden,
>> beide mit dem Aufbau "function getPref(...)". Bei PHP bin ich noch
> Ich denke, dass du nicht nur bei PHP blutiger Anfänger bist, sonst
> würdest du hier nicht nach einem Debugger fragen.
Hmmm - für mich gehört (seit inzwischen etwa 40 Jahren) ein Debugger zu
den wichtigsten Werkzeugen bei der Software-Entwicklung.
>> blutiger Anfänger: ist das die einzige Form, die "getPref"
>> deklariert?
> Nein getPref könnte auch in einer selbsterstellten Extension
> enthalten sein. Aber wenn du schon fucntion getPref gefunden hast,
> dann ist ja schon alles klar,
Danke - dann bin ich mit dem Teil der Suche fertig.
Viele Gruesse!
Helmut
Re: PHP debuggen
Helmut Hullen schrieb:
> Hmmm - für mich gehört (seit inzwischen etwa 40 Jahren) ein Debugge=
r zu
> den wichtigsten Werkzeugen bei der Software-Entwicklung.
Wenn du schon so lange programmierst (ich mach das erst 30 Jahre ;-) ),
solltest du "Debugging zu Fuß" kennen. In PHP helfen dir da echo,
print_r(), var_dump(), debug_backtrace() und debug_print_backtrace().
Mehr dazu findest du im Manual:
http://de3.php.net/manual/en/ref.errorfunc.php
MfG
Niels
--
| http://www.kolleg.de =B7 Das Portal der Kollegs in Deutschland |
| http://www.bsds.de =B7 BSDS Braczek Software- und DatenSysteme |
| Webdesign =B7 Webhosting =B7 e-Commerce =B7 Joomla! Content Management =
|
------------------------------------------------------------ ------
Re: PHP debuggen
Hallo, Niels,
Du (nbraczek) meintest am 08.08.07:
>> Hmmm - für mich gehört (seit inzwischen etwa 40 Jahren) ein Debugger
>> zu den wichtigsten Werkzeugen bei der Software-Entwicklung.
> Wenn du schon so lange programmierst (ich mach das erst 30 Jahre ;-)
> ), solltest du "Debugging zu Fuß" kennen. In PHP helfen dir da echo,
> print_r(), var_dump(), debug_backtrace() und debug_print_backtrace().
Klar - aber es gibt Systeme, bei denen das Debuggen einfacher ist ...
> Mehr dazu findest du im Manual:
> http://de3.php.net/manual/en/ref.errorfunc.php
Danke!
Viele Gruesse!
Helmut
Re: PHP debuggen
> Du (nbraczek) meintest am 08.08.07:
>
>> Wenn du schon so lange programmierst (ich mach das erst 30 Jahre ;-)
>> ), solltest du "Debugging zu Fuß" kennen. In PHP helfen dir da echo,=
>> print_r(), var_dump(), debug_backtrace() und debug_print_backtrace().
>
> Klar - aber es gibt Systeme, bei denen das Debuggen einfacher ist ...
Es gibt ja auch für PHP mehrere Debugger; ich habe aber bisher noch kei=
n
System gesehen (zumindest erinnere ich mich nicht), das in der
Grundaussstattung bereits so viele Werkzeuge mitbringt. Ich brauche bei
der Entwicklung nichts anderes als a) einen eigenen Error-Handler, der
mir bei jedem Fehler (auch Notices) die Aufruf-Historie mit Parametern
anzeigt und b) einem kleinen Makro, mit dem ich beliebige
Variableninhalte als HTML-Kommentar ausgeben kann. Mit diesen beiden
Mitteln kann ich auf *jedem* Server meine Tests durchführen und nicht
nur auf meinem Entwicklungsrechner.
MfG
Niels
--
| http://www.kolleg.de =B7 Das Portal der Kollegs in Deutschland |
| http://www.bsds.de =B7 BSDS Braczek Software- und DatenSysteme |
| Webdesign =B7 Webhosting =B7 e-Commerce =B7 Joomla! Content Management =
|
------------------------------------------------------------ ------
Re: PHP debuggen
Helmut Hullen schrieb:
> Hallo, Stefan,
>
> Du (sbraumi) meintest am 07.08.07:
>
>>> Danke - ich habe bei der Suche nach "getPref.*=" 2 Treffer gefunden,
>>> beide mit dem Aufbau "function getPref(...)". Bei PHP bin ich noch
>
>> Ich denke, dass du nicht nur bei PHP blutiger Anfänger bist, sonst
>> würdest du hier nicht nach einem Debugger fragen.
>
> Hmmm - für mich gehört (seit inzwischen etwa 40 Jahren) ein Debugger zu
> den wichtigsten Werkzeugen bei der Software-Entwicklung.
Ja ein Debugger ist schon einwichtiges Werkzeug, mir wäre es aber neu,
dass man Anwendungen debuggen kann, wenn es unresolved symbols bzw. hier
undefined functions gibt. Der debugger kann dir hier auch nicht mehr
Informationen geben und z.B. im Falle einer C++ Anwendung wirst du die
Anwendung gar nicht kompilieren können. Von daher bin ich verwundert,
dass du hier etwas debuggen wollstest, denn bei solchen Fehlern wirst du
auch in anderen Sprachen keinen Debugger nutzen um die fehlende
Funktion/Symbol zu finden.
>
>>> blutiger Anfänger: ist das die einzige Form, die "getPref"
>>> deklariert?
>
>> Nein getPref könnte auch in einer selbsterstellten Extension
>> enthalten sein. Aber wenn du schon fucntion getPref gefunden hast,
>> dann ist ja schon alles klar,
>
> Danke - dann bin ich mit dem Teil der Suche fertig.
>
> Viele Gruesse!
> Helmut
>
Re: PHP debuggen
Moin!
Helmut Hullen schrieb:
> Hallo, Niels,
>
> Du (nbraczek) meintest am 08.08.07:
>
>>> Hmmm - für mich gehört (seit inzwischen etwa 40 Jahren) ein Debugger
>>> zu den wichtigsten Werkzeugen bei der Software-Entwicklung.
>
>> Wenn du schon so lange programmierst (ich mach das erst 30 Jahre ;-)
>> ), solltest du "Debugging zu Fuß" kennen. In PHP helfen dir da echo,
>> print_r(), var_dump(), debug_backtrace() und debug_print_backtrace().
>
> Klar - aber es gibt Systeme, bei denen das Debuggen einfacher ist ...
Mit PHP kann man auch recht vernünftig debuggen, wenn man bereit ist,
etwas Geld auszugeben. Wir setzen hier in der Firma das Zend Development
Environment ein. Damit kann man zeilenweise den Code durchlaufen, kann
sich Inhalte von Variablen anschauen, etc.
Leider kann man den PI nicht verändern, aber ansonsten ist es recht gut.
Michael
Re: PHP debuggen
Michael Vogel schrieb:
> Moin!
>
> Helmut Hullen schrieb:
>> Hallo, Niels,
>>
>> Du (nbraczek) meintest am 08.08.07:
>>
>>>> Hmmm - für mich gehört (seit inzwischen etwa 40 Jahren) ein Debugger
>>>> zu den wichtigsten Werkzeugen bei der Software-Entwicklung.
>>
>>> Wenn du schon so lange programmierst (ich mach das erst 30 Jahre ;-)
>>> ), solltest du "Debugging zu Fuß" kennen. In PHP helfen dir da echo,
>>> print_r(), var_dump(), debug_backtrace() und debug_print_backtrace().
>>
>> Klar - aber es gibt Systeme, bei denen das Debuggen einfacher ist ...
>
> Mit PHP kann man auch recht vernünftig debuggen, wenn man bereit ist,
> etwas Geld auszugeben. Wir setzen hier in der Firma das Zend Development
> Environment ein. Damit kann man zeilenweise den Code durchlaufen, kann
> sich Inhalte von Variablen anschauen, etc.
Dazu brauchst du aber kein Geld ausgeben mit PHPEclipse und DBG geht das
auch sehr gut, wie der Stand mit xdebug ist weis ich nicht.
http://www.plog4u.org/index.php/PHPEclipse_verwenden_:_Insta llation_:_Installation_des_DBG-Debuggers
>
> Leider kann man den PI nicht verändern, aber ansonsten ist es recht gut.
>
> Michael
Re: PHP debuggen
Hallo, Niels,
Du (nbraczek) meintest am 08.08.07:
>> Hmmm - für mich gehört (seit inzwischen etwa 40 Jahren) ein Debugger
>> zu den wichtigsten Werkzeugen bei der Software-Entwicklung.
> Wenn du schon so lange programmierst (ich mach das erst 30 Jahre ;-)
> ), solltest du "Debugging zu Fuß" kennen.
Ja - und da bin ich ein wenig weitergekommen. Die Funktion "getPref"
existiert, und sie wird auch benutzt (Breakpoints werden gezeigt).
"Call to undefined function getPref()" sagt also nicht (unbedingt), dass
diese Funktion fehlt (oder nicht lesbar ist), sondern dass da ein
Problem ist.
Ich habe mal die "php.ini" in "/etc/apache" erneuert - das verschiebt
den Ort der Fehlermeldung (das Programm kommt einige Schritte weiter).
Ich werde wohl die Apache-Konfigurationen vergleichen müssen.
Viele Gruesse!
Helmut
Re: PHP debuggen
Stefan Braumeister wrote:
> Dazu brauchst du aber kein Geld ausgeben
Für was ordentliches schon.
> mit PHPEclipse und DBG geht das auch sehr gut
Ja aber wie gesagt für was besseres bezahlt man halt. (Ja ich hasse
Eclipse ;-) )
Der Zenddebugger kann z.B. auch für Remote-Debuging genutzt werden.
Kenne keinen anderen der das kann.
> wie der Stand mit xdebug ist weis ich nicht.
Wurde erst ne neue Version releast.
MfG, Ulf
Re: PHP debuggen
Ulf Kadner schrieb:
> Stefan Braumeister wrote:
>
>> Dazu brauchst du aber kein Geld ausgeben
>
> Für was ordentliches schon.
>
>> mit PHPEclipse und DBG geht das auch sehr gut
>
> Ja aber wie gesagt für was besseres bezahlt man halt. (Ja ich hasse
> Eclipse ;-) )
>
> Der Zenddebugger kann z.B. auch für Remote-Debuging genutzt werden.
> Kenne keinen anderen der das kann.
Was glaubst du was ich hier mit PHPEclipse und DBG mache:-)
>
>> wie der Stand mit xdebug ist weis ich nicht.
>
> Wurde erst ne neue Version releast.
Ja aber ich meinte eher wie stabil xdebug mittlerweile ist?
>
> MfG, Ulf
Re: PHP debuggen
Helmut Hullen schrieb:
> Hallo, Niels,
>
> Du (nbraczek) meintest am 08.08.07:
>
>>> Hmmm - für mich gehört (seit inzwischen etwa 40 Jahren) ein Debugger
>>> zu den wichtigsten Werkzeugen bei der Software-Entwicklung.
>
>> Wenn du schon so lange programmierst (ich mach das erst 30 Jahre ;-)
>> ), solltest du "Debugging zu Fuß" kennen.
>
> Ja - und da bin ich ein wenig weitergekommen. Die Funktion "getPref"
> existiert, und sie wird auch benutzt (Breakpoints werden gezeigt).
> "Call to undefined function getPref()" sagt also nicht (unbedingt), dass
> diese Funktion fehlt (oder nicht lesbar ist), sondern dass da ein
> Problem ist.
Sag mal mit was hast du eigentlich bisher programmiert?
Wenn da steht, dass sie nicht definiert ist, dann ist sie in dem Kontext
nicht definiert, z.B. weil das Script an den die Funktion definiert ist
nicht inkludiert ist.
Würdest du die Funktion fehlerhaft aufrufen, dann würde dir das auch so
gemeldet werden.
>
> Ich habe mal die "php.ini" in "/etc/apache" erneuert - das verschiebt
> den Ort der Fehlermeldung (das Programm kommt einige Schritte weiter).
> Ich werde wohl die Apache-Konfigurationen vergleichen müssen.
Check mal dein Apache log, ich wette da findest du Fehlermeldungen wie :
PHP Warning: include() [<a
href='function.include'>function.include</a>]: Failed opening
>
> Viele Gruesse!
> Helmut
>
Re: PHP debuggen
Michael Vogel meinte:
> Mit PHP kann man auch recht vernünftig debuggen, wenn man bereit ist,
> etwas Geld auszugeben. Wir setzen hier in der Firma das Zend Development
> Environment ein. Damit kann man zeilenweise den Code durchlaufen, kann
> sich Inhalte von Variablen anschauen, etc.
Kostet keinen Cent. Eclipse mit PDT und dem Zend Debugger - problemlos
zu installieren und läuft wunderbar.
Gruß, Gregor
--
http://www.gregorkofler.at ::: Landschafts- und Reisefotografie
http://www.licht-blick.at ::: Forum für Multivisionsvorträge
http://www.image2d.com ::: Bildagentur für den alpinen Raum
Re: PHP debuggen
Hallo, Michael,
Du (ike) meintest am 08.08.07:
>> Klar - aber es gibt Systeme, bei denen das Debuggen einfacher ist
>> ...
> Mit PHP kann man auch recht vernünftig debuggen, wenn man bereit ist,
> etwas Geld auszugeben. Wir setzen hier in der Firma das Zend
> Development Environment ein.
"wenn ich einmal reich wär, ..."
Trotzdem dankeschön!
Viele Gruesse!
Helmut
Re: PHP debuggen
Hallo, Stefan,
Du (sbraumi) meintest am 08.08.07:
>> Ja - und da bin ich ein wenig weitergekommen. Die Funktion "getPref"
>> existiert, und sie wird auch benutzt (Breakpoints werden gezeigt).
>> "Call to undefined function getPref()" sagt also nicht (unbedingt),
>> dass diese Funktion fehlt (oder nicht lesbar ist), sondern dass da
>> ein Problem ist.
> Sag mal mit was hast du eigentlich bisher programmiert?
Hmmm - Algol60, ST6x, 6502, 8085, Z80, x86, Basic (C64, Sharp und
Microsoft), Pascal, Bash-Shell, Makros, ...
> Wenn da steht, dass sie nicht definiert ist, dann ist sie in dem
> Kontext nicht definiert, z.B. weil das Script an den die Funktion
> definiert ist nicht inkludiert ist.
Ich kenne Sprachen, in denen dann nicht behauptet wird, dass die
Funktion nicht definiert sei.
> Check mal dein Apache log, ich wette da findest du Fehlermeldungen
> wie :
> PHP Warning: include() [<a
> href='function.include'>function.include</a>]: Failed opening
Nein - nur "Call to undefined function". Die Wette hast Du verloren.
Viele Gruesse!
Helmut
Re: PHP debuggen
Stefan Braumeister wrote:
> Ulf Kadner schrieb:
>> Der Zenddebugger kann z.B. auch für Remote-Debuging genutzt werden.
>> Kenne keinen anderen der das kann.
>
> Was glaubst du was ich hier mit PHPEclipse und DBG mache:-)
Huh? Remote-Debuging mit DBG? Ist mir neu. Ich kenne DBG zwar, aber
derartiges ist mir neu. Bisher kannte ich bloß dessen Möglichkeiten auf
dem eigenen lokalen Server zu debuggen. Das ich damit auf fernen Servern
was machen kann... OK, Argument akzeptiert.
Oder meinst Du evtl, diese Veriante wo extra Debug-Code ins Script
eingefügt werden muß? Wird dbg dann als Erweiterung in den fernen Server
einkompiliert oder wie geht das bei DBG?
Kannste mal nen kleinen Hinweis geben wo dazu was geschrieben steht?
> Ja aber ich meinte eher wie stabil xdebug mittlerweile ist?
Asso. Hab ich mißverstanden.
MfG, Ulf
Re: PHP debuggen
Stefan Braumeister schrieb:
> Helmut Hullen schrieb:
>> Ja - und da bin ich ein wenig weitergekommen. Die Funktion "getPref"
>> existiert, und sie wird auch benutzt (Breakpoints werden gezeigt).
Diese Aussage passt nicht zu
> Wenn da steht, dass sie nicht definiert ist, dann ist sie in dem Kontext
> nicht definiert, z.B. weil das Script an den die Funktion definiert ist
> nicht inkludiert ist.
und auch nicht zu dem Fehler mit der nicht deklarierten Funktion.
Das alles ist total widersprüchlich und deutet auf das Vorhandensein von
noch ganz anderen Problemen hin. Oder eine fehlerhafte Fehlerbeschreibung.
Gruß,
Habbo
Re: PHP debuggen
Hallo, Jan,
Du (bruening) meintest am 08.08.07:
>>> Ja - und da bin ich ein wenig weitergekommen. Die Funktion
>>> "getPref" existiert, und sie wird auch benutzt (Breakpoints werden
>>> gezeigt).
> Diese Aussage passt nicht zu
>> Wenn da steht, dass sie nicht definiert ist, dann ist sie in dem
>> Kontext nicht definiert, z.B. weil das Script an den die Funktion
>> definiert ist nicht inkludiert ist.
> und auch nicht zu dem Fehler mit der nicht deklarierten Funktion.
Ergänzend: nachdem ich die "php.ini" für den Apache geändert hatte,
wurde im fraglichen Skript der erste Aufruf von "getPref" in Zeile 25
akzeptiert, der nächste Aufruf in Zeile 33 brachte wieder "Call to
undefined function getPref()". Sieht so aus, als ob der Text der
Fehlermeldung nicht so recht passt.
Im Skript wird die Funktion insgesamt etwa 90 mal aufgerufen ...
Viele Gruesse!
Helmut
Re: PHP debuggen
Ulf Kadner schrieb:
> Stefan Braumeister wrote:
>> Ulf Kadner schrieb:
>>> Der Zenddebugger kann z.B. auch für Remote-Debuging genutzt werden.
>>> Kenne keinen anderen der das kann.
>>
>> Was glaubst du was ich hier mit PHPEclipse und DBG mache:-)
>
> Huh? Remote-Debuging mit DBG? Ist mir neu. Ich kenne DBG zwar, aber
> derartiges ist mir neu. Bisher kannte ich bloß dessen Möglichkeiten auf
> dem eigenen lokalen Server zu debuggen. Das ich damit auf fernen Servern
> was machen kann... OK, Argument akzeptiert.
>
> Oder meinst Du evtl, diese Veriante wo extra Debug-Code ins Script
> eingefügt werden muß? Wird dbg dann als Erweiterung in den fernen Server
> einkompiliert oder wie geht das bei DBG?
Ja das DBG Modul muss kompiliert und geladen werden und in der php.ini
konfiguriert werden. Ne Komplettanleitung gibts hier:
http://www.plog4u.org/index.php/PHPEclipse_verwenden_:_Insta llation_:_Installation_des_DBG-Debuggers
Es gibt irgendwo auch noch ne Anleitung mit screenshots, aber den Link
habe ich momentan nicht parat.
>
> Kannste mal nen kleinen Hinweis geben wo dazu was geschrieben steht?
>
>> Ja aber ich meinte eher wie stabil xdebug mittlerweile ist?
>
> Asso. Hab ich mißverstanden.
>
> MfG, Ulf
Re: PHP debuggen
Helmut Hullen schrieb:
> Hallo, Jan,
>
> Du (bruening) meintest am 08.08.07:
>
>>>> Ja - und da bin ich ein wenig weitergekommen. Die Funktion
>>>> "getPref" existiert, und sie wird auch benutzt (Breakpoints werden
>>>> gezeigt).
>
>> Diese Aussage passt nicht zu
>
>>> Wenn da steht, dass sie nicht definiert ist, dann ist sie in dem
>>> Kontext nicht definiert, z.B. weil das Script an den die Funktion
>>> definiert ist nicht inkludiert ist.
>
>> und auch nicht zu dem Fehler mit der nicht deklarierten Funktion.
>
> Ergänzend: nachdem ich die "php.ini" für den Apache geändert hatte,
> wurde im fraglichen Skript der erste Aufruf von "getPref" in Zeile 25
> akzeptiert, der nächste Aufruf in Zeile 33 brachte wieder "Call to
> undefined function getPref()". Sieht so aus, als ob der Text der
> Fehlermeldung nicht so recht passt.
Zeig uns doch mal die betreffenden Zeilen, bzw. was hast du in der
php.ini geändert?
Was steht denn noch so alles im Apache log, nicht dass da irgendwie
der Speicher durch andere dinge korrumpiert wird.
>
> Im Skript wird die Funktion insgesamt etwa 90 mal aufgerufen ...
>
> Viele Gruesse!
> Helmut
>
Re: PHP debuggen
Hallo, Stefan,
Du (sbraumi) meintest am 08.08.07:
>> Ergänzend: nachdem ich die "php.ini" für den Apache geändert hatte,
>> wurde im fraglichen Skript der erste Aufruf von "getPref" in Zeile
>> 25 akzeptiert, der nächste Aufruf in Zeile 33 brachte wieder "Call
>> to undefined function getPref()".
> Zeig uns doch mal die betreffenden Zeilen, bzw. was hast du in der
> php.ini geändert?
Erst mal alte Datei gegen neuere Datei ausgetauscht - die Unterschiede
muss ich noch ergründen.
Und derzeit ist der Server heruntergefahren - ich muss warten.
> Was steht denn noch so alles im Apache log, nicht dass da irgendwie
> der Speicher durch andere dinge korrumpiert wird.
Sonst keine Fehler.
Viele Gruesse!
Helmut
Re: PHP debuggen
Hallo, Michael,
Du (ike) meintest am 08.08.07:
>>> Wenn du schon so lange programmierst (ich mach das erst 30 Jahre
>>> ;-) ), solltest du "Debugging zu Fuß" kennen. In PHP helfen dir da
>>> echo, print_r(), var_dump(), debug_backtrace() und
>>> debug_print_backtrace().
>>
>> Klar - aber es gibt Systeme, bei denen das Debuggen einfacher ist
>> ...
> Mit PHP kann man auch recht vernünftig debuggen, wenn man bereit ist,
> etwas Geld auszugeben.
Ich habe mir jetzt mal "DBG" geholt - könnte sein, dass ich mich da
einarbeite. Die Komandozeilen-Oberfläche ist etwas "gewöhnungsbedürftig;
erinnert mich an Turbopascal.
Viele Gruesse!
Helmut
Re: PHP debuggen
Hallo, Stefan,
Du (sbraumi) meintest am 07.08.07:
>>>> PHP Fatal error: Call to undefined function getPref() in /path/to/
>>>> squirrelmail/include/load_prefs.php on line 25
>>>>
>>>> Auslöser ist (in load_prefs.php) der Aufruf
>>>>
>>>> $custom_css = getPref($data_dir, $username, "custom_css', 'none'
>>>> );
>>> Ja, gut, aber wo ist das Problem? getPref ist eben nicht
>>> deklariert.
>>
>>> Was würdest du davon halten, bei den Servern, bei denen es
>>> funktioniert, mal zu gucken, wo getPref() deklariert wurde?
>> Danke - ich habe bei der Suche nach "getPref.*=" 2 Treffer gefunden,
>> beide mit dem Aufbau "function getPref(...)". Bei PHP bin ich noch
> Ich denke, dass du nicht nur bei PHP blutiger Anfänger bist, sonst
> würdest du hier nicht nach einem Debugger fragen.
>> blutiger Anfänger: ist das die einzige Form, die "getPref"
>> deklariert?
> Nein getPref könnte auch in einer selbsterstellten Extension
> enthalten sein. Aber wenn du schon fucntion getPref gefunden hast,
> dann ist ja schon alles klar, musst nur noch nachsehen, wo auf dem
> funktionierenden Servern das File das function getPref enthält
> includiert wird.
Ich habe jetzt
chown -R wwwrun:www /Pfad/zu/squirrelmail
^^^^^^^^^ Apache
laufen lassen, und alles funktioniert wie gewünscht.
Irgendein Unter-Aufruf scheint sich die falschen Eignerdaten geholt zu
haben (die Startdateien sind ok).
Viele Gruesse!
Helmut
Re: PHP debuggen
Helmut Hullen schrieb:
> Hallo, Stefan,
>
> Du (sbraumi) meintest am 07.08.07:
>
>>>>> PHP Fatal error: Call to undefined function getPref() in /path/to/
>>>>> squirrelmail/include/load_prefs.php on line 25
>>>>>
>>>>> Auslöser ist (in load_prefs.php) der Aufruf
>>>>>
>>>>> $custom_css = getPref($data_dir, $username, "custom_css', 'none'
>>>>> );
>
>>>> Ja, gut, aber wo ist das Problem? getPref ist eben nicht
>>>> deklariert.
>>>> Was würdest du davon halten, bei den Servern, bei denen es
>>>> funktioniert, mal zu gucken, wo getPref() deklariert wurde?
>
>>> Danke - ich habe bei der Suche nach "getPref.*=" 2 Treffer gefunden,
>>> beide mit dem Aufbau "function getPref(...)". Bei PHP bin ich noch
>
>> Ich denke, dass du nicht nur bei PHP blutiger Anfänger bist, sonst
>> würdest du hier nicht nach einem Debugger fragen.
>
>>> blutiger Anfänger: ist das die einzige Form, die "getPref"
>>> deklariert?
>
>> Nein getPref könnte auch in einer selbsterstellten Extension
>> enthalten sein. Aber wenn du schon fucntion getPref gefunden hast,
>> dann ist ja schon alles klar, musst nur noch nachsehen, wo auf dem
>> funktionierenden Servern das File das function getPref enthält
>> includiert wird.
>
> Ich habe jetzt
>
> chown -R wwwrun:www /Pfad/zu/squirrelmail
> ^^^^^^^^^ Apache
>
> laufen lassen, und alles funktioniert wie gewünscht.
> Irgendein Unter-Aufruf scheint sich die falschen Eignerdaten geholt zu
> haben (die Startdateien sind ok).
Ja ich denke squirrelmail benötigt Schreibrechte um dort Mails
Einstellungen etc. abzulegen.
Aber dass im Apache log nichts von wegen kann include etc nicht
einbinden od fehlende rechte stand, kann ich nicht glauben.
Ich vermute fast, dass du im falschen File nachgesehen hast, apache hat
nämlich mehrere logfiles, Fehler dieser Art sollten in:
error_log
bzw wenn du via https zugreifst in:
ssl_error_log
und nicht access_log etc. Ansonsten könnte es nur sein, dass hier apache
und php falsch konfiguriert sind und nicht mehr ordentlich loggen.
stehen
>
> Viele Gruesse!
> Helmut
>
Re: PHP debuggen
Hallo, Stefan,
Du (sbraumi) meintest am 09.08.07:
>> Ich habe jetzt
>>
>> chown -R wwwrun:www /Pfad/zu/squirrelmail
>> ^^^^^^^^^ Apache
>>
>> laufen lassen, und alles funktioniert wie gewünscht.
>> Irgendein Unter-Aufruf scheint sich die falschen Eignerdaten geholt
>> zu haben (die Startdateien sind ok).
> Ja ich denke squirrelmail benötigt Schreibrechte um dort Mails
> Einstellungen etc. abzulegen.
Nein - falsch gedacht. Im Betrieb könnte ich alle Dateien im
"squirrelmail"-Verzeichnis auf "read only" setzen, ohne Probleme. Die
Verzeichnisse, in denen "squirrelmail" schreibt, liegen ganz woanders,
> Aber dass im Apache log nichts von wegen kann include etc nicht
> einbinden od fehlende rechte stand, kann ich nicht glauben.
Macht nichts - ist trotzdem so.
> Ich vermute fast, dass du im falschen File nachgesehen hast, apache
> hat nämlich mehrere logfiles, Fehler dieser Art sollten in:
> error_log
> bzw wenn du via https zugreifst in:
> ssl_error_log
> und nicht access_log etc.
Ich weiss - seit einigen Jahren.
> Ansonsten könnte es nur sein, dass hier
> apache und php falsch konfiguriert sind und nicht mehr ordentlich
> loggen.
???
Wenn ich Owner und Group ändere, dann korrigiere ich demnach diese
vermutete Fehlkonfiguration? Kann ich mir nicht so recht vorstellen.
Viele Gruesse!
Helmut
Re: PHP debuggen
Helmut Hullen schrieb:
> Hallo, Stefan,
>
> Du (sbraumi) meintest am 09.08.07:
>
>>> Ich habe jetzt
>>>
>>> chown -R wwwrun:www /Pfad/zu/squirrelmail
>>> ^^^^^^^^^ Apache
>>>
>>> laufen lassen, und alles funktioniert wie gewünscht.
>>> Irgendein Unter-Aufruf scheint sich die falschen Eignerdaten geholt
>>> zu haben (die Startdateien sind ok).
>
>> Ja ich denke squirrelmail benötigt Schreibrechte um dort Mails
>> Einstellungen etc. abzulegen.
>
> Nein - falsch gedacht. Im Betrieb könnte ich alle Dateien im
> "squirrelmail"-Verzeichnis auf "read only" setzen, ohne Probleme. Die
> Verzeichnisse, in denen "squirrelmail" schreibt, liegen ganz woanders,
Ich kenne jetzt squirellmail nicht genau, aber wenn es keine
Schreibrechte benötigt in dem Verzeichnis, und das Setzen des owners
Besserung gebracht hat, bleibt nur der logische Schluss, dass in dem
Verzeichnis Dateien lagen für die Apache keine Leserechte hatte.
Was wiederum dazu führt, dass im Errorlog was drin steht:-)
Es sei denn Apache LogLevel steht auf was unsinniges wie crit,
respektive phps error_reporting ist eingestellt nur noch in ganz
schwerwiegenden fällen zu loggen.
>
>> Aber dass im Apache log nichts von wegen kann include etc nicht
>> einbinden od fehlende rechte stand, kann ich nicht glauben.
>
> Macht nichts - ist trotzdem so.
Ja dann solltest du dir jemanden holen, der sich mit Apache auskennt.
Sonst ist das nur rumgemurkse in den Conf Files.
Ich sehe das hier jeden Tag, dass Entwickler in den conf files
rummurksen und dann ihre Testeinträge nicht mehr entfernen.
>
>> Ansonsten könnte es nur sein, dass hier
>> apache und php falsch konfiguriert sind und nicht mehr ordentlich
>> loggen.
>
> ???
> Wenn ich Owner und Group ändere, dann korrigiere ich demnach diese
> vermutete Fehlkonfiguration? Kann ich mir nicht so recht vorstellen.
Helmut, ich weis nicht was du für Fehler hast aber das was du uns
erzählst kann gar nicht alles so stimmen:-)
Greppe doch mal nach
LogLevel in deinen http conf dir und zeige uns was in der php.ini unter
error_reporting drin steht.
Gruß Stefan
>
> Viele Gruesse!
> Helmut
>
Re: PHP debuggen
Hallo, Stefan,
Du (sbraumi) meintest am 09.08.07:
>>> Ja ich denke squirrelmail benötigt Schreibrechte um dort Mails
>>> Einstellungen etc. abzulegen.
>> Nein - falsch gedacht. Im Betrieb könnte ich alle Dateien im
>> "squirrelmail"-Verzeichnis auf "read only" setzen, ohne Probleme.
>> Die Verzeichnisse, in denen "squirrelmail" schreibt, liegen ganz
>> woanders,
> Ich kenne jetzt squirellmail nicht genau, aber wenn es keine
> Schreibrechte benötigt in dem Verzeichnis, und das Setzen des owners
> Besserung gebracht hat, bleibt nur der logische Schluss, dass in dem
> Verzeichnis Dateien lagen für die Apache keine Leserechte hatte.
> Was wiederum dazu führt, dass im Errorlog was drin steht:-)
Und was dort stand, hatte ich bereits mitgeteilt. Einzig "Call to
undefined function".
>>> Aber dass im Apache log nichts von wegen kann include etc nicht
>>> einbinden od fehlende rechte stand, kann ich nicht glauben.
>>
>> Macht nichts - ist trotzdem so.
> Ja dann solltest du dir jemanden holen, der sich mit Apache auskennt.
Wobei soll er mir denn helfen? Ich habe in der Apache-Konfiguration in
den letzten 2 Monaten nichts geändert - der o.g. Fehler tauchte nur im
Zusammenhang mit einem frisch installierten "squirrelmail" auf und
verschwand, nachdem ich Eigner und Gruppe noch mal drübergebügelt hatte.
Wo und wie ist (nach Deinem Kenntnisstand) die Apache-Konfiguration
speziell beteiligt?
>> ???
>> Wenn ich Owner und Group ändere, dann korrigiere ich demnach diese
>> vermutete Fehlkonfiguration? Kann ich mir nicht so recht vorstellen.
> Helmut, ich weis nicht was du für Fehler hast aber das was du uns
> erzählst kann gar nicht alles so stimmen:-)
Aha.
> Greppe doch mal nach
> LogLevel in deinen http conf dir und zeige uns was in der php.ini
> unter error_reporting drin steht.
Die interessanten Einträge solltest Du auch direkt studieren können:
http://hullen.mydyn.de/info.php
Du verfolgst eine Theorie, die von der Praxis nicht so recht gestützt
wird.
Viele Gruesse!
Helmut
Re: PHP debuggen
das was du uns
>> erzählst kann gar nicht alles so stimmen:-)
>
> Aha.
>
>> Greppe doch mal nach
>
>> LogLevel in deinen http conf dir und zeige uns was in der php.ini
>> unter error_reporting drin steht.
>
> Die interessanten Einträge solltest Du auch direkt studieren können:
>
> http://hullen.mydyn.de/info.php
>
> Du verfolgst eine Theorie, die von der Praxis nicht so recht gestützt
> wird.
Sülz nicht rum du lieferst uns nicht alle Informationen.
Und wo steht da was von LogLevel des Apache?
Wenn du in http.conf LogLevel z.B. auf crit stellst, siehst du im
Apachelog keine PHP Warnings mehr zu denen z.B. ein
PHP Warning: main(): Failed opening '...' for inclusion
(include_path='.:/usr/share/pear') in...
nicht mehr.
Dein phpinfo out zeigt nur, dass php E_ALL logged und error_log Meldung
in ein extra File geschoben werden.
>
> Viele Gruesse!
> Helmut
>
Re: PHP debuggen
Hallo, Stefan,
Du (sbraumi) meintest am 09.08.07:
>> Du verfolgst eine Theorie, die von der Praxis nicht so recht
>> gestützt wird.
> Sülz nicht rum du lieferst uns nicht alle Informationen.
Purer Unfug.
Viele Gruesse!
Helmut
Re: PHP debuggen
Helmut Hullen schrieb:
> Hallo, Stefan,
>
> Du (sbraumi) meintest am 09.08.07:
>
>>> Du verfolgst eine Theorie, die von der Praxis nicht so recht
>>> gestützt wird.
>
>> Sülz nicht rum du lieferst uns nicht alle Informationen.
>
> Purer Unfug.
>
> Viele Gruesse!
> Helmut
>
Also hatte ich recht und dein LogLevel war falsch eingestellt:-)
Schämst du dich jetzt es zuzugeben?
Gruß Richard
Re: PHP debuggen
Hallo, Stefan,
Du (sbraumi) meintest am 09.08.07:
>>>> Du verfolgst eine Theorie, die von der Praxis nicht so recht
>>>> gestützt wird.
>>> Sülz nicht rum du lieferst uns nicht alle Informationen.
>> Purer Unfug.
> Also hatte ich recht und dein LogLevel war falsch eingestellt:-)
Nein, nein.
> Schämst du dich jetzt es zuzugeben?
Da ich nichts dergleichen "zuzugeben" hätte, brauche ich auch nicht
emotional zu reagieren.
Du stocherst im Nebel. Erfolglos. Gibt Dir das was?
Viele Gruesse!
Helmut
Re: PHP debuggen
Helmut Hullen schrieb:
> Hallo, Stefan,
>
> Du (sbraumi) meintest am 09.08.07:
>
>>>>> Du verfolgst eine Theorie, die von der Praxis nicht so recht
>>>>> gestützt wird.
>
>>>> Sülz nicht rum du lieferst uns nicht alle Informationen.
>
>>> Purer Unfug.
>
>> Also hatte ich recht und dein LogLevel war falsch eingestellt:-)
>
> Nein, nein.
Dann hättest du ja zu Anfang meiner Frage einfach deine LogLevel
Einstellung posten können. Aber entweder hast du die config nicht
gefunden oder du hattest einen Grund ihn nicht zu posten, gelle.
>
>> Schämst du dich jetzt es zuzugeben?
>
> Da ich nichts dergleichen "zuzugeben" hätte, brauche ich auch nicht
> emotional zu reagieren.
> Du stocherst im Nebel. Erfolglos. Gibt Dir das was?
Selbst wenn ich stochern würde, dann könntest du das mit deinem
bescheidenen Wissen überhaupt nicht beurteilen:-)
Du hast keine Ahnung von PHP und das weist du und offensichtlich auch
keine von Apache und das sagt dir jemand, der seit knapp 10 Jahren
Webserver administriert.
Gruß Stefan
>
> Viele Gruesse!
> Helmut
>
Re: PHP debuggen
Hallo, Stefan,
Du (sbraumi) meintest am 09.08.07:
>>> Also hatte ich recht und dein LogLevel war falsch eingestellt:-)
>>
>> Nein, nein.
> Dann hättest du ja zu Anfang meiner Frage einfach deine LogLevel
> Einstellung posten können.
Der ist sehr wahrscheinlich irrelevant - zur Lösung des PHP-Problems
trägt er nicht bei.
> Aber entweder hast du die config nicht
> gefunden oder du hattest einen Grund ihn nicht zu posten, gelle.
Du argumentierst kindisch. Ich kann mich darauf einstellen - aber ich
sehe keinen grossen Nutzen darin.
> Selbst wenn ich stochern würde, dann könntest du das mit deinem
> bescheidenen Wissen überhaupt nicht beurteilen:-)
"Nur nicht gleich sachlich werden, es geht ja auch persönlich!" (Anton
Kuh)
> Du hast keine Ahnung von PHP und das weist du und offensichtlich auch
> keine von Apache und das sagt dir jemand, der seit knapp 10 Jahren
> Webserver administriert.
Aha.
Und was folgt daraus? Muss ich jetzt "Sie" zu Dir sagen? Du
argumentierst kindisch.
Viele Gruesse!
Helmut
Re: PHP debuggen
Helmut Hullen schrieb:
> Hallo, Stefan,
>
> Du (sbraumi) meintest am 09.08.07:
>
>>>> Also hatte ich recht und dein LogLevel war falsch eingestellt:-)
>>> Nein, nein.
>
>> Dann hättest du ja zu Anfang meiner Frage einfach deine LogLevel
>> Einstellung posten können.
>
> Der ist sehr wahrscheinlich irrelevant - zur Lösung des PHP-Problems
> trägt er nicht bei.
Kannst du doch gar nicht beurteilen.
Wie ich schon sagte wird z.B. bei LogLevel crit kein PHP Warning mehr im
Apachelog erscheinen, hier muss mindestens LogLevel warn stehen.
Wenn das für dich irrelevant ist dann darfst du gerne weiter frickeln.
Logmeldung sind dazu da um Fehler zu finden, wenn Logmeldungen für dich
nicht zur Lösung von Problemen beitragen ist das dein Bier.
Da du absolut lernresistent bist(das haben Lehrer so an sich), gebe ich auf.
Gruß Stefan
P.S. Du kannst meinetwegen fragen wen du willst, eine undefined function
wirst du bei entsprechendem Logging immer im Log finden, alles andere
wäre mystisch. Übrigends wenn du schon mit einem Debugger Fehler
ausfindig machen willst, solltest du auch debug informationen in dein
PHP einkompilieren, siehe dein phpinfo(): --disable-debug
>
>> Aber entweder hast du die config nicht
>> gefunden oder du hattest einen Grund ihn nicht zu posten, gelle.
>
>
> Aha.
> Und was folgt daraus? Muss ich jetzt "Sie" zu Dir sagen? Du
> argumentierst kindisch.
>
> Viele Gruesse!
> Helmut
>
Re: PHP debuggen
Hallo, Stefan,
Du (sbraumi) meintest am 09.08.07:
>>>>> Also hatte ich recht und dein LogLevel war falsch eingestellt:-)
>>>> Nein, nein.
>>> Einstellung posten können.
>> Der ist sehr wahrscheinlich irrelevant - zur Lösung des PHP-Problems
>> trägt er nicht bei.
> Kannst du doch gar nicht beurteilen.
> Wie ich schon sagte wird z.B. bei LogLevel crit kein PHP Warning mehr
> im Apachelog erscheinen, hier muss mindestens LogLevel warn stehen.
"Call to undefined function" ist ein "fatal error", und der wurde
angezeigt (wie Du weisst).
> Logmeldung sind dazu da um Fehler zu finden, wenn Logmeldungen für
> dich nicht zur Lösung von Problemen beitragen ist das dein Bier.
Du übst Dich anscheinend in freien Assoziationen - was Du mir hier
unterstellst, habe ich nie behauptet.
> P.S. Du kannst meinetwegen fragen wen du willst, eine undefined
> function wirst du bei entsprechendem Logging immer im Log finden,
Da habe ich sie ja auch gefunden.
Du verhedderst Du bei Deinem Versuch, mir Fehler unterzujubeln.
Viele Gruesse!
Helmut