网站https://www.openbux.com/仅在一天或一个会话后过期。
有没有办法使用PHP cURL来登录并更改Cookie过期日期,例如一年?
我在使用CAPTCHA的cURL时遇到问题。对此有什么解决方案吗?
我知道我应该使用类似的东西
<?
$cookie_file_path = "C:\path\to\save\cookie.txt";
$agent = "Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.7.12) Gecko/20050915 Firefox/6";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"http://www.example.com/target.php");
curl_setopt($ch, CURLOPT_USERAGENT, $agent);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file_path);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file_path);
curl_setopt($ch, CURLOPT_REFERER, "http://www.google.com");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
//Do not print anything now.
//curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_POSTFIELDS, "login_username=XXXXX&passWord=YYYYY");
$html = curl_exec($ch);
var_dump(urlencode($html));
curl_close();
?>
但是我不能在CAPTCHA中使用它...而且我没有目标URL来发送日期 因为我从这里获得的登录表单https://www.openbux.com/login 像这样
<form action="" method="post">
<input type="hidden" name="token" value="23cc81bca35588e5356bf07a1bb4e04538304e41" />
<fieldset><h1>Please log in<a href="javascript:void(0);" onclick="showK();" title="Show keyboard"><img src="images/keyboard.png" style="float: right; margin-right: 12px; margin-top: 4px;" alt="Show keyboard" border="0"></a></h1>
<div class="formular">
<span class="formular_top"></span>
<div class="formular_inner"> <span><a href="reset" class="lost">Lost Password?</a></span>
<label> <strong>Username:</strong><span class="input_wrapper"> <input name="login_username" id="login_username" type="text" onfocus="text=this" value="" /> </span> </label>
<label> <strong>Password:</strong> <span class="input_wrapper"> <input name="login_password" id="pwd" onfocus="text=this" type="password" /> </span> </label>
<label> <strong>Verification Code:</strong> <span class="input_wrapper" style="width: 49px; float: right; margin-left: 8px; background: url(images/login/input_small.gif) no-repeat;"> <input name="code" type="text" maxlength="4" onfocus="text=this" style="text-transform: uppercase;" /> </span>
<img src="captcha.jpg" height="22" alt="captcha" style="float: right;" /> </label>
<input type="hidden" name="7" value="Israel" />
<ul class="form_menu"><li><span class="button"><span><span><em>SUBMIT</em></span></span>
<input type="submit" name="Login2" value="Login" />
所以我在action=""
的任何网址中都没有。是否有可能允许我使用我的长日期cookie文件自动登录的任何PHP cURL脚本?
答案 0 :(得分:2)
您可以在创建cookiejar文件后手动编辑它。您也可以使用Firefox之类的浏览器登录,然后将cookie数据从浏览器cookie窗口复制到cookiejar文件。您必须将其转换为正确的格式。
关于验证码,发送一个captcha.jpg请求,然后将其写入文件或输出到浏览器,解决它,然后将答案添加到CURLOPT_POSTFIELDS。
答案 1 :(得分:0)
我知道你想要一个可编程的答案,但一般来说,如果一个站点使用验证码,这是一个好兆头,它们实际上并不希望你自动登录并检索在你的网站上使用的信息。
但是,如果您有合理的理由这样做,最简单(并且无疑更安全)的方式是联系其他网站的运营商并询问他们是否有用于远程登录的API或者可以使用其他方式您需要提供所需的数据。
我的两分钱。