我正在参加一个选美比赛,我要求获得提名。
提名表格需要我的详细信息,以及我的提名人的详细信息。
我的提名人可能会在我的包含我详细信息的电子邮件和提名表之间切换时遇到问题,并且可能会阻止他们首先填写表格。
我想出的解决方案是创建一个HTML页面(我可以100%控制它),它已经包含了我预先填写的详细信息,这样提名人就不会在填写我的详细信息时感到困惑,我所要做的就是询问他们自己的详细信息。
现在,我想让我的HTML表格将详细信息解析到另一个网站(比赛组织者的网站)上,并自动填写表格,所有提名者所要做的就是点击比赛网站上的提交。我完全无法控制比赛的网站,因此我无法添加或更改任何编程代码。
如何将我自己的HTML页面(100%在我的控制下)中的数据解析到第三方PHP页面上?
任何编码的例子都是值得赞赏的。
谢谢xx
除非竞赛组织者使用CORS授予您权限,否则同源政策使这一点不可能实现(在这种情况下,您可以将他们的网站加载到一个框架中,并使用JavaScript对其进行修改,以在支持的浏览器中操纵其DOM)。
他们使用的表单将表单数据提交给邮件脚本,该脚本通过检查referer(至少)进行保护。您可以在PHP中使用类似cURL的东西来欺骗像这样的裁判(未测试):
function get_web_page( $url,$curl_data )
{
$options = array(
CURLOPT_RETURNTRANSFER => true, // return web page
CURLOPT_HEADER => false, // don't return headers
CURLOPT_FOLLOWLOCATION => true, // follow redirects
CURLOPT_ENCODING => "", // handle all encodings
CURLOPT_USERAGENT => "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)", // who am i
CURLOPT_CONNECTTIMEOUT => 120, // timeout on connect
CURLOPT_TIMEOUT => 120, // timeout on response
CURLOPT_MAXREDIRS => 10, // stop after 10 redirects
CURLOPT_POST => 1, // i am sending post data
CURLOPT_POSTFIELDS => $curl_data, // this are my post vars
CURLOPT_SSL_VERIFYHOST => 0, // don't verify ssl
CURLOPT_SSL_VERIFYPEER => false, //
CURLOPT_REFERER => "http://http://fashionawards.com.mt/nominationform.php",
CURLOPT_VERBOSE => 1 //
);
$ch = curl_init($url);
curl_setopt_array($ch,$options);
$content = curl_exec($ch);
$err = curl_errno($ch);
$errmsg = curl_error($ch) ;
$header = curl_getinfo($ch);
curl_close($ch);
$header['errno'] = $err;
$header['errmsg'] = $errmsg;
$header['content'] = $content;
return $header;
}
$curl_data = "nameandsurname_nominator=XXXX&id_nominator=XXX.....etc....";
$url = "http://www.logix.com.mt/cgi-bin/FormMail.pl";
$response = get_web_page($url,$curl_data);
print '<pre>';
print_r($response);
print '</pre>';
在上面写着$curl_data = "nameandsurname_nominator=XXXX&id_nominator=XXX.....etc....";
的行中,您可以根据原始形式中的名称设置post变量
因此,你可以制作自己的表格提交给他们的邮件脚本&让一些字段填充您需要的内容。。。
小心:使用这种技术,你可能很容易被取消资格或遇到法律麻烦!收件人可能很容易注意到表格已被泄露!