Wesley: unerwünschte notice nachrichten auf eigenem php server

hallo
ich habe mir ja nun wieder einen apache server +php eingerichtet auf meinem hausrechner um meine projekte besser zu bearbeiten, nun lag aber seit meinem letzen mal als ich apache und php nutzte 6 monate zurück, und in den neueren versionen kommt nun folgendes:

Notice: Use of undefined constant show - assumed 'show' in D:\htdocs\index.php on line 102

das kahm vorher nie, ich seh auhc dass es kein fehler ist, aber es nervt trotzdem, denn obrige"undefinierte constante 'show', habe ich hier ganz klar definiert:
zeile 102
$show = $_GET[show]

das ist doch eindeutig richtig, ich hole die variable show aus der url raus, was ist daran falsch dass php sich mit so einem notice meldet?
ich bekomme solche notice meldungen auch bei meinem eigenen Gbook:

Notice: Use of undefined constant name - assumed 'name' in D:\htdocs\gb.php on line 3

Notice: Use of undefined constant eintrag - assumed 'eintrag' in D:\htdocs\gb.php on line 4

Notice: Use of undefined constant email - assumed 'email' in D:\htdocs\gb.php on line 5

Notice: Use of undefined constant icq - assumed 'icq' in D:\htdocs\gb.php on line 6

Notice: Use of undefined constant clan - assumed 'clan' in D:\htdocs\gb.php on line 7

Notice: Undefined offset: 40 in D:\htdocs\gb.php on line 191

Notice: Undefined offset: 41 in D:\htdocs\gb.php on line 188

