Top-Themen

Aktuelle Themen (A bis Z)

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, 7624 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 ..
Ähnliche Inhalte
PHP
PHP include und per form ein formular einfügen
Frage von miichiii9PHP1 Kommentar

Hallo miteinander Ich habe ein kleines Problem Meine Idee ist ein kleines Forum selber zu erstellen mittels PHP und ...

Server
Bestimmte Befehle in PHP protokollieren
Frage von StefanKittelServer1 Kommentar

Hallo, ich habe hier von einem Kunden ein stark modifiziertes Drupal auf einem aktuellen Linux-Server ein. Aktuell gibt es ...

Entwicklung
Verständnisproblem bei regex
gelöst Frage von KraemerEntwicklung7 Kommentare

Moin zusammen, ich muss mich zum ersten mal überhaupt mit regex richtig beschäftigen und hänge dabei vollends. Vielleicht kann ...

LAN, WAN, Wireless
Verständnisproblem NAT
Frage von BytedreherLAN, WAN, Wireless1 Kommentar

Hallo zusammen, ich habe eine ZyWALL USG 50 und ein "Problem", was ich mir leider nicht selbst erklären kann. ...

Neue Wissensbeiträge
Internet

Was nützt HTTPS, wenn es auch von Phishing Web-Seiten genutzt wird

Information von Penny.Cilin vor 2 TagenInternet17 Kommentare

HTTPS richtig einschätzen Ob man eine Webseite via HTTPS aufruft, zeigt ein Schloss neben der Adresse im Webbrowser an. ...

Webbrowser

Bugfix für Firefox Quantum released - Installation erfolgt teilweise nicht automatisch!

Erfahrungsbericht von Volchy vor 3 TagenWebbrowser7 Kommentare

Hallo zusammen, gem. dem Artike von heise online wurde mit VersionFirefox 57.0.1 sicherheitsrelevante Bugs behoben. Entgegen der aktuellen Veröffentlichung ...

Sicherheit

Teamviewer Sessions können gekapert werden - Update tw. verfügbar

Information von sabines vor 3 TagenSicherheit6 Kommentare

In bestimmten Konstellationen können Teamviewer Sessions gekapert werden, wahrscheinlich aber ein recht unwahrscheinliches Szenario. Da der Teamviewer gerne für ...

Digitiales Fernsehen

Apple TV: Amazon Prime App ist verfügbar

Information von Frank vor 4 TagenDigitiales Fernsehen4 Kommentare

Die Amazon Prime Video App kann ab sofort auf einem Apple TV ab der 3 Generation installiert werden. Einfach ...

Heiß diskutierte Inhalte
Vmware
Installation Windows 10 VMware
Frage von Ghost108Vmware17 Kommentare

Hallo zusammen, versuche gerade mit Hilfe des vshpere clients eine virtuelle Windows 10 maschine aufzusetzen. 1. virtuelle Maschine erstellt ...

Exchange Server
SBS 2011 E-Mails können gesendet werden, aber nicht von extern empfangen
Frage von andreas1234Exchange Server14 Kommentare

Hallo Community, ich habe das Problem, dass seit knapp zwei Wochen die E-Mails von meinem SBS 2011 einwandfrei gesendet ...

Voice over IP
Telefonstörung - Ortsrufnummern kein Verbindungsaufbau
Frage von Windows10GegnerVoice over IP10 Kommentare

Hallo, sowohl bei uns als auch beim Opa ist es über VoIP nicht möglich Ortsrufnummern anzurufen. Es kommt nach ...

Windows Server
Server 2012 über Eingabeaufforderung devmgmt.msc geht nicht
gelöst Frage von achim222Windows Server9 Kommentare

Hallo, ich habe hier einen Server 2012 der im Reparaturmodus startet. Es liegt an einem falschen VirtIO Treiber für ...