Alt 06.06.2011, 08:13:30   #1 (permalink)
schwankend^^

ID: 215354
Lose-Remote
Reallife

Reg: 22.05.2006
Beiträge: 1.505
Gsus ist einfach richtig nettGsus ist einfach richtig nettGsus ist einfach richtig nettGsus ist einfach richtig nett
Standard Problem bei include

Hallo,

ich habe gerade ein kleines Problem bei einem include und weiß leider nicht so genau, woran das liegt... Hoffentlich könnt ihr mir helfen:

Also:
folgendes funktioniert nicht:
PHP-Code:
1:
include('/dev/proflex/admin/templates/site.tpl'); 
Dabei bekomme ich folgenden Fehler:
Code:
1:
2:
3:
Warning: include(/dev/proflex/admin/templates/site.tpl) [function.include]: failed to open stream: No such file or directory in C:\xampp\htdocs\dev\proflex\admin\module\admins.php on line 61 Warning: include() [function.include]: Failed opening '/dev/proflex/admin/templates/site.tpl' for inclusion (include_path='.;C:\xampp\php\PEAR') in C:\xampp\htdocs\dev\proflex\admin\module\admins.php on line 61
Allerdings funktioniert folgendes:
PHP-Code:
1:
include($_SERVER['DOCUMENT_ROOT'].'/dev/proflex/admin/templates/site.tpl'); 
Allerdings sind die Links doch identisch oder irre ich mich da jetzt? Das / am Anfang eines Links steht doch auch für das Root-Vereichnis oder nicht?

Hoffentlich wisst ihr weiter...

mfg
Gsus
Gsus ist offline   Mit Zitat antworten
Gesponsorte Links
Alt 06.06.2011, 08:20:11   #2 (permalink)
Erfahrener Benutzer

ID: 272843
Lose-Remote

Reg: 01.02.2007
Beiträge: 1.814
marac genießt hohes Ansehenmarac genießt hohes Ansehenmarac genießt hohes Ansehenmarac genießt hohes Ansehenmarac genießt hohes Ansehenmarac genießt hohes Ansehenmarac genießt hohes Ansehenmarac genießt hohes Ansehenmarac genießt hohes Ansehenmarac genießt hohes Ansehenmarac genießt hohes Ansehen
Standard

Zitat:
Zitat von Gsus Beitrag anzeigen
Das / am Anfang eines Links steht doch auch für das Root-Vereichnis oder nicht?
Für das Root-Verzeichnis deines Dateisystems, das aber (zum Glück) nicht zwingend identisch mit dem Root-Verzeichnis deines öffentlichen "DOCUMENT_ROOT" ist...
Dein Document_Root ist offensichtlich "C:\xampp\htdocs", mit dem ersten Link versuchst du aber auf "C:\dev\proflex\admin\templates\site.tpl" zuzugreifen...
Und nun gebe ich ab zur Werbung:
marac ist offline   Mit Zitat antworten
Alt 06.06.2011, 13:18:37   #3 (permalink)
Multitalent
Benutzerbild von joschilein

ID: 9301
Lose-Remote

joschilein eine Nachricht über ICQ schicken
Reg: 05.05.2006
Beiträge: 1.414
joschilein genießt hohes Ansehenjoschilein genießt hohes Ansehenjoschilein genießt hohes Ansehenjoschilein genießt hohes Ansehenjoschilein genießt hohes Ansehenjoschilein genießt hohes Ansehenjoschilein genießt hohes Ansehenjoschilein genießt hohes Ansehenjoschilein genießt hohes Ansehenjoschilein genießt hohes Ansehenjoschilein genießt hohes Ansehen
Standard

Zitat:
Zitat von Gsus Beitrag anzeigen
Allerdings sind die Links doch identisch oder irre ich mich da jetzt? Das / am Anfang eines Links steht doch auch für das Root-Vereichnis oder nicht?
Nö, tut es nicht. Kannst du auch ganz einfach nachprüfen
PHP-Code:
1:
2:
3:
$dateiname 'gibtesnurindiesemordner.txt';
include(
$dateiname);
include(
'/'.$dateiname); 
Beide Varianten greifen die selbe Datei und geben sie entweder aus oder werfen die bekannten Fehlermeldungen


