我遇到使用PHP发送表单的问题。
我有一个带有脚本的domain1.com页面和第二个带有第一个域掩码的domain2.com。
第二个域domain2.com在浏览器中可见,但该脚本在domain1.com下运行
我尝试将domain2.com的$ _POST数据发送给自己,但是无法发送$ _POST。
表单头看起来像这样:
<form method="post" action="http://<?php echo $_SERVER["HTTP_HOST"].$_SERVER["REQUEST_URI"] ?>">
然后我尝试var_dump $ _POST,但它是NULL。
我的问题是:如何从掩码域中捕获$ _POST数据?是否有一些黑客攻击?
任何想法都有帮助,感谢所有人。
例1:
<form method="post" action="http://domain2.com">
<input type="hidden" name="data" value="1" />
<input type="submit" value="send" />
</form>
例2:
<form method="post" action="http://domain1.com">
<input type="hidden" name="data" value="1" />
<input type="submit" value="send" />
</form>
答案 0 :(得分:1)
简短的回答是,你不能。
使用框架进行遮罩。它使用用于加载框架集的URL的路径段,并将其与不同的基本URL一起用作框架的src。这只能触发GET请求。
如果您完全控制生成框架集的服务器,那么您可以将数据输出到框架集的HTML中,使用JavaScript读回,生成包含数据的表单然后提交(仍然与JS)。
那将是一个可怕的黑客,如果你对服务器有那么多的控制权,那么你可能会使用正确托管的域名。
答案 1 :(得分:1)
简单的底线。表单中的action=
参数是$_POST
将被解析/处理/等等的地方。
框架很便宜,更像是毫无价值(其他方式做这些不是框架的东西)。
AJAX和javascript是你的朋友。
如果没有JS,您可以将domain1上的表单提交给domain2,其中header()
重定向回domain1。
黑客,是的。
可能会有用吗?
我可以签名,不。
答案 2 :(得分:0)
你做不到。这违反了跨域政策