【发布时间】:2013-06-01 21:34:09
【问题描述】:
我有一个网站,用户可以在其中编写 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);
该错误仅在客户端使用斜杠时发生。 知道为什么会这样吗? )-:
编辑:
这是其中一个错误:
我尝试导出的代码如下:
/:
让我担心的是,如果我以不同的顺序 (:/) 键入完全相同的字符,那么它们会毫无错误地导出到我的计算机。
【问题讨论】:
-
那是你的实际代码吗?你的第二个标题有错字。看看你的报价。
-
使用函数将
/替换为_,就在门口。加上BIOS中提到的header('Content-Disposition: attachment; filename=$file);中缺少的引用@ -
对不起,你是对的,我错过了报价。那是实际的代码,但我不小心删除了发布代码的引号。发布错误!!!请帮帮我。
-
您的错误表明您在第 24 行遇到了
readfile(\/105.2.php)的问题(带有 '\' 和 '/' 的路径?!)。readfile(dirname(dirname($con)) . '/'.$file);在第 24 行吗?将print_r($con);放在readfile()之前,然后向我们展示结果。 -
由于客户端正在使用 HTML/PHP 代码,如果我 print_r 代码它会显示相同代码的 HTML 结果。但是,如果我 print_r 我之前提到的示例 (/:) 结果是 /: ...它会打印它应该如何导出。是的,readfile() 在第 24 行