2011-06-20 109 views
1

因此,我正在构建一个使用iframe提交来异步提交/从外部.php服务中提取数据的Web应用程序。我对我的项目有一个新的约束,需要能够拉大量的数据。通常我只是将外部.php服务重定向回我的本地页面,并将数据附加到URL作为查询字符串,但我不认为这是安全的,因为可能有5,000个以上字符长的块数据(更不用说我可能在一个请求中拉起3个“块”)。在PHP中声明一个POST变量

那么我所有的问题都是如何在我的.php服务中声明一个POST变量?另外,如果我声明一个POST变量,它实际上会将它转到我通过Header('Location:someLocation.php')重定向到的页面; (我有一个偷偷摸摸的怀疑,它不会)。

如果这不是最好的方法来解决这个问题,并有一个更好的方式,从.php文件,重定向到一个外部位置与声明POST变量,请让我知道。

***在过去,我已经使用javascript将表单附加到iframe页面,用我需要的填充文本字段,将表单指向外部页面,然后提交它。这不是一个可行的选择,因为.php作为服务运行,因此我放置在其中的任何JavaScript都不会被执行,因为该页面永远不会被浏览器渲染。

最好的问候,

回答

3

利用会话变量。
This should get you started


更新由于下面的评论:

你可以尝试使用cURL送岗位

+0

会话变量不起作用,因为两个.php文件驻留在不同的主机上。就像我说的我试图重定向到一个EXTERNAL位置。尽管谢谢你的回应。 – MoarCodePlz

+1

@MoarCodePlz - 你可以尝试用'cURL'发送帖子 – Neal

+0

是的,Neal,cURL正是我所需要的。谢谢。 – MoarCodePlz

0

你不 “声明” 中的PHP变量后。您只需通过POST提交数据并从$ _POST中检索。

如果你想双方法您服务,以便它可以做GET和POST,你可以这样做:

switch ($_SERVER['REQUEST_METHOD']) { 
    case 'POST': 
     $myvar = $_POST['myvar']; 
     break; 
    case 'GET': 
     $myvar = $_GET['myvar']; 
     break; 
    default: 
     die("Unsupport request method"); 
} 

或者,你可以使用$_REQUEST['myvar']代替,这是GET和POST的组合同时,但最好使用你想要的特定超全局而不是希望事物用_REQUEST正确配置。

+0

我很欣赏这些指针,但我想我可能对我最初的要求太模糊了。我正在寻找一种方法来定制和通过PHP发送http请求。 Neal正确回答了他对cURL php扩展的引用。谢谢您的意见。 – MoarCodePlz