Archiv verlassen und diese Seite im Standarddesign anzeigen : Übergabe von Variablen
LinuxSozialist
14.01.06, 13: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
---------------------------------
Hallo,
Der "." ist in php belegt, soviel ich weiß. Schau doch da noch mal nach!
Mfg Michael
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, 14: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 ?
Am besten aktivierst Du noch die fopen-wrapper. Dann kann man bequem mit ?text=url eigene Scripte auf Deinem server ausführen.
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, 14:54
Ok Ok, ich habe schon verstanden. Aber trotzdem vielen danke.
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...
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.