php include

Alles, was PHP betrifft, kann hier besprochen werden.

php include

Postby shannara » 30. September 2006 20:10

Hallo,

ich habe die seite link.php in meinem linkmenü so verlinkt
?page=link.php

hier ein auszug aus der index.php
Code: Select all
<?php

if (!$page){ // Wenn die Variable $page nicht definiert wurde
$page="news.php"; //setze sie auf news.php
}
include ("./".$page); //include die datei die in $page enthalten ist das "./". hei&szlig;t das die datei local im gleichen Ordner wie die datei mit dem include befehl liegt (Sicherheits- FIX!)
?>


die link.php liegt im gleichen verzeichnis wie die index.php......
bei mir läuft die aktuellste xampp version und php 4.was mache ich falsch?und warum will er die datei jetzt nicht includen?

bei funpic funktioniert das problemlos,local aber leider nicht :( kann mir wer helfen???

danke
shannara
shannara
 
Posts: 28
Joined: 22. April 2005 22:51

Postby Wiedmann » 30. September 2006 22:01

ich habe die seite link.php in meinem linkmenü so verlinkt
?page=link.php

Also auf deutsch hast du dann z.B. diesen Link:
http://www.example.com/index.php?page=link.php

Code: Select all
<?php
    if (!$page) { $page = 'news.php'; }
    include ("./".$page);
?>

warum will er die datei jetzt nicht includen?

"$page" ist keine bekannte Variable (existiert nicht), du hast ihr zuvor keinen Wert zugewiesen (sie nicht initialisiert), und somit ist der Vergleich immer false oder enthält halt einen leeren String --> der include() wird nicht wie von dir erwartet ausgeführt.

Das mit der Konvertierung zu einem leeren String merkst du aber nur nicht, weil du so ein lasches error_reporting eingestellt hast.


Ein Link ist immer ein GET-Request. Und ein angehängter Linkparameter immer ein Key im $_GET-Array:
Code: Select all
<?php
    if (empty($_GET['page'])) { $_GET['page'] = 'news.php'; }
    include './'. $_GET['page'];
?>


BTW. würde ich das include eher so schreiben:
Code: Select all
include './'.basename($_GET['page']);

wenn du nur reine Dateinamen als Parameter hast. Besser wäre es aber, gar keinen Dateinamen zu nehmen und ein Array mit den Dateinamen anzulegen, und nur den Array-Key anzuhängen.
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby shannara » 01. October 2006 00:42

vielen dank für die schnelle hilfe wiedmann :oops: wieder was dazu gelernt :D
jetzt funktioniert alles

liebe grüße
shannara
shannara
 
Posts: 28
Joined: 22. April 2005 22:51


Return to PHP

Who is online

Users browsing this forum: No registered users and 21 guests