Heute schon gepixelt
joschilein ist offline   Mit Zitat antworten
Alt 06.06.2011, 16:18:29   #4 (permalink)
Woohooo!
Benutzerbild von chrissel

ID: 211634
Lose-Remote

chrissel eine Nachricht über ICQ schicken
Reg: 20.04.2006
Beiträge: 4.412
chrissel genießt hohes Ansehenchrissel genießt hohes Ansehenchrissel genießt hohes Ansehenchrissel genießt hohes Ansehenchrissel genießt hohes Ansehenchrissel genießt hohes Ansehenchrissel genießt hohes Ansehenchrissel genießt hohes Ansehenchrissel genießt hohes Ansehenchrissel genießt hohes Ansehenchrissel genießt hohes Ansehen
Standard

Setz ein Punkt vor dem ersten Slash, dann nimmt er das aktuelle Verzeichnis.

PHP-Code:
1:
include('./datei'); 
anstatt
PHP-Code:
1:
include('/datei'); 
chrissel ist offline   Mit Zitat antworten
Alt 06.06.2011, 16:32:52   #5 (permalink)
Erfahrener Benutzer

ID: 272843
Lose-Remote

Reg: 01.02.2007
Beiträge: 1.814
marac genießt hohes Ansehenmarac genießt hohes Ansehenmarac genießt hohes Ansehenmarac genießt hohes Ansehenmarac genießt hohes Ansehenmarac genießt hohes Ansehenmarac genießt hohes Ansehenmarac genießt hohes Ansehenmarac genießt hohes Ansehenmarac genießt hohes Ansehenmarac genießt hohes Ansehen
Standard

Zitat:
Zitat von chrissel Beitrag anzeigen
Setz ein Punkt vor dem ersten Slash, dann nimmt er das aktuelle Verzeichnis.
Würde in diesem Fall nicht viel helfen, denn wie man der Fehlermeldung entnehmen kann, befindet sich das Skript mit dem include in "dev\proflex\admin\module", die zu inkludierende Datei aber in "dev\proflex\admin\templates"...
Müsste dann also eher
PHP-Code:
1:
include('../templates/site.tpl'); 
heißen...
Und nun gebe ich ab zur Werbung:
marac ist offline   Mit Zitat antworten
Alt 06.06.2011, 16:36:17   #6 (permalink)
Woohooo!
Benutzerbild von chrissel

ID: 211634
Lose-Remote

chrissel eine Nachricht über ICQ schicken
Reg: 20.04.2006
Beiträge: 4.412
chrissel genießt hohes Ansehenchrissel genießt hohes Ansehenchrissel genießt hohes Ansehenchrissel genießt hohes Ansehenchrissel genießt hohes Ansehenchrissel genießt hohes Ansehenchrissel genießt hohes Ansehenchrissel genießt hohes Ansehenchrissel genießt hohes Ansehenchrissel genießt hohes Ansehenchrissel genießt hohes Ansehen
Standard

