所以我正在构建一个使用iframe提交的Web应用程序,以异步方式提交/从外部.php服务中提取数据。我对我的项目有一个新的约束,它需要能够提取大量数据。通常我只是将外部.php服务重定向回我的本地页面,并将数据作为查询字符串附加到URL,但我不认为这是安全的,因为有可能有5,000多个字符长的块数据(更不用说我可能会在一个请求中提取3个“块”)。
那么,我的问题是,如何在我的.php服务中声明POST变量?另外,如果我声明一个POST变量,它实际上会通过Header重定向到的页面('Location:someLocation.php'); (我怀疑它不会)。
如果这不是解决此问题的最佳方法,并且有更好的方法,从.php文件,重定向到具有声明的POST变量的外部位置,请告诉我。
***过去我使用javascript将表单附加到iframe页面,用我需要的内容填写文本字段,将表单指向外部页面,然后提交。这不是一个可行的选择,因为.php作为服务运行,因此我放在其中的任何javascript都不会被执行,因为页面永远不会被浏览器呈现。
致以最诚挚的问候,
答案 0 :(得分:3)
答案 1 :(得分:0)
你没有在PHP中“声明”一个post变量。您只需通过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正确配置内容。