Autor Beitrag
traceurmicha
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 160
Erhaltene Danke: 9

Win XP SP2, Win 7 Pro., Ubuntu 9, Debian 5
C#, ASP.NET, MSSQL, PHP(Microsoft Visual Studio 2010 Ultimate, SharpDevelop 4, Microsoft SQL Server2008 Express, Eclipse for PHP)
BeitragVerfasst: Di 16.04.13 15:42 
Mahlzeit an alle,
Also ich spiel grad ein wenig mit PHP rum, und jetzt komm ich nicht weiter.

In der index.php hab ich folgendes:

ausblenden PHP-Quelltext
1:
2:
3:
include("vars.php");
include("config.php");
include($templatePath."header.php");


In der config.php stehen nur leere variablen, daher ist diese erstmal unwichtig.
Die "vars.php" wird included. Allerdings die header.php nicht.

Meine Frage: Warum wird die header.php nicht included?
Ich hoffe ihr könnt mir helfen.


Hier noch ein Ausschnit aus der vars.php:
ausblenden PHP-Quelltext
1:
2:
3:
4:
$domain  = "sub.meine-domain.de/";
$templatePath = $domain."template/";
$templateStylePath = $templatePath."style/";
$styleFile = $templateStylePath."design.css";


header.php:
ausblenden PHP-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
<html>
<head><title>Titel</title>
<link rel="stylesheet" href="<?php echo $styleFile; ?>" type="text/css" media="all" />
</head><body>
<div id="top">

</div>
<div id="left">

</div>
<div id="middle">

_________________
Programmieren ist ein Rennen zwischen den Softwareentwicklern, die versuchen größere und bessere idiotensichere Programme zu schreiben und dem Universum, welches versucht größere und bessere Idioten zu produzieren. Zur Zeit liegt das Universum in Führung.
jfheins
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 867
Erhaltene Danke: 144

Win7
VS 2013, VS2015
BeitragVerfasst: Di 16.04.13 18:06 
Der Pfad passt halt nicht. von innerhalb des Skripts solltest du auf andere Dateien mit lokalen Pfaden zugreufen und nicht über die Domain. Lass' dir mal $_SERVER["PHP_SELF"] ausgeben, dann weißt du wie so ein Pfad aussehen kann. Der teil mit "sub.domain.de" hat da auc jeden Fall nichts zu suchen.

Fall dabei keine Fahlermeldung kommt, hat PHP höchstwahrscheinlich die Datei per HTTP abgerufen, was eine andere Instanz von PHP dazu gebracht hat, die Datei zu interprtieren, was aber keine Ausgabe erzeugt hat. Dieser Leerstring wurde dann von der ersten Instanz included. Passiert dann halt nix :mrgreen:
trm
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 485
Erhaltene Danke: 19

Windows 7x64
Delphi 7
BeitragVerfasst: So 05.05.13 21:15 
Huhu.

Ich möchte mich da mal mit dranhängen.

Mit welcher Funktion kann ich denn die Variable $pfadvorher korrekt festlegen?

ausblenden PHP-Quelltext
1:
2:
3:
4:
5:
6:
<?PHP

 $pfad = dirname($_SERVER["PHP_SELF"]); //ergibt z.B.: /www/test
 $pfadvorher = dirname($pfad.'/..'); //ergibt auch wieder /www/test sollte aber /www ergeben

?>


Ist denn dirname in dem Fall vielleicht falsch?

_________________
In Erfurt gibt es eine Pension, in der es gemütlich ist, Google einfach nach Pension Fiege ;)
Regan
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 2157
Erhaltene Danke: 72


Java (Eclipse), Python (Sublimetext 3)
BeitragVerfasst: So 05.05.13 22:36 
Du brauchst realpath.
trm
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 485
Erhaltene Danke: 19

Windows 7x64
Delphi 7
BeitragVerfasst: So 05.05.13 23:45 
user profile iconRegan hat folgendes geschrieben Zum zitierten Posting springen:
Du brauchst [url=php.net/manual/de/fu....php]realpath[/url].


Danke für den Tipp, klappt aber leider nicht.
Hintergrund ist, dass ich unter einer Windowsumgebung programmiere, dort erzeugt dann realpath ein Konstrukt mit Windowspfaden ( c:\www\test ).

Solch ein Pfad kann aber blöderweise für einige Sachen ( img src ) nicht genutzt werden.

Auf dem Onlineserver wird ein Unix eingesetzt.

Die zweite Sache ist der Backslash. ( \ vs. / ). Dies könnte ich dies mittels der Konstante DIRECTORY_SEPERATOR umgehen.

Hast Du noch eine Idee :) ?

_________________
In Erfurt gibt es eine Pension, in der es gemütlich ist, Google einfach nach Pension Fiege ;)
Regan
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 2157
Erhaltene Danke: 72


Java (Eclipse), Python (Sublimetext 3)
BeitragVerfasst: Mo 06.05.13 09:53 
user profile icontrm hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconRegan hat folgendes geschrieben Zum zitierten Posting springen:
Du brauchst [url=php.net/manual/de/fu....php]realpath[/url].


Solch ein Pfad kann aber blöderweise für einige Sachen ( img src ) nicht genutzt werden.

Dafür ist er auch nicht da. Der relative Pfad hat immer Root (bei Windows: C, bei Linux /) als Stammobjekt. Es macht auch keinen Sinn, die relative Angabe des src-Attributs von einer PHP-Datei abhängig zu machen. Dies liegt daran, dass diese PHP-Datei nicht im Stammverzeichnis der Webseite liegen muss. Wenn sie in einem Unterverzeichnis liegt, dann hast du schon ein Auflöseproblem.
Auf der Seite findest du auch Kommentare. Du brauchst die Funktion aus diesem Kommentar.
trm
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 485
Erhaltene Danke: 19

Windows 7x64
Delphi 7
BeitragVerfasst: Mo 06.05.13 13:53 
Huhu Regan,

vielen Dank für Deine erneute Hilfe.

Leider war es immer noch nicht das, was ich gesucht hatte. Dieses Konstrukt hatte ich schonmal getestet.

Mein Problem war übrigens ein ganz anderes, wie ich festgestellt habe.

Ich habe meine Verzeichnisse:

/www/ <- Basisverzeichnis1 (beeinhaltet eine index.php)
/www/inhalt/ <- Dort liegen Dateien, deren Inhalte dargestellt werden
/www/admin/ <- Adminbereich, welcher direkt eine Verwaltung bereitstellte, war somit Basisverzeichnis2 aber nur für den Adminmodus (beeinhaltet eine index.php)

Wenn ich nun im Adminmodus Dateien einbinden wollte, war immer der Pfad falsch, weil das Basisverzeichnis eine Ebene höher lag.

Das Fazit jetzt ist, dass ich alles über das Basisverzeichnis1 parse und damit klappt es auch wieder mit den Pfadangaben. Eine direkte Ansteuerung der index.php im Basisverzeichnis2 habe ich unterbunden :)

Eine schöne Woche,

viele Grüße
Mathias

_________________
In Erfurt gibt es eine Pension, in der es gemütlich ist, Google einfach nach Pension Fiege ;)