Verständnisproblem beim php include Befehl
nach reichlichem gegoogle bin ich jetzt erst recht verwirrt
Hallo Forum,
jetzt wollte ich mal den include Befehl testen. Ich habe stundenlang gegoogelt, und daraufhin angenommen, daß ein einfacher Befehl ausreichen würde. In etwa so:
<? include "..\startseite\start.php"; ?>
Ich will diese Datei aus der index.php aufrufen. Von dieser Datei ausgehend finde ich meine Zieldatei im Ordner startseite und sie heisst start.php.
Ich weiss nach dem ganzen gegoogle nicht mehr, ob die ..\ richtig sind, oder nur .\ oder gar nichts davon. Habe jedenfalls alles durchgetestet und bekomme immer diese Fehlermeldung:
Warning: Division by zero in C:\xampp\xampplite\htdocs\mtv\phphp\index.php on line 38
Warning: include(php) [function.include]: failed to open stream: No such file or directory in C:\xampp\xampplite\htdocs\mtv\phphp\index.php on line 38
Warning: include() [function.include]: Failed opening 'php' for inclusion (include_path='.;C:\xampp\xampplite\php\pear\') in C:\xampp\xampplite\htdocs\mtv\phphp\index.php on line 38
Was mir nun wirklich komisch vorkommt, ist die dritte Meldung: include_path=.....
Das kommt wohl aus der php.ini. Bei mir in der Apache Testumgebung kann ich das sicher ändern, aber nicht, wenn die Dateien zum Provider hoch geladen werden.
Wie kriege ich also meine Datei mit include sauber eingebunden?????
Ein wenig verständliche Nachhilfe wäre sicher hilfreich
Schöne Grüße
Christof
Hallo Forum,
jetzt wollte ich mal den include Befehl testen. Ich habe stundenlang gegoogelt, und daraufhin angenommen, daß ein einfacher Befehl ausreichen würde. In etwa so:
<? include "..\startseite\start.php"; ?>
Ich will diese Datei aus der index.php aufrufen. Von dieser Datei ausgehend finde ich meine Zieldatei im Ordner startseite und sie heisst start.php.
Ich weiss nach dem ganzen gegoogle nicht mehr, ob die ..\ richtig sind, oder nur .\ oder gar nichts davon. Habe jedenfalls alles durchgetestet und bekomme immer diese Fehlermeldung:
Warning: Division by zero in C:\xampp\xampplite\htdocs\mtv\phphp\index.php on line 38
Warning: include(php) [function.include]: failed to open stream: No such file or directory in C:\xampp\xampplite\htdocs\mtv\phphp\index.php on line 38
Warning: include() [function.include]: Failed opening 'php' for inclusion (include_path='.;C:\xampp\xampplite\php\pear\') in C:\xampp\xampplite\htdocs\mtv\phphp\index.php on line 38
Was mir nun wirklich komisch vorkommt, ist die dritte Meldung: include_path=.....
Das kommt wohl aus der php.ini. Bei mir in der Apache Testumgebung kann ich das sicher ändern, aber nicht, wenn die Dateien zum Provider hoch geladen werden.
Wie kriege ich also meine Datei mit include sauber eingebunden?????
Ein wenig verständliche Nachhilfe wäre sicher hilfreich
Schöne Grüße
Christof
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 118017
Url: https://administrator.de/contentid/118017
Ausgedruckt am: 25.11.2024 um 04:11 Uhr
8 Kommentare
Neuester Kommentar
Der Include-Path ist egal, der kommt nur zum Einsatz wenn die Quelle die du angegeben hast so nicht gefunden werden kann.
Auch wenn dein System unter Windows läuft, solltest du immer Slash zur Verzeichnistrennung verwenden, keinen Backslash.
Zu guter letzt solltest du vielleicht noch wissen, dass "./" aktuelles Verzeichnis bedeutet, und "../" darüberliegendes Verzeichnis.
Demnach ist, laut deiner Beschreibung, "../startseite/start.php" falsch. Richtig wären "./startseite/start.php" oder gleich "startseite/start.php".
Hat aber eigentlich wenig mit PHP zu tun, als mit Dateisystemen generell ;)
Auch wenn dein System unter Windows läuft, solltest du immer Slash zur Verzeichnistrennung verwenden, keinen Backslash.
Zu guter letzt solltest du vielleicht noch wissen, dass "./" aktuelles Verzeichnis bedeutet, und "../" darüberliegendes Verzeichnis.
Demnach ist, laut deiner Beschreibung, "../startseite/start.php" falsch. Richtig wären "./startseite/start.php" oder gleich "startseite/start.php".
Hat aber eigentlich wenig mit PHP zu tun, als mit Dateisystemen generell ;)
Zitat von @RoterFruchtZwerg:
Der Include-Path ist egal, der kommt nur zum Einsatz wenn die Quelle
die du angegeben hast so nicht gefunden werden kann.
Auch wenn dein System unter Windows läuft, solltest du immer
Slash zur Verzeichnistrennung verwenden, keinen Backslash.
Zu guter letzt solltest du vielleicht noch wissen, dass
"./" aktuelles Verzeichnis bedeutet, und "../"
darüberliegendes Verzeichnis.
Demnach ist, laut deiner Beschreibung,
"../startseite/start.php" falsch. Richtig wären
"./startseite/start.php" oder gleich
"startseite/start.php".
Hat aber eigentlich wenig mit PHP zu tun, als mit Dateisystemen
generell ;)
Der Include-Path ist egal, der kommt nur zum Einsatz wenn die Quelle
die du angegeben hast so nicht gefunden werden kann.
Auch wenn dein System unter Windows läuft, solltest du immer
Slash zur Verzeichnistrennung verwenden, keinen Backslash.
Zu guter letzt solltest du vielleicht noch wissen, dass
"./" aktuelles Verzeichnis bedeutet, und "../"
darüberliegendes Verzeichnis.
Demnach ist, laut deiner Beschreibung,
"../startseite/start.php" falsch. Richtig wären
"./startseite/start.php" oder gleich
"startseite/start.php".
Hat aber eigentlich wenig mit PHP zu tun, als mit Dateisystemen
generell ;)
... Das war die ausführliche Variante..
Lg
Ich würde an deiner stelle erst einmal die ganze Geschichte mit dem Absoluten Pfad zu der Datei 'start.php' angeben
also so(wenn ich deine Verzeichnisstruktur richtig analysiert habe):
<?php include "C:/xampp/xampplite/htdocs/mtv/phpphp/startseite/start.php"; ?>
(natürlich sollte der Pfad überprüft werden ;))
Lg
also so(wenn ich deine Verzeichnisstruktur richtig analysiert habe):
<?php include "C:/xampp/xampplite/htdocs/mtv/phpphp/startseite/start.php"; ?>
(natürlich sollte der Pfad überprüft werden ;))
Lg
Statt mit ../ und ./ solltest du besser mit $_SERVER['DOCUMENT_ROOT'] arbeiten. In dieser superglobalen Variable steht (wenn das PHP-Script über einen Webserver aufgerufen wird) immer das Basisverzeichnis der Webpräsenz, egal ob lokal unter XAMPP oder auf dem Server deines Webspace-Anbieters.
Also statt
<?php include('./startseite/start.php'); ?>
besser
<?php include($_SERVER['DOCUMENT_ROOT'].'/startseite/start.php'); ?>
Also statt
<?php include('./startseite/start.php'); ?>
besser
<?php include($_SERVER['DOCUMENT_ROOT'].'/startseite/start.php'); ?>