Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Verständnisproblem beim php include Befehl

Frage Entwicklung PHP

Mitglied: gechger

gechger (Level 1) - Jetzt verbinden

11.06.2009, aktualisiert 21.06.2009, 7425 Aufrufe, 8 Kommentare

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
Mitglied: Bulleye
11.06.2009 um 20:54 Uhr
Wenn ich dich richtig verstehe sieht deine Ornderstruktur so aus:


- /index.php
- /startseite/start.php

demnach würde der Befehl lauten:

<?php include "./startseite/start.php"; ?>

Lg
Bitte warten ..
Mitglied: RoterFruchtZwerg
11.06.2009 um 20:58 Uhr
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 ;)
Bitte warten ..
Mitglied: Bulleye
11.06.2009 um 21:01 Uhr
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 ;)


... Das war die ausführliche Variante..

Lg
Bitte warten ..
Mitglied: gechger
11.06.2009 um 21:28 Uhr
Schon mal vielen Dank für die schnelle Antwort.

Zu den Erklärungen noch eine kurze Frage:
ich habe in einer vorhandenen HP den Slash benutzt, um auf andere Seiten zu verlinken. Mozilla hat das aber nicht gefunden, erst nach dem ich den Backslash eingesetzt hatte, funktionierte es auch dort. Deshalb wollte ich sicher gehen mit den Backslash.

Habe es auch mal schnell getestet:
auch dieser Befehl
<? include "./startseite/start.php"; ?>
und dieser
<? include "startseite/start.php"; ?>
liefert mir denselben Fehler.
(include_path='.;C:\xampp\xampplite\php\pear\') in

Mein Apache scheint die Dateien irgendwo anders zu erwarten. Wie überrede ich ihn also, an der richtigen Stelle zu suchen, ohne die php.ini umzumodeln?

Schöne Grüße
Christof
Bitte warten ..
Mitglied: Bulleye
11.06.2009 um 21:44 Uhr
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
Bitte warten ..
Mitglied: dog
11.06.2009 um 21:57 Uhr
Streng genommen sollte man weder / noch \ sondern die Konstante DIRECTORY_SEPARATOR benutzen, wenn man im Dateisystem arbeitet

Bei URLs wiederum ist / vorgeschrieben

Grüße

Max
Bitte warten ..
Mitglied: Supermax
12.06.2009 um 07:41 Uhr
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'); ?>
Bitte warten ..
Mitglied: gechger
12.06.2009 um 15:50 Uhr
Vielen Dank für alle Eure Anregungen. Ich habe es jetzt gelöst mit diesem Befehl:

<?php include "C:\\xampp\\xampplite\\htdocs\\mtv\\phphp\\startseite\\start.php"; ?>

So arbeitet auch Mozilla einwandfrei.

Schöne Grüße
Christof
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (20)

Frage von Xaero1982 zum Thema Microsoft ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Festplatten, SSD, Raid
M.2 SSD wird nicht erkannt (14)

Frage von uridium69 zum Thema Festplatten, SSD, Raid ...