Harm: undefinierte Variable

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?

  1. 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

    1. 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

      1. 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