Constantin Kiesling: include(); Problem

Hallo liebe Leute!

Ich habe ein Problem mit dem include(); Befehl in PHP und wäre für Hilfe sehr dankbar!

Folgendes: Ich benutze für meine Umfragen ein CGI Script namens QPoll, man kann in einem Adminbereich die Umfragen erstellen und dann per SSI in beliebige Dateien einfügen.

z.B. so:

<!--#include virtual="cgi-bin/qpoll/qpoll31.pl?poll_id=6&action=replace"-->

In diesem Fall include ich die Umfrage mit der ID 6... aber das ist nur nebensächlich.

Mein Problem: Ich will nun kein SSI verwenden, sondern das ganze mit PHP machen, weil ich nunmal *.php Endungen einheitlich benutze und SSI ja *.shtm oder *.shtml braucht. Ich dachte mir, das müsste doch mit dem PHP Befehl "include();" machbar sein.

z.B. so:

<?php

include ("cgi-bin/qpoll/qpoll31.pl?poll_id=6&action=replace");

?>

Aber es funzt nicht! Ich finde das komisch, es ist ja mehr oder weniger der gleiche Vorgang wie beim SSI... Es erscheint immer folgender Error:

Warning: open_basedir restriction in effect. File is in wrong directory in /home/confixx/web605/html/umfrage.php on line 175

Warning: Failed opening 'cgi-bin/qpoll/qpoll31.pl?poll_id=7&action=replace' for inclusion (include_path='.:/usr/share/php') in /home/confixx/web605/html/umfrage.php on line 175

Meine Frage: Was mache ich falsch? Wie muss der Code aussehen, dass es klappt? Bitte helft mir!

Ein großes DANKESCHÖN schon im Voraus!

Euer
Consti

  1. Hallo,

    was Du brauchst, ist virtual: http://www.php.net/de/virtual

    Grüße,

    Christian

    1. Hallo nochmal...

      Lieber Sönke! Es tut mir leid, falls ich dich genervt habe, das wollte ich keineswegs. Umso mehr danke für deine Antwort!

      Lieber Christian! Auch ein großes Dankeschön für deine Antwort auf mein Problem!

      lG
      Consti

  2. Folgendes: Ich benutze für meine Umfragen ein CGI Script namens QPoll, man kann in einem Adminbereich die Umfragen erstellen und dann per SSI in beliebige Dateien einfügen.

    Wieso wollen neuerdings alle per include() CGI-Anwendungen importieren? Ist das der neue Trend?

    <!--#include virtual="cgi-bin/qpoll/qpoll31.pl?poll_id=6&action=replace"-->

    Na, immerhin schonmal nicht exec :)

    Mein Problem: Ich will nun kein SSI verwenden, sondern das ganze mit PHP machen, weil ich nunmal *.php Endungen einheitlich benutze und SSI ja *.shtm oder *.shtml braucht.

    Aktiviere in der .htaccess "options +multiviews", dann kannst Du die Endungen ganz weglassen. Die meisten Besucher interessiert es übrigens wenig bis garnicht, ob da nun .php, .html, .shtml oder .tralala hintendran hängt - man beschäftigt sich lieber mit der Seite ansich.

    Ich dachte mir, das müsste doch mit dem PHP Befehl "include();" machbar sein.

    include ("cgi-bin/qpoll/qpoll31.pl?poll_id=6&action=replace");

    Aber es funzt nicht! Ich finde das komisch, es ist ja mehr oder weniger der gleiche Vorgang wie beim SSI...

    Nein, PHP und SSI sind zwei grundverschiedene Dinge. PHP-include() hat deshalb nichts mit SSI-include-virtual zu tun.
    Lies Dir die SSI-Anleitung nochmal genau durch, dort steht unter anderem, daß SSI eine eigene HTTP-Anfrage innerhalb des Servers stellt, um eine Datei einzufügen. Das bedeutet, daß diese einzufügende Datei exakt so "ausgeführt" wird, als wenn sie von außen per Browser abgerufen werden würde.

    Der PHP-Befehl include() liest die Datei hingegen lediglich direkt ein, klebt also quasi aus mehreren Textdateien eine große zusammen, die dann vom PHP-Interpreter ausgeführt wird.

    Mehr:

    Gruß,
      soenk.e