如何使用 SSL 和 Cookie 通过 Curl 登录
问题:
登录使用 Curl 的网站,特别是 barnesandnoble.com,并不成功。返回页面时没有错误,但电子邮件字段填充了输入的初始电子邮件。将登录网址更改为非 HTTPS 网站(即 eBay)即可成功登录。
原因:
潜在原因包括:
解决方案:
以下代码解决了这些问题并演示了使用 Curl、SSL 和 cookie 成功登录:
<p>//...<br>// 为简洁起见,省略了之前的卷曲选项<br>//...</p><p>// 获取表单字段<br>$fields = getFormFields($content);</p><p>// 设置电子邮件和密码<br>$fields['emailAddress'] = $EMAIL;<br>$fields['acctPassword'] = $PASSWORD; </p><p>// 获取 x 值<br>if (preg_match('/op.asp?x=(d )/i', $content, $match)) {</p><p> }</p><p>// 设置带有 x 值的登录 URL<br>$LOGINURL = "https://cart2.barnesandnoble.com/mobileacct/op.asp?x=$x";</p><p> // 设置 POST 字段<br>$POSTFIELDS = http_build_query($fields);</p><p>// 更改 URL 为登录 URL<br>curl_setopt($ch, CURLOPT_URL, $LOGINURL);</p><p> // 设置发布选项<br>curl_setopt($ch, CURLOPT_POST, 1);<br>curl_setopt($ch, CURLOPT_POSTFIELDS, $POSTFIELDS);</p><p>// 执行登录<br>$result = curl_exec( $ch); </p><p>print $result;</p><p>//...<br>
说明:
通过实现通过这些更改,尽管使用 HTTPS 且 cookie 处理存在潜在差异,Curl 仍可以成功登录。
以上是如何使用Curl登录带有SSL和Cookie的网站?的详细内容。更多信息请关注PHP中文网其他相关文章!