0

我正在尝试运行托管在不同服务器上的 php 函数。以下是相关代码:

在 firstdomain.com/handler.php 中:

include 'http://www.seconddomain.com/functions.php';
$disp_keyword = doQuery( 0, $keyword, null );

在 seconddomain.com/functions.php 中:

function doQuery( $code, $arg1, $arg2 ) {
    mail( 'myemail@aol.com', 'doquery entered', 'test' );
}

我怎样才能让它工作?

4

2 回答 2

2

分配的服务器默认设置将停止此操作,因为它非常不安全,但是如果您不 100% 信任源,使用 eval 可以轻松解决它同样不安全的问题。

而不是使用

include 'http://www.seconddomain.com/functions.php';

利用:

<?php 
//get file content, save it .txt on the serving server so its not interpreted,
// you could even encrypt it then base 64 it to keep it safe, then reverse the process
$content = file_get_contents('http://www.seconddomain.com/file.txt');
eval ("?>$content");
?>

或者您可以使用 FGC 获取文件,将其保存,然后使用普通包含,您选择的任何方法都应该非常小心文件的来源。

于 2012-04-29T02:50:16.380 回答
1

第二台服务器上的文件需要输出 PHP 源代码,而不仅仅是运行它。当您包含一个远程文件时,就像在您的浏览器中进入那里,但随后显示的代码会运行。

所以,最简单的方法就是去掉<?phpand?>标签。但是请记住,这会使您的源代码对外界可见 - 特别是任何安全性都会丢失。

于 2012-04-29T02:23:34.927 回答