Problem mit dem Tutorial: [PHP] index.php?section=neu

Jan Kunert

Grünschnabel
Hallo, da ich noch nicht so bewandert bin in PHP, dachte ich mir, ich bringe es mir anhand der hier vorhandenen Tutorials bei. Nun habe ich mit diesem Tutorial angefangen und versucht ein kleines Menü für meine Homepage zu machen.


PHP:
	<?
	$page = "";
	if($page =='news'){ 
    		include 'news.inc'; 
	} 
	if($page =='home'){ 
    		include 'home.inc';
	}
	else {
    		include 'news.inc';
	}
	?>

Das ist der Code an der Stelle, wo die entsprechenden PHP Dateien eingebunden werden sollen, nach einem Klick auf den entsprechenden Link.

PHP:
<td>
    	    <font size="2" face="tahoma">
    	    <a href="index.php?page=news">News</a><br>
    	    <a href="index.php?page=home">About Me</a><br>
</td>

Das ist mein Menü. Wenn ich jedoch auf einen der Links klicke passiert soweit gar nichts, es gibt auch keine Fehlermeldungen.

Vielleicht kann mir einer von euch helfen.

Danke schon mal.

Gruß Jan
 
Du setzt die Variable $page auch jedes Mal auf einen leeren String, bevor die Überprüfen stattfindet. Dann kann logischerweise nur die letzte Möglichkeit zutreffend sein. ;)
Ausserdem musst Du bei den neueren PHP-Versionen erst noch die Daten aus dem HTTP-Protokoll holen.

Versuch's mal so:
PHP:
$page = $_GET['page'];
if(isset($page)) {
    if($page == "home") {
        include("home.inc");
    }
    else if($page == "news") {
        include("news.inc");
    }
    else {
        include("news.inc");
    }      
}
 
Danke für die schnelle Hilfe,

hab ich doch glatt übersehen, was ich da für einen Blödsinn geschrieben habe.

Hab es nun geändert, jedoch kommt nun beim Aufrufen der Page folgende Meldung:

Notice: Undefined index: page in D:\html-server\index.php on line 38

In Zeile 38 habe ich das eingefügt: $page = $_GET['page']; (nur als Info)

Wenn ich dann das Menü benutze um auf News zu klicken, öffnet er ganz normal die news.inc ...

klicke ich dann auf home, seh ich die home.inc und darunter direkt den inhalt der news.inc ...
 
Guten Morgen :-)

also folgendes:

ich bekomms einfach ned zum laufen.. ich glaub ich hab nen gaanz blöden fehler gemacht und finde ihn einfach nicht.. ich hänge mal die index.php an, wenn jemand mag, kann er sich das ganze ja mal anschauen.
 

Anhänge

Wir schreiben das ahr 2004 und benutzen für Variablen die per URL übergeben werden: $_REQUEST !

Also: $page = $_REQUEST['page'];

MfG WMK

Edit
Solltest dir doch auch mal den Syntax der Include funktion angucken, die bei ähnlich allen anderen funktionen bei php ist...:

Das muss heißen: include("datei.inc.php");
 
hm.. ok.. ich habe einen fehler gefunden:

habe den else zweig (für die Startseite wenn page keinen Wert hat) falsch "geklammert" d.h. einfach eine klammer falsch gesetzt.

Somit funktioniert das Menü jetzt, nun habe ich nur beim erstmaligen aufrufen (also einfach nur index.php) folgende Meldung:

Notice: Undefined index: page in D:\html-server\index.php on line 38

In Zeile 38 steht folgendes:

$page = $_REQUEST['page'];


sobald ich das hinbekommen habe bin ich erstmal glücklich :)
 
Versuch mal dies:
PHP:
<?php
  $page = ( isset($_GET['page']) && !empty($_GET['page']) && (trim($_GET['page'])!="") ) ? $_GET['page'] : FALSE;
  $valid_pages = array(
    "aktuelles" => "news",
    "startseite" => "home",
    "gaestebuch" => "guestbook",
    "bilder" => "pics",
    "404" => "error404"
  );

  if($page == FALSE) {
    $page = $valid_pages['aktuelles'];
    if(!array_key_exists($page, $valid_pages)) $page = $valid_pages['404'];
  }
  include($page.".inc");
?>
Anmerkung:
In $valid_pages stehen die möglichen Seiten, wobei der Schlüssel der angeforderten Seite, und der Wert der tatsächlichen zu ladenden Seite entspricht.
 
Danke Gumbo, aber wenn ich ehrlich bin sieht es mir noch etwas zu kompliziert aus.

Nachdem nun alles lief bis auf die erwähnte Fehlermeldung, habe ich die Dateien mal auf meinen Webspace hochgeladen (vorher lokal auf dem PC getestet) und es scheint so, als wäre auf meinem Webspace irgendwas anders, die Meldung ist jetzt weg.

Danke für eure Hilfe

MfG

Jan
 
Zurück