Carl: require-Problem

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

  1. 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

  2. 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

    --
    Sic Luceat Lux!
    1. 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

      1. 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

        --
        Sic Luceat Lux!