require-Problem
Carl
- php
0 AndreD0 Thoralf Knuth0 Alex
Hallo
ich versuche, um mir etwas Odnung zu schaffen, die Dateien meiner Seite in mehreren Ordnern zu lagern, und nur die wichtigsten werden im Stammverzeichniss gelagert.
Auf dem Lokalen Server daheim (PHP 4.2.1) läuft alles klasse, aber sobald ich die Dateien auf meinen Webspace (4.3.0) bekomme ich folgende Fehlermeldungen:
Warning: main() [function.main]: open_basedir restriction in effect. File(../index.php?files=db_error) is not within the allowed path(s): (/www/htdocs/dsgdgd/) in /www/htdocs/dsgdgd/connections/include_text.php on line 18
Warning: main(index.php?files=db_error) [function.main]: failed to create stream: Operation not permitted in /www/htdocs/dsgdgd/connections/include_text.php on line 18
Fatal error: main() [function.main]: Failed opening required 'index.php?files=db_error' (include_path='.:..') in /www/htdocs/dsgdgd/connections/include_text.php on line 18
In dieser Zeile 18 steht folgendes:
require("index.php?files=db_error");
die datei connections/include_text.php wird in folgender Datei aufgerufen:
<table BACKGROUND="../images/bg1.gif" width="95%" align="center"
cellpadding="0" cellspacing="0">
<tr>
<td align="center" class="mainwindow">
<br>
<?php
//Definition der richtigen Eintrags
$textid = 101;
//Aufbau der Verbindung zur Datenbank
require("config/db_connect.php");
//Aufruf der Datei, die den richtigen Text aus der Texte-datenbank raussucht
require("connections/include_text.php");
?>
<br><br>
</td>
</tr>
</table>
Ich hab jetzt schon eine Weile lang rumprobiert, woran es denn liegen könnte, aber ich komme einfach zu keiner Lösung. Habt Ihr vielleicht eine Idee? An den Servereinstellungen kann ich eigentlich nichts verändern, da es sich um einen Paidspace handelt.
Gruss
Carl
Hallo Carl,
Warning: main() [function.main]: open_basedir restriction in effect. File(../index.php?files=db_error) is not within the allowed path(s): (/www/htdocs/dsgdgd/) in /www/htdocs/dsgdgd/connections/include_text.php on line 18
^^^^^^--- Gehört des so?
Hast Du Dir mal die $_SERVER["DOCUMENT_ROOT"] ausgeben lassen, ob Dein Pfad für den require so passt?
Mehr fällt mir da auf die Schnelle auch nicht ein...
Gruss AndreD
Hallo Carl,
Auf dem Lokalen Server daheim (PHP 4.2.1) läuft alles klasse
Das überrascht mich.
require("index.php?files=db_error");
require bindet Dateien ein. Ab v4.3.0 auch von anderen Rechnern. Aber zumindest beim Einbinden vom eigenen Server kannst Du das Fragezeichen nicht benutzen. Oder heisst die Datei genauso, wie sie da steht, also inkl. Fragezeichen etc.? ;)
Gruss, Thoralf
Hallo
man braucht da doch auch kein ? oder doch?
wenn man vo dem require die variable files definiert geht es doch auch weil der Code doch einfach von PHP in die HAuptdatei "reingeschrieben" wird oder irre ich mich da?
Alex
Hallo Alex,
wenn man vo dem require die variable files definiert geht es doch auch weil der Code doch einfach von PHP in die HAuptdatei "reingeschrieben" wird oder irre ich mich da?
Yep, es wird einfach ein Stück in die aufrufende Datei eingesetzt.
Schau Dir mal http://de3.php.net/manual/de/function.include.php an, dort ist es m.E. gut erklärt und mit Beispielen. :)
Der Query-String (Das mit dem ?) ist nur interessant, wenn Du über http externe Dateien einbinden willst, was ich aber aus Sicherheits- und Performancegründen für nicht sinnvoll halte.
Gruss, Thoralf