Ошибка экспорта строки PHP в файл
У меня есть веб-сайт, где пользователь может написать код PHP/HTML и сохранить его на своем компьютере. Все хорошо, пока пользователь не введет косую черту (/).
Файл сохраняется на клиентском компьютере, но вместо сохранения клиентского кода он экспортирует ошибку PHP (файл на компьютере содержит код ошибки PHP). Код сохранения файла следующий:
$content = $_REQUEST['code']; //Get the code
$file = "file.php";
file_put_contents($file, $content); //Writes the content into a file
header('Content-type: text/plain');
header('Content-Disposition: attachment; filename=$file');
readfile(dirname(dirname($con)) . '/'.$file);
Ошибка происходит только тогда, когда клиент использует косые черты. Есть идеи, почему это происходит?)-:
РЕДАКТИРОВАТЬ:
Это одна из тех ошибок:
Код, который я пытался экспортировать, был следующим:
/:
Меня беспокоит то, что если я набираю одни и те же символы в другом порядке (:/), они экспортируются на мой компьютер без ошибок.
1 ответ
Я вижу только одну ошибку - проблема с readfile(\/105.2.php)
в строке 24 - вот я и проверил.
$file = 'file.php';
$con = '/:';
readfile(dirname(dirname($con)) . '/'.$file);
Это дает мне неверный путь \/file.php
как в сообщении об ошибке.
Если я использую $con=':/'
это дает мне правильный путь ./file.php
Я только не знаю что $con
является. Может быть, у вас есть dirname(dirname($content))
в вашем оригинальном коде и $content = $_REQUEST['code'];
=> dirname(dirname($_REQUEST['code']))
=> dirname(dirname("/:"))
=> "\"