PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : php include - aber wie?


Pagan
12.03.2004, 19:31
Hallo,

da ich gerne Robostats im Forum verwenden möchte, muss ich bzw. müsste ich den befehl:

<?
include($DOCUMENT_ROOT.'/robotstats/robotstats.inc.php');
?>

ja auf eine Seite einbinden die überall gebraucht wird, also dachte ich hauste das Ding in global.php, aber neee... ausser Fehlermeldungen passierte da nichts. :(

Kann mir einer sagen wo ich das unterbringen muss?

MFG Pagan

pogo
12.03.2004, 21:45
Zum Beispiel in das phpinclude_start Template.

global.php war an sich nicht schlecht, nur dann gehört das hier in den Code Hacking Bereich.

Und ohne die Fehlermeldungen können wir auch nicht helfen.

Pagan
12.03.2004, 22:10
Hallo,

nun ja ich habe in phpinclude_start folgendes eingefügt:

ob_start();
include("/robotstats/robotstats.inc.php");
$file = ob_get_contents();
ob_end_clean();


und dann "$file" in footer. So sollte das doch funktionieren oder? :confused:

Tja und dann erscheint immer folgendes:

Warning: Unknown(): open_basedir restriction in effect. File(/robotstats/robotstats.inc.php) is not within the allowed path(s): (/usr/local/httpd/htdocs/1741/1745:.:/usr/share/php:/tmp) in /usr/local/httpd/htdocs/1741/1745/mystik/global.php(386) : eval()'d code on line 2

Warning: Unknown(/robotstats/robotstats.inc.php): failed to open stream: Operation not permitted in /usr/local/httpd/htdocs/1741/1745/mystik/global.php(386) : eval()'d code on line 2

Warning: (null)(): Failed opening '/robotstats/robotstats.inc.php' for inclusion (include_path='.:/usr/share/php') in /usr/local/httpd/htdocs/1741/1745/mystik/global.php(386) : eval()'d code on line 2



Tja...selbst wenn ich mein logo (.gif) so einfügen will, nada! Da kommen auch immer nur fehler meldungen. :(

MFG Pagan

pogo
12.03.2004, 23:08
Ich denke, dass einfach der Pfad zu dem Skript nicht stimmt.

Such mal in der phpinfo() Ausgabe nach

_SERVER["SCRIPT_FILENAME"]

Und bilde dann daraus den absoluten Pfad zu dem Skript.


Könnte vielleicht so sein:

/usr/local/httpd/htdocs/1741/1745/robotstats/robotstats.inc.php

oder so

/usr/local/httpd/htdocs/1741/1745/mystik/robotstats/robotstats.inc.php

Pagan
13.03.2004, 11:34
hallo,

habe mir mal _SERVER["SCRIPT_FILENAME"] und der pfad müste dann
/usr/local/httpd/htdocs/1741/1745/mystik/robotstats/robotstats.inc.php sein. Der ander den du (pogo) vorgeschlagen hast bringt die fehler meldung dass das Objekt nicht auffindbar ist . Ich habe das gaze auch schon mit www.meine_domain.de/robotstats/robotstats.inc.php probiert, jedoch wieder die gleiche fehler meldung wie oben. Was mich jedoch auch gleich an meisten mitverwundert ist das nicht mal ein Bild (gif/jpg) so anzuzeigen ist, da ich erst dachte es liegt an der robotstats.inc.php datei... am Server oder so liegt es nicht das konnte ich mit erfolg (eigene kleine php seite) testen.

Ich habe auf vbulletin.com ne menge post dazu nun gelesen, aber bei den meisten scheint das auch nicht recht zu klappen...:(

Hat den hier jemand noch eine Idee?


MFG Pagan

codemonkey
13.03.2004, 11:38
Wenn ich das mit dem Pfad jetzt richtig erkannt habe, müsste die Datei so erreicht werden können:

ob_start();
include("/mystik/robotstats/robotstats.inc.php");
$file = ob_get_contents();
ob_end_clean();

Pagan
13.03.2004, 12:03
Hallo

also bei codemonkey's idee kommt folgendes:


Warning: Unknown(): open_basedir restriction in effect. File(/mystik/robotstats/robotstats.inc.php) is not within the allowed path(s): (/usr/local/httpd/htdocs/1741/1745:.:/usr/share/php:/tmp) in /usr/local/httpd/htdocs/1741/1745/mystik/global.php(386) : eval()'d code on line 2

Warning: Unknown(/mystik/robotstats/robotstats.inc.php): failed to open stream: Operation not permitted in /usr/local/httpd/htdocs/1741/1745/mystik/global.php(386) : eval()'d code on line 2

Warning: (null)(): Failed opening '/mystik/robotstats/robotstats.inc.php' for inclusion (include_path='.:/usr/share/php') in /usr/local/httpd/htdocs/1741/1745/mystik/global.php(386) : eval()'d code on line 2



ich habe auch include mit require ersetzt, jeden pfad der möglich ist... doch nein es geht nicht. Aber, nun kommts, wenn ich eine einfach php seite, also nur text, erscheint der text auch richtig. Und habe ich mal aus spass www.web.de included geht auch... doch wen ich ein bild außerhalb des z.b das logo hier von vbulletin-gemany.com include kommt sowas wie: '+#+#+*#§%$65445dadgai*'* usw. Seitenweise sprich reiner mist.

Ach ja, ...*snief*...ich bin zu alt für solche Sachen... :D

Wiso geht das alles nicht?

MFG pagan

anime_layer
14.03.2004, 18:21
require () oder include () ist das gleiche. Der Unterschied liegt darin, dass require das Ausführen des Skripts bei einem Fehler abbricht, während include einfach einen Fehler ausgibt.

Wichtig ist auch, dass wenn du eine http://-Adresse include () übergibst, das PHP-Skript vor dem include geparsed wird und im Fall eines lokalen Pfades erst beim include ().

Versuch doch mal:
<?php
$test = file_exists ("/robotstats/robotstats.inc.php");
if ($test) { print 'OK'; } else { print 'Datei nicht gefunden!'; }

print '<br>Pfad des aktuellen Skripts: '.$_SERVER['DOCUMENT_ROOT'];
?>