Include Problem

  • #21
Gandalf_the_Grey schrieb:
@void

Poste mal die Ausgabe von phpinfo()

Da liegt wie es mir scheint ein kleiner Konfig Fehler vor. Denn dein Home Verzeichniss scheint schon vorher zu beginnen so das du vermutlich nur vergessen hast die dazwischen liegenden Verzeichnisse anzugeben.
Gerne. Nur wenn ich alles poste wird's ziemlich lange.

Ich habe bei meinen privaten Webserver hier zu Hause den include_path mal entsprechend dem Document Root gesetzt (der eintrag zu include_path war zuvor in der php.ini leer (include_path = )).

Ich skizziere am besten mal die Struktur:
Code:
Auszug aus httpd.conf
DocumentRoot W:/web/homepage/web

und PHP.ini

Code:
Auszug aus php.ini (sind meines Erachtens alles default Werte):

;;;;;;;;;;;;;;;;;;;;;;;;;
; Paths and Directories ;
;;;;;;;;;;;;;;;;;;;;;;;;;

; UNIX: /path1:/path2  
;include_path = .:/php/includes
;
; Windows: \path1;\path2
;include_path = .;c:\php\includes

; The root of the PHP pages, used only if nonempty.
; if PHP was not compiled with FORCE_REDIRECT, you SHOULD set doc_root
; if you are running php as a CGI under any web server (other than IIS)
; see documentation for security issues.  The alternate is to use the
; cgi.force_redirect configuration below
doc_root =

; The directory under which PHP opens the script using /~username used only
; if nonempty.
user_dir =

; Directory in which the loadable extensions (modules) reside.
extension_dir = ./

; Whether or not to enable the dl() function.  The dl() function does NOT work
; properly in multithreaded servers, such as IIS or Zeus, and is automatically
; disabled on them.
enable_dl = On

In meinem WinXP System sieht die Ordnerstruktur dann folgendermaßen aus:

W:\web\homepage\web\cgi-bin
W:\web\homepage\web\test

Getestet habe ich das folgende Konstellation:
Code:
Änderung in der PHP.ini (include_path aktiviert und entsprechend DocumentRoot):
include_path = .;w:/web/homepage/web

PHP Datei:
<?PHP include(./cgi-bin/base.inc.php); ?>
<html>
<head></head>
<body>
<img src=/images/guestbook.bmp>
</body>
</html>

Wenn ich diese PHP Datei im DocumentRoot ausführe wird das Bild angezeigt und die PHP Datei base.inc.php wird eingebunden (kein include Fehler).

Wenn ich die PHP Datein in test ausführe wird das Image ebenfalls angezeigt, aber es kommt die Fehlermeldung, dass die angegebenne Datei nicht eingebunden werden kann:
Code:
Warning: main(/cgi-bin/base.inc.php): failed to open stream: No such file or directory in W:\web\homepage\web\vdsys\test\inctest.php on line 3

Warning: main(): Failed opening->/cgi-bin/base.inc.php' for inclusion (include_path='.;c:\php4\pear') in W:\web\homepage\web\vdsys\test\inctest.php on line 3

Ich hab ehrlich gesagt keine Ahnung, an was ich noch drehen muss damit's tut bzw. wo das Problem ist.


@Gandalf
die PHPINFO will ich hier nicht komplett posten, aber ich kann dir die erforderlichen Files (musst mir sagen welche Du brauchst) auch gerne per Mail zukommen lassen. Bin für jede Hilfe dankbar.

Gruß
VoiDy
 
  • #22
