Notice Meldungen bei Seitenaufruf

dreggert

Mitglied
Ich erhalte beim Seitenaufruf einer meiner Webseiten folgende Meldungen:

Notice: Undefined index: page in C:\xampp\htdocs\honig\index.php on line 37
Diese Seite ist momentan nicht produktiv, daher ist hier kaum Inhalt. In erster Linie ist es ein Layoutentwurf.
Notice: Undefined index: page in C:\xampp\htdocs\honig\index.php on line 41

Notice: Undefined index: page in C:\xampp\htdocs\honig\index.php on line 44

Notice: Undefined index: page in C:\xampp\htdocs\honig\index.php on line 48

Notice: Undefined index: page in C:\xampp\htdocs\honig\index.php on line 51

Ich weis, dass ich die Notice Meldungen einfach ausblenden kann, aber ich würde gern den Grund für die Meldung haben, damit ich in Zukunft sauberer Coden kann.

Folgender Code wird in den Zeilen verwendet:
PHP:
<div id="content">

  <?
  if($_GET['page']=='')
  {
   echo "Diese Seite ist momentan nicht produktiv, daher ist hier kaum Inhalt. In erster Linie ist es ein Layoutentwurf.";
  }
  if($_GET['page']== "honig"){
  include('content/honig.php');
  }
  if($_GET['page']== "ansicht"){
  include('galerie/ansicht.php');
  }

  if($_GET['page']== "impr"){
  include('impressum.php');
  }
  if($_GET['page']== "kontakt"){
  include('kontakt.php');
  }


  ?>
  </div>
 
Zuletzt bearbeitet von einem Moderator:
Naja, $_GET['page'] ist einfach nicht definiert, wenn du die Seite ohne ?page=irgendwas aufrufst. Lösung wäre am Anfang des Skriptes etwa soetwas zu schreiben:
PHP:
<?php

$_GET['page'] = isset($_GET['page']) ? $_GET['page'] : '';
 
Hi,

du greifst du die $_GET Felder zu, obwohl diese nicht existieren:
PHP:
if($_GET['page']=='')[

Richtig wäre eine Überprüfung vor jedem Zugriff, ob das Feld existiert, und zwar nicht so wie oben:
PHP:
if(isset($_GET['page']))

Da du das Feld auf der Seite anscheinend öfters benötigst, würde ich das ganze so schreiben:
PHP:
<?php
if(isset($_GET['page'])) {
  $page = $_GET['page'];
} else {
  $page = null;
}

// dein code
Anschließend dann nicht mehr über das $_GET auf das Feld zugreifen, sondern direkt über $page.

Grüße,
BK
 
Vielen Dank für die Schnelle Lösung. Bei mir hat der Befehl
PHP:
$_GET['page'] = isset($_GET['page']) ? $_GET['page'] : '';
geholfen. Die Meldungen werden nun nicht mehr angezeigt.
 
Zuletzt bearbeitet von einem Moderator:
Zurück