[PHP] include fehler!

NTC

Ensign
Registriert
Dez. 2003
Beiträge
167
HI!

Ich habe eine html seite mit einer Tabelle erstellt, in der "Mainzelle" soll dann per include die paranews startseite aufgerufen werden.

So sieht das ganze aus:
PHP:
<?php
	include('paranews/index.php');
	?>

Wenn ich aber die seite über meinen Browser aufrufe bekomme ich folgenden Fehler:
"Template Error: filename: file ./template.htm does not exist.
Halted."
Also irgendwie kann die Seite da nicht mehr auf dateien aller Art, wie z.B. html oder bilder zugreifen, obwohl sie am angegebenen Ort vorhanden sind. Wenn ich die news seite direkt aufrufe, funktioniert sie auch!

Testweise habe ich auch versucht ein woltlab burning board zu "includen" dabei kam zwar keine Fehlermeldung, jedoch wurde kein Bild dargesellt!


Also meine Frage jetzt, wo liegt da der Fehler?
 
Re: [php] include fehler!

Versuch mal
PHP:
<?php
include ('/paranews/index.php');
?>
 
Re: [php] include fehler!

jetzt hab ich ne andere Fehlermeldung:

"Warning: main(): open_basedir restriction in effect. File(/paranews/index.php) is not within the allowed path(s): (/srv/www/htdocs/web149/) in /srv/www/htdocs/web149/html/infineon/pages/news.php on line 22

Warning: main(/paranews/index.php): failed to open stream: Operation not permitted in /srv/www/htdocs/web149/html/infineon/pages/news.php on line 22

Warning: main(): Failed opening '/paranews/index.php' for inclusion (include_path='.') in /srv/www/htdocs/web149/html/infineon/pages/news.php on line 22"

Line 22 ist der include Befehl.
 
Re: [php] include fehler!

Gut, dann ist http://www.netz-id.de/article1611.html aktiviert. Sprich
PHP:
<?php 
    include('paranews/index.php'); 
    ?>
ist schon richtig, warum es dann aber scheitert weiß ich net. Glaube der Fehler liegt in der index.php
 
Re: [php] include fehler!

Ja, der Code an sich stimmt schon, es liegt an dem Script.
Hab mir das mal schnell geladen.

Probier mal in der Datei "paranews/inc/template.inc.php" $root auf "./paranews" zu setzen (Zeile 22) oder du kopierst einfach mal die "template.htm" in dein Haupverzeichnis.
 
Re: [php] include fehler!

Verstehe ich nicht so ganz...

--index.php--
include paranews/index.html
include template.htm

oder
--index.php--
include paranews/index.html
--paranews/index.html--
include ./template.htm

??

Wenn letzteres:
Wo liegt die template.htm? In . oder in ./paranews? Wenn in paranews dann versuchs mal mit include('./paranews/template.htm');...
 
Re: [php] include fehler!

@migl
Hab beides probiert, geht nicht!

@</Life>
Hauptordner:
-news.php (in die news.php soll die Datei index.php aus dem Ordner Paranews includiert werden|||in die index.php wird die template.htm includiert, das sollte aber funktionieren, da es ein bereits fertiges, funktionierendes Script ist)
-Ordner: Paranews (hier liegen die index.php und die template.htm)
 
Re: [php] include fehler!

klingt für mich nach dem problem, dass der jetzt die template.htm im root-Ordner sucht, denn dein Script welches included liegt ja auch da und in der paranews/index.php wirst du keinen Pfad zur template.htm angegebe haben.

Wenn du die paranews/index.php direkt aufrufst, dann suchst der die Datei im Verzeichnis paranews/ weil das Script von da aufgerufen wird.

Ergo: Alles in ein Verzeichnis oder beim includen den Pfad mit angeben.
 
Zuletzt bearbeitet:
Re: [php] include fehler!

So, hab jetzt alles in einem Verzeichnis und es geht! :D

Nur jetzt hab ich ein anderes Problem die includierte index.php überträgt ihre styleeinstellungen auf die ganze seite und "überschreibt" quasi die styleeinstellung (alles per css) der news.php.

/edit:
Hat sich erledigt! Hab einfach die css dateien angepasst...vielen Dank für eure Hilfe! *karmavergeb*
 
Zuletzt bearbeitet:
Re: [php] include fehler!

sauberer wär es sicher wenn du ne Variable für den Pfad definieren würdest, dann includest und die Variable wieder zurücksetzt.

PHP:
$pfad = './';

blabla

$pfad = './unterverzeichnis/';
include('unterverzeichnis/datei.php');
$pfad = './';

und dann andere Scripte mit

PHP:
include($pfad.'datei.php');

aufrufst. Noch schöner wärs natürlich wenn du das noch rekursiv machst ;)
 
Re: [php] include fehler!

Wozu setzt du $path, wenn du dann im include doch wieder ./unterverzeichnis/ benutzt? =)
 
Re: [php] include fehler!

Weil ich dann im includeten script den Pfad drin hab um von da aus weiter zu includen (2. Codeteil soll das script sein, welches im ersten schon included wird)
 
Re: [php] include fehler!

Das ist Unsinn. Du musst das als Stack aufbauen:

PHP:
if (!isset($path)) $path = array("./");

array_unshift($path.'unterverzeichnis/');
include ($path[0].'datei.php');
array_shift($path);

Ansonsten hast du nach include('./MEINunterverzeichnis/DEINscript.php'); wieder ein problem ;)
 
Zuletzt bearbeitet:
Re: [php] include fehler!

Ich hab zwar keine Ahnung was array_unshift und array_shift machen, aber ich habe so die wage Vermutung, dass du nichts anderes machst als ich mit
Blutschlumpf schrieb:
Noch schöner wärs natürlich wenn du das noch rekursiv machst ;)
einen Post über deinen angedeutet hab.
 
Zurück
Oben