Also, machen wir folgendes, wenn du die Ausgabe der phpinfo() Funktion nicht posten willst dann mach doch nen Screenshot davon, streich mit Paint oder so alles raus was du mir nicht zeigen willst und schick es an meine E-Mail Addy, dann kann ich dir sicherlich weiterhelfen. Muss mich auch erstmal wieder rein denken, denn wie ich unter dem anderen Post geschrieben habe ist es so das ich schon lange keinen Webserver mehr selbst unter Windows aufgesetzt habe. Das was ich hier wiedergegeben habe ist mein theoretisches Wissen, aber das lässt sich sicherlich ohne Probleme wieder reaktivieren, du musst mir nur etwas Zeit geben. (Zur Info, ich nutze unter Windows auf der Arbeit z.B. XAMPP, das ist ein Webserver Packet wo alles bereits vorkonfiguriert ist und Zuhause habe ich nur den Webserver unter Debian Linux)
 
  • #23
Hi,

änder mal den include_path zu: include_path = .;c:\php4\pear;W:\web\homepage\web
Du mußt hier nämlich den \ statt / verwenden, außerdem wären dir so die pear-Funktionen verloren gegangen (weil du c:\php4\pear weggelassen hast), aber aus der Fehlermeldung kannte man dann den alten include_path auch erkennen.

und den Aufruf auch: <?PHP include(cgi-bin/base.inc.php); ?>
Denn, er macht folgendes, er nimmt sich die Einzelnen Pfadangaben aus include_path und setzt dahinter was du includen willst, wenn es mit keinem klappt kommt halt die Fehlermeldung.
 
  • #24
Ok. Ich probiers mal. Das mit den Pear Funktionen verstehe ich nicht, denn es gibt kein Verzeichnis auf meiner Festplatte mit C:\PHP4\pear.

Beim include Path bin ich nicht sicher, aber ich denke ich habe alle Kombinationen ausprobiert:
include_path = .;W:\web\homepage\web oder
include_path = .;W:/web/homepage/web oder
include_path = .;W:\\web\\homepage\\web

Jetzt geh ich erstmal Billiard spielen, dann probier ich es aus.
 
  • #25
hhm, warum is dann der include_path dahin? :eek:
Egal, dann lass den Teil weg. :)

Hast du den Apache nach der Änderung neu gestartet?
 
  • #26
@PCDBjörn
Du hast Recht, die Ausgabe stimmt nicht zu meinem Text.

Ich habe alle Kombinationen ausprobiert und dann die PHP.ini wieder zurückgestellt. Erst danach habe ich den obigen Post erstellt.

Und ja, ich habe nach jeder Änderung den Apache (ist eine Apache2 in der Version 2.0.48 / PHP 4.3.4) neu gestartet.


Ich habe das ganze jetzt auch mal auf meiner Homepage getestet, da verhält es sich aber leider genauso. Im->Root' Verzeichnis wird die PHP Seite ordnungsgemäß angezeigt, im Testverzeichnis kommt es zum include Fehler.
 
  • #27
Moin,

hast du auch anstelle von <?PHP include(./cgi-bin/base.inc.php); ?> folgendes genommen? :
<?PHP include(cgi-bin/base.inc.php); ?>
 
  • #28
Nein. Aber ich teste das mal.

Gebe nachher dann Bescheid...
 
  • #29
.... :)

Mit der Einstellung
Code:
include_path = .;w:/web/homepage/web

und dem PHP Aufruf
Code:
<?PHP include(cgi-bin/base.inc.php); ?>

funktioniert es. Jetzt muss ich es nur noch auf meinen Webspace hinbekommen, denn da funktioniert es leider noch nicht.
 
  • #30
Jetzt habe ich die von PCDBjörn vorgeschlagene Möglichkeit zum ändern des include_paths mittels .htaccess versucht, aber das führt leider zu einem Internal Server Error :(.
 
  • #31
Hi,

hatten wir ja schon diskutiert, dass es bei den meisten Hostern nicht funktionieren wird. (ab http://www.wintotal-forum.de/?board=22;action=display;start=0;threadid=54074#msg304180)
 
Thema:

Include Problem

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.838
Beiträge
707.961
Mitglieder
51.491
Neuestes Mitglied
haraldmuc
Oben