当我将PHP文件从一个url复制或复制到另一个url时,PHP中的内容会执行。 php文件包含mysqli查询。
我尝试了2个方法,即file_get_contents和php的默认复制功能。两者都将文件从一个文件传输到另一个文件,但复制的PHP文件都显示:
<br />
<b>Fatal error</b>: Call to a member function query() on a non-object in <b>/home/uu/domains/domain.net/public_html/library/folder/index.php</b> on line <b>2</b><br />
方法1:
if ( copy($from.$element_file['file'], $to.$element_file['file']) ) {
chmod($to.$element_file['file'], 0777);
}
方法2:
$content = file_get_contents($from.$element_file['file']);
$new_file = $to.$element_file['file'];
$handle = fopen($new_file, 'w');
file_put_contents($new_file, $content);
原因: 我不是想破解或偷窃任何东西。我已经构建了一个外部库,其中包含我可以在开发新网站时使用的文件,例如小模板(带有index.php的dir,更少的文件和查询文件)。所有的php文件都在同一台服务器上。
答案 0 :(得分:2)
当您复制网址时,您正在为该网址复制服务器的输出!
所以脚本将执行(因为它应该执行以生成输出)
要复制文件内容(脚本本身),您需要从文件服务器或其他提供文件输出的方法复制它
如果文件位于同一服务器上,则应使用文件路径而不是URL
例如,如果您具有访问权限,则可以使用CURL访问目标服务器上的FTP并复制该文件。