Ошибка экспорта строки 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("/:")) => "\"

Другие вопросы по тегам