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