使用ftp细节通过php上传php文件是执行php而不是上传原始php文件


Uploading php file via php using ftp details is executing php and not uploading original php file

我正在尝试使用ftp细节通过PHP上传PHP文件,如下所述。

// retrieve name of the file to be uploaded
$source_file=$site_url."IMlobby/IMlobby".$_SESSION['zip_name']."/".$filename;
$fp = @fopen($source_file, 'r');
$destination_file=$filename;
//$upload = ftp_fput($conn_id, $destination_file, $fp, FTP_ASCII);
$upload = ftp_put($conn_id, $destination_file, $source_file, FTP_ASCII);
// check upload status
if(!$upload){
$errorMSG.="FTP upload has failed!" ;

这里的问题是,这些文件包含应该在远程服务器上的PHP代码,但PHP正在执行,而我在远程服务器中得到的只是HTML。

请帮忙!

如果文件是本地托管的,请不要按其URL打开文件。请改用其本地路径。

如果您不知道本地路径是什么,请使用$_SERVER["DOCUMENT_ROOT"]查找。

只需以.phps结尾命名文件(或者更好的做法是,在上传之前自动重命名)

如果允许服务器执行php文件上传,这是一个主要的安全漏洞。您可以读取服务器上httpd守护进程可读的所有文件。