Use of undefined constant menu

souceres

Grünschnabel
Hallo zusammen,

lasse meine Seiten dynamisch zusammensetzen. Es funktioniert einwandfrei, trotzdem schreibt sich meine error.log ständig mit diesem Satz voll:

PHP Notice: Use of undefined constant menu - assumed 'menu' in C:\\Programme\\TYPO3_4.0.2\\Apache\\htdocs\\paz\\index.php on line 26, referer: http://localhost/paz/index.php

und das für jeden Link. die konstante menu steht im $_GET wird dort mitgegeben, und tut auch noch das Richtige.

Wie bekomme ich die Fehlermeldung weg und warum funktioniert es trotzdem? Es nervt halt nur das die Datei sinnlos vollgeschrieben wird.

liebe Grüße, souceres
 
Vermutlich steht im Quellcode an besagter Stelle $_GET[menu]. In diesem Fall geht PHP erst einmal davon aus, dass „menu“ eine Konstante ist. Ist eine Konstante gleichen Namens nicht bekannt, ist PHP so tolerant und behandelt es als Zeichenkette, obwohl die dafür notwendigen Anführungszeichen fehlen. Abhilfe: Einfach alle gewollten Zeichenketten explizit als solche mit Anführungszeichen auszeichnen. Immer!
 
Achso, wenn ich richtig verstehe, nich so:

if ($querry = $_GET[menu] == '0') {
include('inc_start.php');
} elseif ($querry = $_GET[menu] == '1') {
include('inc_aktuell.php');
} else {
include('inc_irgendwas.php');
}

sondern so:

if ($querry = $_GET['menu'] == '0') {
include('inc_start.php');

oder so:

} elseif ($querry = $_GET["menu"] == '1') {
include('inc_aktuell.php');

funktioniert leider nicht. Die Seiten gehen zwar aber die Fehlermeldung wird immer noch gebracht.

Achso vieleicht wäre noch wichtig, ich übergebe die Konstante per Link nicht per Formular oder so.
Sprich, ich habe eine Datei mit solchen Linkmenü:

echo "<tr><td class='menu'><a href='$home?menu=8' class='menue'>Archiv</a></td></tr>";

und weiter unten frage ich dann ab welchen Inhalt $_GET[menu] hat.

Lg, souceres
 
In der Fehlermeldung steht alles doch beschreiben, sogar der Ort des Fehlers. Einfach mal in der angegebenen Datei in der angegebenen Zeile nachschauen.
 
joa... entweder mal in der Zeile nachschauen... oder mal deinen gesamten Quelltext zur Verfuegung stellen, damit man das ganze ggf. auch selbst checken kann... kannst mir auch gerne eine mail schicken... LOKmail@web.de
 
so... ich habe das Problem mal per Mail gelöst...
hier jetzt noch mal eine kurze Beschreibung fuer interessierte was genau das Problem war und wie es zu loesen ist...

Die Protokolierte Warnmeldung sagt so viel aus wie "Es wird versucht eine Variable zu verwenden, die es nicht gibt"
an den Stellen im Quellcode an denen $_GET['menu'] verwendet wurde, war beim ersten aufruf logischer weile die Variable noch nicht vorhanden ...
Abhilfe bringt eine vorherige Abfrage ob diese Variable ueberhaupt vorhanden ist:
if(isset($_GET['menu']){ .....

@souceres... bitte klicke gerade noch hier an, dass das Problem erledigt ist... ueber eine bewertung wuerde ich mich auch freuen (hier links die waage)
 
Zurück