Problem mit erstem eigenen Code
Problem mit erstem eigenen Code
am 29.06.2006 21:48:15 von Torsten Mohr
Hallo,
ich verwende mod_php5 in Apache 2.2 und habe darin basierend auf einem
Beispiel folgenden Code geschrieben:
# mfunc.php:
function myprintdate ($arg)
{
echo "Beispielfunktion $arg\n";
}
#index.php:
Example #1
require_once 'mfunc.php'
?>
myprintdate('abc')
?>
Wenn ich die "index.php" im Browser (firefox) anzeigen will bekomme ich:
function myprintdate ($arg) { echo "Beispielfunktion $arg\n"; }
Ein Anzeigen des Quelltexts der Seite liefert:
Example #1
function myprintdate ($arg)
{
echo "Beispielfunktion $arg\n";
}
Das "require_once" hat die Funktion anscheinend nur eingefügt, ein Aufruf
hat anscheinend nicht stattgefunden.
Das abschliessende fehlt auch.
Das wirft für mich jetzt folgende Fragen auf:
- Wie debugge ich sowas (wird nicht der letzte Fehler sein)?
- Wo liegt das Problem in diesem Fall?
- Kann ich das Ganze auf der Kommandozeile testen? Da ist ja PHP
mit HTML gemischt, geht das? Wenn ich es einfach mal teste
bekomme ich:
schleim:/srv/www/vhosts/qwe.de/htdocs # php5 index.php
Example #1
function myprintdate ($arg)
{
echo "Beispielfunktion $arg\n";
}
PHP Fatal error: Call to undefined function myprintdate()
in /srv/www/vhosts/qwe.de/htdocs/index.php on line 12
Danke für Tips,
Torsten.
Re: Problem mit erstem eigenen Code
am 29.06.2006 21:49:34 von Norbert Melzer
Torsten Mohr schrieb:
> Das "require_once" hat die Funktion anscheinend nur eingefügt, ein=
Aufruf
> hat anscheinend nicht stattgefunden.
In includeten und requireden Files muss erneut der PHP Modus mit
eingeleitet werden, ansonsten wird wirklich nur der Text eingefügt
> Das abschliessende fehlt auch.
Ja weil myprintdate() nicht bekannt ist und das Script deswegen an der
Stelle abgebrochen wird inklusive Fehlermeldung
> Das wirft für mich jetzt folgende Fragen auf:
>=20
> - Wie debugge ich sowas (wird nicht der letzte Fehler sein)?
Füge Debug-Echos ein, ist aber ein allgemeiner Tipp, damit weiÃ=
t Du
ungefähr wo das Script war, bevor es nicht mehr das Tat was es sollt=
e
> - Wo liegt das Problem in diesem Fall?
s.o.
> - Kann ich das Ganze auf der Kommandozeile testen? Da ist ja PHP
> mit HTML gemischt, geht das? Wenn ich es einfach mal teste
> bekomme ich:
Ja kannst Du, hast ja auch die
> [Ausgabe]
bekommen...
HTH
Norbert
Re: Problem mit erstem eigenen Code
am 29.06.2006 21:55:12 von Norbert Melzer
Norbert Melzer schrieb:
> Torsten Mohr schrieb:
>> Das wirft für mich jetzt folgende Fragen auf:
>>
>> - Wie debugge ich sowas (wird nicht der letzte Fehler sein)?
>=20
> Füge Debug-Echos ein, ist aber ein allgemeiner Tipp, damit weiÃ=
t Du
> ungefähr wo das Script war, bevor es nicht mehr das Tat was es sol=
lte
Nachtrag:
Setze auf Deinem Testserver das Error Reporting auf E_ALL
MfG
Norbert
Re: Problem mit erstem eigenen Code
am 29.06.2006 22:12:51 von Torsten Mohr
Super,
danke für die Tips.
GrüÃe,
Torsten.
Re: Problem mit erstem eigenen Code
am 29.06.2006 22:26:36 von Johannes Vogel
Hi Torsten
Torsten Mohr wrote:
> Das wirft für mich jetzt folgende Fragen auf:
> - Wie debugge ich sowas (wird nicht der letzte Fehler sein)?
print_r(get_defined_vars());
Ist so ein netter Einzeiler, der sehr hilfreich sein kann.
Nicht im vorliegenden Fall, aber immer dann, wenn die Variablen nicht
das drin haben, was du eigentlich erwartest. :-)
Für HTML-Ausgabe, einfach in ein
einpacken.
Oder wenn's mal wer anders nicht sehen sollte, was du grad am
debugen bist. :-)
HTH, Johannes