undefinierte Variable
Harm
- php
0 Sönke Tesch0 Harm
Hallo zusammen,
ich bin nach einer Systemneuinstallation von meiner selbstgestrickten WAMPP-Umgebung auf die Komplettlösung von Kay Vogelsang umgestiegen. Ich war zunächst begeistert wie einfach und doch komplett dieses Paket geschnürt wurde. Ich verwende die Version 13a, die die php-Version 4.2.1 beinhaltet. 'register_globals' habe ich auf 'on' gesetzt, da ich zunächst meine alten Scripts ohne die Anpassungen mit '$GLOBALS["xxx"]' bearbeiten wollte. Trotz 'register_globals=On' bekomme ich unzählige Fehlermeldungen, die mir undefinierte Variablen melden. Meine Scripte laufen auf dem Webserver meines ISP fehlerfrei unter php4.2.3 ('register_globals=On'). Kann die Fehlermeldung 'undef variable' noch andere Ursachen haben?
Trotz 'register_globals=On' bekomme ich unzählige Fehlermeldungen, die mir undefinierte Variablen melden.
Das sind lediglich Warnungen, die kommen, wenn man Variablen ausliest, ohne vorher etwas reingeschrieben zu haben. Ein sehr weit verbreitetes Problem leicht unsauber geschriebener Skripte, weil man in PHP Variablen nicht vorher deklarieren muß wie in anderen Sprachen. Die meisten Leute greifen dann einfach auf die Variable zu, zum Beispiel:
if ($hallo) tue_irgendwas();
Hast Du nicht vorher irgendwo eine Zeile
$hallo=""; // oder ähnliches
stehen oder wird $hallo nicht durch PHP selbst erzeut (z.B. durch ein URL-Argument), wird PHP Dir beim if eine Warnung ausgeben, daß $hallo (noch) nicht existiert - was letztenendes auch logisch ist, wo nix drin ist, kann man auch nix rausholen.
Du kannst Dir entweder die Mühe machen und Deine Skripte entsprechend aufräumen (isset() wirst Du sicher hier und da benötigen) oder aber kurzerhand den Warnungen den Hals umdrehen (weniger schön, aber schneller). Den Namen der Einstellung habe ich im Moment nicht im Kopf, schau einfach mal in Deine php.ini, da ist irgendwo eine Zeile, in der Du einstellen kannst, welche Warnungen und Fehlermeldungen ausgegeben werden sollen.
Gruß,
soenk.e
Trotz 'register_globals=On' bekomme ich unzählige Fehlermeldungen, die mir undefinierte Variablen melden.
Das sind lediglich Warnungen, die kommen, wenn man Variablen ausliest, ohne vorher etwas reingeschrieben zu haben. Ein sehr weit verbreitetes Problem leicht unsauber geschriebener Skripte, weil man in PHP Variablen nicht vorher deklarieren muß wie in anderen Sprachen. Die meisten Leute greifen dann einfach auf die Variable zu, zum Beispiel:
if ($hallo) tue_irgendwas();
Hast Du nicht vorher irgendwo eine Zeile
$hallo=""; // oder ähnliches
stehen oder wird $hallo nicht durch PHP selbst erzeut (z.B. durch ein URL-Argument), wird PHP Dir beim if eine Warnung ausgeben, daß $hallo (noch) nicht existiert - was letztenendes auch logisch ist, wo nix drin ist, kann man auch nix rausholen.
Du kannst Dir entweder die Mühe machen und Deine Skripte entsprechend aufräumen (isset() wirst Du sicher hier und da benötigen) oder aber kurzerhand den Warnungen den Hals umdrehen (weniger schön, aber schneller). Den Namen der Einstellung habe ich im Moment nicht im Kopf, schau einfach mal in Deine php.ini, da ist irgendwo eine Zeile, in der Du einstellen kannst, welche Warnungen und Fehlermeldungen ausgegeben werden sollen.
Gruß,
soenk.e
Hallo Sönke,
danke für den Tipp. 'display_errors' auf Off und die Sache läuft.
Grüße eines unsauberen PHP Coders
Hallo Harm,
danke für den Tipp. 'display_errors' auf Off und die Sache läuft.
Was tust Du da? Ein
error_reporting = E_ALL & ~E_NOTICE
tuts auch! Lass' bitte display_errors auf On! Sonst erscheinen _gar keine_ Fehlermeldungen mehr!
Grüße,
Christian