php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2004

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 06.08.2004, 22:18  
Gast
 
Beiträge: n/a
Standard Fehlermeldung beim includen von seiten

Hallo,

bin dabei die Navigation meiner Websites auf Sections (z.B. index.php?section=home) umzustellen. Hab dazu dieses Script:

index.php
PHP-Code:
<?php
include('dateien.php');

if(isset(
$_GET['section']) AND isset($dateien[$_GET['section']]))
{
//Ist eine $_GET Variable vorhanden wird PHP angewiesen
//zu prüfen ob die Datei existiert und diese dann zu laden

if(!file_exists($dateien[$_GET['section']])) include $dateien[$_GET['fehler']];;

include 
$dateien[$_GET['section']];
}
else
{
//Wenn keine Variable oder Definition vorhanden ist
//lade die Fehlerseite bzw. die Indexseite
include $dateien['start'];
}
?>
dateien.php
PHP-Code:
<?php

$dateien 
= array();
$dateien['home'] = "start.php";
$dateien['kontakt'] = "kontakt.php";
$dateien['fehler'] = "fehler404.php";
$dateien['impressum'] = "impressum.php";
// etc.
?>
wenn ich jetzt aber index.php aufrufe erscheint statt der Seite, die includet werden soll:

Zitat:
Warning: main() [function.include]: Failed opening '' for inclusion (include_path='.;C:\xampp\php\pear\') in C:\xampp\htdocs\index.php on line 142
Aber nur wenn "start.php" includet werden soll. Bei anderen Seiten funkionierts. Die Seite enthält aber kein PHP, also kommen auhc keine Scripte durcheinander?! Weiß jemadn was da los ist?[/php]
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 06.08.2004, 22:29  
Erfahrener Benutzer
 
Registriert seit: 21.07.2004
Beiträge: 101
GeorgM
Standard Re: Fehlermeldung beim includen von seiten

Ähm,
"include" kann man meines Wissens nur für Dateien, nich für Variablen (und Arrays) verwenden. Soll das vielleicht "echo" oder "print" heißen?
__________________
[php:1:f3a0cfcfa4]$hallo = array("Guten Morgen", "Guten Tag", "Guten Abend");
for($i=0;$i<2;$i++) {echo $hallo[$i]."<br>";}[/php:1:f3a0cfcfa4]
GeorgM ist offline  
Alt 06.08.2004, 22:32  
Gast
 
Beiträge: n/a
Standard Re: Fehlermeldung beim includen von seiten

Zitat:
Zitat von GeorgM
Ähm,
"include" kann man meines Wissens nur für Dateien, nich für Variablen (und Arrays) verwenden. Soll das vielleicht "echo" oder "print" heißen?
Jep, 100%ig richtig.

Zitat:
Die include() Anweisung bindet die angegebene Datei ein und wertet diese aus.
http://de2.php.net/manual/de/function.include.php

Gruß

Chris

PS: dein Code müsste eigentlich so gehen:

Code:
include_once($dateien[$_GET['section']]);
Include ist nämlich ne PHP-Funktion, also immer am ende mit Klammern ()
 
Alt 06.08.2004, 22:35  
Gast
 
Beiträge: n/a
Standard

Es wird doch auch eine Datei includet?! Nur in dieser Datei ist ein Array. Aber es funktioniert ja auch alles, bis auf die Startseite. Und ich weiß nicht, wo da der Fehler liegt...
 
Alt 06.08.2004, 22:43  
Gast
 
Beiträge: n/a
Standard

Danke für die Antworten erstmal!

Also, es funktioniert auch, "section=home" einzugeben. Nur wenn man die index.php ohne den GET-Tag "section" öffnet, die Fehlermeldung ausgegeben wird?! Weiß jemand wieos?
 
Alt 06.08.2004, 22:44  
Gast
 
Beiträge: n/a
Standard

Hi.

Übrigens ist dein Code auch ein wenig "unsauber", da du z.B. zwar prüfst ob die Datei vorhanden ist und falls nicht die Fehlerseite lädst, allerdings dann die originalseite doch auch mit include versuchst zu laden

Besser:

Code:
<?php 
include('dateien.php'); 

if (isset($_GET['section']) AND array_key_exists($_GET['section'],$dateien)) { 

   if(file_exists($dateien[$_GET['section']])) {
      include $dateien[$_GET['section']]; 
   }
   else {
      include($dateien[$_GET['fehler']]); 
   }
} 
else { 
//Wenn keine Variable oder Definition vorhanden ist 
//lade die Fehlerseite bzw. die Indexseite 
include($dateien['start']); 
} 
?>
 
Alt 06.08.2004, 22:51  
Gast
 
Beiträge: n/a
Standard

Ich machs besser nicht mit dem section-Zeugs... Sowas hier tut's auch (bei index.php):

PHP-Code:
<?php
$fd 
fopen($page"r");
while (!
feof($fd)) {
echo 
fgets($fd4096);
}
fclose ($fd);
?>
 
Alt 06.08.2004, 23:11  
Gast
 
Beiträge: n/a
Standard

Ähhhhh :wink:

Wenn es sich bei der Seite nicht um ein Template handelt dann mach das bitte auf keinen Fall so!!!!

Denn nur um eine einen "Text" in dein Programm zu bekommen diese Datei zeilenweise auslesen ist extreme CPU-Resourcen-Verschwendung.

Falls es sich um ein recht kleines Projekt handelt, machs doch einfach folgendermaßen:

index.php?page=impressum

Datei:
Code:
if (isset($_GET['page'])) {
   if (file_exists($_GET['page'].'.php') include($_GET['page'].'.php');
   else .....
}
else include(home.php);
Gruß

Chris
 
Alt 07.08.2004, 11:14  
Gast
 
Beiträge: n/a
Standard

Vielen Dank! So funktionierts!!
 
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Fehlermeldung umbenennen Soese PHP Tipps 2007 3 13.03.2007 13:33
script läuft und funktioniert gibt aber fehlermeldung aus? Promaetheus PHP Tipps 2006 5 12.09.2006 23:42
Seiten sichern!? c01001 PHP Tipps 2006 7 20.01.2006 09:13
[Erledigt] includen Fremder Seiten PHP-Fortgeschrittene 5 24.12.2005 17:26
[Erledigt] Zuviele Seiten werden angezeigt PHP Tipps 2007 5 24.12.2005 12:49
Ich will Fehlermeldung vermeiden. Zero.exe PHP Tipps 2005-2 2 02.08.2005 13:11
Includen macht immer wieder Probleme! PHP Tipps 2005-2 7 22.07.2005 21:40
php seiten in einen iframe includen => HILFE PHP Tipps 2005-2 10 12.07.2005 19:24
HTML Seiten generieren obi PHP Tipps 2005-2 5 05.06.2005 03:21
fragwürdige Fehlermeldung PHP Tipps 2005 5 19.05.2005 15:45
3 Seiten durch Passwort schützen mit einmaliger PW-Eingabe? PHP Tipps 2005 12 19.04.2005 22:41
Includen für Dummies PHP Tipps 2005 5 07.03.2005 12:15
wml oder php/html Seiten automatisch erkennen Soese PHP Tipps 2005 4 13.01.2005 22:57
Script bei Strato mit Fehlermeldung, bei Netbeat ok PHP Tipps 2004-2 14 08.12.2004 11:08
[Erledigt] div auf mehreren Seiten HTML, Usability und Barrierefreiheit 0 25.11.2004 19:10


Alle Zeitangaben in WEZ +2. Es ist jetzt 05:38 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.