Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何允许将PHP文件上载到服务器而不执行它们_Php_File Upload - Fatal编程技术网

如何允许将PHP文件上载到服务器而不执行它们

如何允许将PHP文件上载到服务器而不执行它们,php,file-upload,Php,File Upload,我想让用户能够上传和下载PHP文件,而无需执行它们, 我需要关闭特定目录的PHP,使其表现为纯文本 我试过了,但这是一个正确的解决方案吗 RemoveHandler .php .phtml .php3 RemoveType .php .phtml .php3 php_flag engine off 您可以使用代理脚本来处理此问题。 在.htaccess文件中,您可以将文件夹中的所有请求重定向到以下位置: http://example.com/uploads/myfilewithadminacc

我想让用户能够上传和下载PHP文件,而无需执行它们, 我需要关闭特定目录的PHP,使其表现为纯文本

我试过了,但这是一个正确的解决方案吗

RemoveHandler .php .phtml .php3
RemoveType .php .phtml .php3
php_flag engine off
您可以使用代理脚本来处理此问题。 在
.htaccess
文件中,您可以将文件夹中的所有请求重定向到以下位置:

http://example.com/uploads/myfilewithadminaccess.php

.htaccess的来源
在
index.php
中,只需解析文件并给出输出

index.php的源代码:

小提琴: 注意:在允许URL传递之前,您需要清理输入。因此,人们可能会注射
。/
,等等。这些都应该小心


希望这对您有所帮助,而且非常好。

您也可以将其重命名为
.phps
。。。。。。。只是为了省钱什么原因@用户1464822@БаааааСачааааааа107P但由于它是通过
.htaccess
访问的,所以不会影响对吗?如何在路径中直接发送
。/
?这将产生影响,因为它将公开您可能不想公开的文件。还请注意,您可以使用mod_rewrite将此类脚本对用户透明。@eis这就是我所说的,使用
。htaccess
您需要传递参数。啊!!!请仔细阅读答案!:)
http://example.com/uploads/index.php?file=myfilewithadminaccess.php
RewriteEngine On
RewriteRule ^([^/]*)$ ./index.php?file=$1 [L]
<?php
    header("Content-type: text/html");
    $filename = (file_exists("uploads/" . $_GET["file"])) ? "uploads/" . $_GET["file"] : "error.txt";
    $filecont = file_get_contents($filename);
    echo htmlspecialchars($filecont);
?>