Zitat:
Zitat von marac Beitrag anzeigen
Würde in diesem Fall nicht viel helfen, denn wie man der Fehlermeldung entnehmen kann, befindet sich das Skript mit dem include in "dev\proflex\admin\module", die zu inkludierende Datei aber in "dev\proflex\admin\templates"...
Da magst du Recht haben, habe mir das nicht so genau angeschaut.
Als Tipp: In deiner index.php (wenn über diese alles läuft) direkt als Konstante den Pfad zum Hauptordner setzen, z.B. unter PATH. Somit kannst du beim includen folgendes benutzen:
PHP-Code:
1:
include(PATH 'dev/proflex/admin/templates/site.tpl'); 
(wahlweise auch mit Slash vor dem dev, je nachdem wie du PATH abspeicherst.

Geändert von chrissel (14.06.2011 um 19:43:46 Uhr)
chrissel ist offline   Mit Zitat antworten
Alt 06.06.2011, 19:36:09   #7 (permalink)
schwankend^^

ID: 215354
Lose-Remote
Reallife

Reg: 22.05.2006
Beiträge: 1.505
Gsus ist einfach richtig nettGsus ist einfach richtig nettGsus ist einfach richtig nettGsus ist einfach richtig nett
Standard

Zitat:
Zitat von chrissel Beitrag anzeigen
PHP-Code:
1:
include(PATH 'dev/proflex/admin/templates/site.tpl'); 
(wahlweise auch mit Slash vor dem dev, je nachdem wie du PATH abspeicherst.
Aber ist das dann nicht prinzipiell das gleiche als wenn ich:
PHP-Code:
1:
include($_SERVER['DOCUMENT_ROOT'].'dev/proflex/admin/templates/site.tpl'); 
schreiben würde? Wäre eine extra Konstante dann nicht ein wenig überflüssig?
Gsus ist offline Threadstarter   Mit Zitat antworten
Alt 14.06.2011, 10:38:21   #8 (permalink)
Benutzer

ID: 420707
Lose-Remote

Reg: 13.06.2011
Beiträge: 83
NeppNepp
Standard

Lustigerweise funktioniert es bei mir und meinem XAMPP ....



Folgende 2 Testdateien :


Quellcode blubber.php :

PHP-Code:
1:
2:
3:
<?php
include("/laber.php");
?>
Quellcode laber.php :

PHP-Code:
1:
2:
3:
<?php
echo "laber.php erfolgreich inkludiert";
?>

Bei Aufruf von blubber.php erscheint bei mir dann auf dem Bildschirm :

laber.php erfolgreich inkludiert.

Die blubber.php befindet sich in einem Unterordner, die laber.php im Document Root.


Funktioniert fehlerfrei.

Kann es sein, dass das an der Apache Konfigurationsdatei httpd.conf liegt ?



NeppNepp
NeppNepp ist offline   Mit Zitat antworten
Alt 14.06.2011, 16:47:38   #9 (permalink)
bekämpft die Mächte des Bösen
Benutzerbild von theHacker

ID: 69505
Lose-Remote

theHacker eine Nachricht über ICQ schicken theHacker eine Nachricht über AIM schicken theHacker eine Nachricht über MSN schicken theHacker eine Nachricht über Yahoo! schicken theHacker eine Nachricht über Skype™ schicken
Reg: 20.04.2006
Beiträge: 20.468
theHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes Ansehen
Standard

Unter / liegt sicher keine PHP-Datei auf einem normalem System
theHacker ist offline   Mit Zitat antworten
Alt 14.06.2011, 17:09:52   #10 (permalink)
return void
Benutzerbild von ice-breaker

ID: 93995
Lose-Remote

ice-breaker eine Nachricht über ICQ schicken
Reg: 27.04.2006
Beiträge: 6.026
ice-breaker genießt hohes Ansehenice-breaker genießt hohes Ansehenice-breaker genießt hohes Ansehenice-breaker genießt hohes Ansehenice-breaker genießt hohes Ansehenice-breaker genießt hohes Ansehenice-breaker genießt hohes Ansehenice-breaker genießt hohes Ansehenice-breaker genießt hohes Ansehenice-breaker genießt hohes Ansehenice-breaker genießt hohes Ansehen
Standard

Zitat:
Zitat von NeppNepp Beitrag anzeigen
Bei Aufruf von blubber.php erscheint bei mir dann auf dem Bildschirm :

laber.php erfolgreich inkludiert.

Die blubber.php befindet sich in einem Unterordner, die laber.php im Document Root.


Funktioniert fehlerfrei.
Unter Windows kann das vllt funktionieren, da erkannt werden könnte, dass es sich um einen relativen Pfad und keinen absoluten Pfad handelt (da der Laufwerksbuchstabe fehlt). Durch den include_path könnte es dann funktionieren, da das aktuelle Verzeichnis in diesem aufgelistet ist.
Unter Linux wird es aber nicht funktionieren, da der führende Slash eine gültige Angabe eines absoluten Pfades ist.


chrissel hat dir bereits genannt wie man es richtig macht.


"Die Wahrheit entgeht dem, der nicht mit beiden Augen sieht." -Orici
ice-breaker ist offline   Mit Zitat antworten
Antwort

Gesponsorte Links

Anzeige


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[PHP] If & include Problem smf Programmierung 2 16.10.2010 02:29:03
Problem Include birwac66 Programmierung 8 29.05.2007 17:41:49
habe ein kleines include problem ronny6098 Programmierung 11 06.05.2007 19:31:33
[PHP] include problem birwac66 Programmierung 7 02.11.2006 10:53:00
[PHP] include-Schleife ? | mehrmals ein Script per include einbinden Trancer Programmierung 3 27.05.2006 18:34:02


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:08:07 Uhr.