我有一个网站,用户可以在其中编写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);
仅当客户端使用斜杠时才会发生错误。 知道为什么会这样吗? ) - :
编辑:
这是其中一个错误:
我尝试导出的代码如下:
/:
令我担心的是,如果我以不同的顺序键入完全相同的字符(:/),那么它们会导出到我的计算机而没有错误。
答案 0 :(得分:1)
我只看到一个错误 - 第24行的readfile(\/105.2.php)
问题 - 所以我测试了它。
$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("/:"))
=> "\"