das einzig gute:
es sind keine fehlermeldungen, also läuft alles so wie ich es will, wenn ich mein projekt später auf einen anderen server hochlade, kommen dann immernoch die notices?
wenn ja, wie kann ich meinen code so optimieren dass das nicht passiert?

  1. hi wesley,

    ich habe mir ja nun wieder einen apache server

    welche Version?

    +php

    welche Version?

    eingerichtet auf meinem hausrechner

    welches Betriebssystem?

    Diese drei Angaben sind bei Nachfragen, wie du sie stellst, außerordentlich wichtig.

    obrige"undefinierte constante 'show', habe ich hier ganz klar definiert:
    zeile 102
    $show = $_GET[show]
    das ist doch eindeutig richtig

    Nein, das ist es eindeutig nicht. Richtig wäre wahrscheinlich
     $show = $_GET['show']

    Wir hatten dazu vor Kurzem einen entsprechenden Thread, den ich im Moment leider nicht im Archiv finden kann.

    ich bekomme solche notice meldungen auch bei meinem eigenen Gbook:

    Nett. Und was steht in deinem Gbook nun in Zeile 3, 4, 5, 6, 7, 40 und 41 drin?

    das einzig gute:
    es sind keine fehlermeldungen

    Doch, das sind "echte" Fehlermeldungen.

    Grüße aus Berlin

    Christoph S.

    1. Hi !

      Das sind Fehlermeldungen das du deine Variablen vor der Benutzung nicht deklariert hast. Anders als in anderen Sprachen ist das bei PHP ohne Probleme möglich.

      Schau einfach mal in deiner php.ini unter error_reporting...müsste bei dir auf E_ALL stehen...dabei steht eine Beschreibung wie du diesen Wert einstellen und verfeinern kannst.

      1. hallo Christoph,

        Das sind Fehlermeldungen das du deine Variablen vor der Benutzung nicht deklariert hast.

        Das _kann_ es auch sein. Eben deshalb habe ich es "echte Fehler" genannt.

        Schau einfach mal in deiner php.ini

        Meine php.ini hat damit nichts zu tun. Ich bekomme solche "notices" auch nicht, aber wesley bekommt sie.

        Wenns geht, hänge solche Antworten bitte an das posting, auf das sie sich auch beziehen.

        Grüße aus Berlin

        Christoph S.

      2. Hallo,

        Hi !

        Das sind Fehlermeldungen das du deine Variablen vor der Benutzung nicht deklariert hast. Anders als in anderen Sprachen ist das bei PHP ohne Probleme möglich.

        Schau einfach mal in deiner php.ini unter error_reporting...müsste bei dir auf E_ALL stehen...dabei steht eine Beschreibung wie du diesen Wert einstellen und verfeinern kannst.

        Ja klar, sicher doch, ...

        dito:
        Klar im Vorteil ist, wer eine Meldung mal _liest_ ...

        Viele Grüße,
        Horst

        1. morgens,

          Klar im Vorteil ist, wer eine Meldung mal _liest_ ...

          Und wer auch noch weiß, mit welcher Software er arbeitet. Zwischen Apache 1.3.x und Apache 2.0.x gibt es erhebliche Unterschiede, gerade auch, was die Art der Fehlermeldungen betrifft, und zwischen PHP 3.x.x und PHP 4.x.x gibt es noch erheblichere Unterschiede, gerade was den Umgang mit bestimmten Variablen und Konstanten angeht.

          Daß ich "notices" der angegebenen Art für echte Fehlermeldungen halte, habe ich bereits gesagt.

          Grüße aus Berlin

          Christoph S.

          1. Moin!

            Und wer auch noch weiß, mit welcher Software er arbeitet. Zwischen Apache 1.3.x und Apache 2.0.x gibt es erhebliche Unterschiede, gerade auch, was die Art der Fehlermeldungen betrifft

            Die Fehlermeldungen des Apache landen aber nicht in der Browserausgabe, sondern im Logfile. Außerdem ist diese Fehlermeldung eindeutig PHP zuzuordnen, der verwendete Apache oder sonstige Server also mitnichten relevant.

            und zwischen PHP 3.x.x und PHP 4.x.x gibt es noch erheblichere Unterschiede, gerade was den Umgang mit bestimmten Variablen und Konstanten angeht.

            Die angegebene Fehlermeldung ist so typisch und häufig, dass informierte Kreise sofort wissen, was gemeint ist. Solch eine Notice-Frage zu nicht vorhandenen Konstanten sollte also nicht ein vom Thema wegführendes Nachfragen nach irgendwelchen Versionsnummern auslösen, sondern direkt folgenden Link setzen lassen:

            http://www.php.net/manual/en/language.types.array.php#language.types.array.foo-bar

            Daß ich "notices" der angegebenen Art für echte Fehlermeldungen halte, habe ich bereits gesagt.

            Es sind Meldungen, die auf unsaubere Programmierung hinweisen, welche im Moment noch zu keinem Problem führt und von PHP intern auch korrigiert wird, aber in der Zukunft durchaus problematisch werden könnte.

            Gerade für die Entwicklung von Skripten und für die Fehlersuche sollte man das Anzeigen von Notices einschalten. Dies geschieht entweder über die globale Option error_reporting in der php.ini (ja, die ist tatsächlich zuständig, Christoph!), oder individuell über die Funktion error_reporting() in jedem Skript.

            Siehe zum individuellen Einschalten die bei obigem Link angegebenen Beispiele, und zum globalen Einstellen hier: http://www.php.net/manual/en/ref.errorfunc.php

            - Sven Rautenberg

            --
            "Beim Stuff für's Web gibts kein Material, was sonst das Zeugs ist, aus dem die Sachen sind."
            (fastix®, 13. Oktober 2003, 02:26 Uhr)
            1. hallo Sven,

              Die Fehlermeldungen des Apache landen aber nicht in der Browserausgabe, sondern im Logfile.

              Im logfile landen sie immer, und ob sie auch im Browser angezeigt werden sollen, kann man sich zusätzlich einstellen.

              Außerdem ist diese Fehlermeldung eindeutig PHP zuzuordnen, der verwendete Apache oder sonstige Server also mitnichten relevant.

              Da würde ich gerne wiedersprechen. Solche "Notizen" stehen bei mir durchaus im Apache-error.log, und das wird vom Server gestellt. Selbstverständlich ist der "Auslöser" in diesem Fall PHP.

              Gerade für die Entwicklung von Skripten und für die Fehlersuche sollte man das Anzeigen von Notices einschalten. Dies geschieht entweder über die globale Option error_reporting in der php.ini (ja, die ist tatsächlich zuständig, Christoph!), oder individuell über die Funktion error_reporting() in jedem Skript.

              Eines davon muß ja bereits geschehen sein, wenn die Meldung erscheint.

              Grüße aus Berlin

              Christoph S.

  2. Hallo,

    Notice: Use of undefined constant show - assumed 'show' in D:\htdocs\index.php on line 102

    das kahm vorher nie, ich seh auhc dass es kein fehler ist, aber es nervt trotzdem, denn obrige"undefinierte constante 'show', habe ich hier ganz klar definiert:
    zeile 102
    $show = $_GET[show]

    Klar im Vorteil ist, wer eine Meldung mal _liest_ wenn sie erscheint.

    (Und wenn man den Unterschied zwischen Konstanten und Variablen kennt ist auch nicht schlecht, ;-))

    Also,

    1. ist mein Englisch nun wirklich nicht besonders gut, und
    2. finde ich das echt super nett von den Entwicklern von PHP das Sie sich schon beim programieren der Sprache Gedanken darüber gemacht haben was der Wesley (oder jemand anderes) da so flappsig als richtige Syntax ansehen mag, *g*.

    Notice: Use of undefined constant show - assumed 'show' in D:\htdocs\index.php on line 102

    Es wird eine nicht definierte Konstante mit dem Namen show bemängeld,
    aber (im Kontext mit der Globalen $_GET) wird schon vermutet oder angenommen das 'show' gemeint ist.  (english assume = annehmen, voraussetzen, ...)

    Viele Grüße,
    Horst

  3. Moin!

    zeile 102
    $show = $_GET[show]

    Vielleicht hilft ja:
    $show=$_GET['show'];

    MFFG (Mit freundlich- friedfertigem Grinsen)

    fastix®

    --
    Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Development. Auch  für seriöse Agenturen.