以下HTML表单成功发布到远程外部服务器,但PHP脚本中稍微更安全的cURL帖子失败。我没有通过我的脚本收到任何错误信息,并且远程方无法提供任何错误信息,所以我的问题实际上归结为两个帖子请求之间的关键区别是什么。
获胜者:
<form name="frm" action="http://wow.aspx" method="post">
<input type="HIDDEN" name="q1" value="charlesmanson">
<input type="HIDDEN" name="q2" value="batman@home.net">
<input type="HIDDEN" name="q3" value="20110428092741">
<input type="HIDDEN" name="q4" value="6E1AAB44-7508-4BF4-ADA8-0535E880A996">
<input type="submit" value="Go for it!" />
</form>
失败者:
$curlSession = curl_init('http://nowbitch.aspx');
curl_setopt ($curlSession, CURLOPT_POST, 1);
curl_setopt ($curlSession, CURLOPT_POSTFIELDS, "q1=$userLogin&q2=$userRecord[email]&q3=$timeStamp&q4=$hash");
curl_setopt ($curlSession, CURLOPT_FOLLOWLOCATION, 1);
curl_exec ($curlSession);
curl_close ($curlSession);
失去了真实参数以保护内疚。
答案 0 :(得分:0)
尝试这个逻辑,它有助于调整curl请求。主要是CURLOPT_RETURNTRANSFER
和curl_getinfo
。
$ch = curl_init();
...
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($ch);
$info = curl_getinfo($ch);
if ($result === false || $info['http_code'] != 200) {
// ERROR
} else {
// OK
}
答案 1 :(得分:0)
1。)POST to Action:http://wow.aspx:所以curl_init('http://wow.aspx');
2。)使用REFERER:curl_setopt($ch, CURLOPT_REFERER, 'http://nowbitch.aspx');