| Модераторы, пожалуйста поправьте тему например на curl и multipart/form-data, что то не получилось создать с первого раза, а после обновления записалась 1.
Здравствуйте, прошу помощи у знающих людей...
Поиск по форуму не дал вразумительных результатов.
итак,
не знаю почему но у интересующего меня сайта, форма авторизации передается через multipart/form-data, а в сети на эту тему очень мало информации. в основном только примеры для отправки файлов, а мне нужно просто авторизоваться и пройтись по сайту загрузив нужную страницу.
форма следующая (можно зайти как через обычный HTTP, так и через HTTPS)
<div style="position: absolute; margin-left: -165px; width:330; height: 200px; left: 50%; top:20%; text-align:center;">
<script language="JavaScript">
function check(no_check)
{
var is_disable;
}
</script>
<table width="100%" border="0" cellspacing="0" cellpadding="0"><tr><td ><b class="rtop">
<b class="r1" style="background:#AAA"></b><b class="r2" style="background:#AAA;border-left:2px solid #AAA; border-right:2px solid #AAA">
</b><b class="r3" style="background:#AAA;border-left:1px solid #AAA; border-right:1px solid #AAA"></b><b class="r4" style="background:#AAA;border-left:1px solid #AAA; border-right:1px solid #AAA">
</b></b></td></tr><tr><td align="center" style="background:#AAA; border-left:1px solid #AAA;border-right:1px solid #AAA; padding: 0 10px 5px 10px;color:#FFF; ">
<b>Личный кабинет</b></td></tr><tr><td valign="top" style="background:#F0F0F7; border-left:1px solid #AAA;border-right:1px solid #AAA; padding: 1px 5px 1px 5px; color:#000;">
<table valign="top" class="form_table" height="100%" width="100%" border="0"><tr><td>
<form name="login" id="login" action="/office.php" method="post" enctype="multipart/form-data">
<table class="form_table" width="100%" border="0"><tr><td align="right" width="30%">
<b>Логин</td><td align="left"> <input size="32" maxlength="32" name="login" id="_login" type="text" value="">
<br></td></tr><tr><td align="right">
<b>Пароль</td><td align="left"> <input size="32" maxlength="32" name="password" id="_password" type="password" value="">
<br></td></tr><tr><td align="right">
</td><td align="left"> <input class="checkbox" name="remember" id="_remember" type="checkbox" value="true" onClick="check(false)" >
<label style="cursor:pointer;" for="_remember"> запомнить логин </label><br></td></tr></td></tr></table>
<div align="center"><button type="submit" class="lbutton" style="" onClick="document.login._action_.value = 'authorization';" >
Вход</button>
</div></td></tr></table>
<input type="hidden" name="_onchange_">
<input type="hidden" name="_action_">
<input type="hidden" name="_multirow_">
<input type="hidden" name="_this_form_name_" value="login">
</form></td></tr><tr><td ><b class="rbottom">
|
пробовал много разных вариантов, ничего не получается, то ошибка 401, то просто обратно грузиться форма авторизации без каких либо ошибок curl.
вот например,
$postData = array();
// POST-ы беру либо со своей формы либо с ихней формы.
$postData[ 'login' ] = $_POST['login'];
$postData[ 'password' ] = $_POST['password'];
$postData[ 'remember' ] = $_POST['remember'];
$postData[ '_onchange_' ] = $_POST['_onchange_'];
$postData[ '_action_' ] = $_POST['_action_'];
$postData[ '_multirow_' ] = $_POST['_multirow_'];
$postData[ '_this_form_name_' ] = $_POST['_this_form_name_'];
$url = "http://my.site.ru/office.php";
$refer = "http://my.site.ru/office.php";
$ch = curl_init();
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5 (.NET CLR 3.5.30729) WebMoney Advisor)");
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_COOKIESESSION, TRUE);
$root_directory = dirname(__FILE__);
$cookie_file = $root_directory."/curl.cookie";
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file);
//curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
//curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
$res = curl_exec($ch);
echo $res;
echo "<br>";
//print_r($postData);
echo "<br>";
print_r(curl_getinfo($ch));
echo "\n\ncURL error number:" .curl_errno($ch);
echo "\n\ncURL error:" . curl_error($ch);
curl_close($ch);
exit;
|
ответ вроде этого,
Array ( [url] => http://my.site.ru/office.php [content_type] => text/html [http_code] => 200 [header_size] => 206 [request_size] => 372 [filetime] => -1 [ssl_verify_result] => 0 [redirect_count] => 0 [total_time] => 0.3429 [namelookup_time] => 0.01808 [connect_time] => 0.084186 [pretransfer_time] => 0.084211 [size_upload] => 0 [size_download] => 3075 [speed_download] => 8967 [speed_upload] => 0 [download_content_length] => -1 [upload_content_length] => 0 [starttransfer_time] => 0.27257 [redirect_time] => 0 ) cURL error number:0 cURL error:
пожалуйста, помогите составить правильно запрос.
в куках после запроса curl.cookie ничего не пишется.
при просмотре через лису формы, какие данные и как нужно отсылать, пример запроса,
(Request-Line) POST /office.php HTTP/1.1
Host my.site.ru
User-Agent Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5 (.NET CLR 3.5.30729) WebMoney Advisor
Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language ru,en-us;q=0.7,en;q=0.3
Accept-Encoding gzip,deflate
Accept-Charset windows-1251,utf-8;q=0.7,*;q=0.7
Keep-Alive 300
Connection keep-alive
Referer http://my.site.ru/office.php
Cookie __utma=204350985.253457457.1259051669.1259051669.1259054017.2; __utmz=204350985.1259051669.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); __utmc=204350985; PHPSESSID=2f6655b1316cfdfeedda7271b5385e9e
Content-Type multipart/form-data; boundary=---------------------------175532470527091
Content-Length 788
-----------------------------175532470527091
Content-Disposition: form-data; name="login"
test
-----------------------------175532470527091
Content-Disposition: form-data; name="password"
test
-----------------------------175532470527091
Content-Disposition: form-data; name="remember"
true
-----------------------------175532470527091
Content-Disposition: form-data; name="_onchange_"
-----------------------------175532470527091
Content-Disposition: form-data; name="_action_"
authorization
-----------------------------175532470527091
Content-Disposition: form-data; name="_multirow_"
-----------------------------175532470527091
Content-Disposition: form-data; name="_this_form_name_"
login
-----------------------------175532470527091--
пожалуйста помогите... | |