2016-10-22 124 views
-1

我需要发送POST请求称为global.php另一个文件,为了这个,我尝试下面这段代码:接收PHP代码的POST请求

$url = 'global.php'; 
$data = array('stack' => 'overflow'); 

$options = array(
    'http' => array(
     'header' => "Content-type: application/x-www-form-urlencoded\r\n", 
     'method' => 'POST', 
     'content' => http_build_query($data) 
    ) 
); 

$context = stream_context_create($options); 
$result = file_get_contents($url, false, $context); 

var_dump($result); 

这是global.php文件应该处理该请求:

if(isset($_POST['stack'])){ 
echo 'exists'; 
}else{ 
echo 'error'; 
} 

的问题是,而不是命令var_dump ($ result);显示存在,它显示了PHP代码?我怎么解决这个问题?

为什么当我尝试做使用ajax它返回我的文字存在,而不是PHP代码同样的事情?

回答

2

你应该使用完整的URL,通过服务器来处理PHP文件。

$url = 'http://YOURURL.com/global.php'; 

AJAX调用是从浏览器到绝对URL,这就是为什么你正在得到所需的响应。

+0

就我而言,我使用本地主机......而这两个文件:index.php文件(即有POST代码)和global.php(有文)在同一个文件夹...在结束两个他们会去我的服务器在线...在这种情况下,我会收到的PHP代码或结果? – Lacrifilm

+1

如果您提供了file_get_content的完整URL,那么您将获得结果。如果你只提供文件名,那么你会得到PHP代码。 –