PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Übergabe von Variablen



LinuxSozialist
14.01.06, 14:19
Ich habe folgendes Problem. Seit ich auf Debian umgestiegen bin scheint mein Apache2 die Variablen die in der Form ,,www.meine-Domain.de/text.php?text=beispiel.txt" übergebe nicht mehr zu erkennen. In der Datei text.php ist folgender Code:

<?php
include("$text.txt");
?>

Und ich bekomme folgende Fehlermeldung:
-----------------------------
Warning: main(.txt): failed to open stream: No such file or directory in /var/www/apache2-default/text.php on line 41

Warning: main(): Failed opening '.txt' for inclusion (include_path='.:/usr/share/php:/usr/share/pear') in /var/www/apache2-default/text.php on line 41
---------------------------------

michaxyz
14.01.06, 14:30
Hallo,

Der "." ist in php belegt, soviel ich weiß. Schau doch da noch mal nach!

Mfg Michael

stefaan
14.01.06, 14:32
Servus!

Ähm, ja. Wenn die einzubindende Datei nicht überprüfst, werden sich da schnell ein paar nette Kollegen am Server einnisten...
Ist ein riesengroßes Loch, das du da aufreißt...

-) Register_globals wird deaktiviert sein, deswegen ist die Variable leer.
Es heißt nun $_GET['text'] oder $_POST['text'], je nach Übergabe (GET in deinem Fall).

-) Programmierfehler:
Du willst die Datei beispiel.txt einbinden, dein Script verlangt aber beispiel.txt.txt.
Schöner lautet das include( $_GET['text'] . '.txt');

Also überlege dir, wie da noch eine Abfrage einbaust, was eingebunden wird...

Grüße, Stefan

LinuxSozialist
14.01.06, 15:14
Nun, ich habe gesehen, das in meinem Beitrag etwas falsch war, ich habe den Link ohne .txt also ,,www.meine-Domain.de/text.php?text=beispiel" Was Deinen zweiten Teil auschließt, aber wieso mache mich mir mit dieser Weise nen Problem? Es darf doch keiner außer mir dort schreiben. Und wie aktiviere ich Register_globals ?

PierreS
14.01.06, 15:18
Am besten aktivierst Du noch die fopen-wrapper. Dann kann man bequem mit ?text=url eigene Scripte auf Deinem server ausführen.

stefaan
14.01.06, 15:27
Servus!


Und wie aktiviere ich Register_globals ?

Am besten gar nicht (in der php.ini), passe deine Scripts entsprechend mit $_GET und $_POST an.
Oder du machst ein $text = $_GET['text'];
Jedenfalls würde ich vorher alle Variablen irgendwie überprüfen, du weißt ja gar nicht, wie kreativ da manche User werden...

Grüße, Stefan

LinuxSozialist
14.01.06, 15:54
Ok Ok, ich habe schon verstanden. Aber trotzdem vielen danke.

MiGo
14.01.06, 15:54
Deinen zweiten Teil auschließt, aber wieso mache mich mir mit dieser Weise nen Problem? Es darf doch keiner außer mir dort schreiben.
www.meine-Domain.de/text.php?text="../../../etc/shadow"
So ungefähr...