Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: cUrl. авторизация возвращает куки, а во внутрь не пускает

Сообщения:  [1-5] 

 
 автор: Lelik   (30.09.2010 в 15:27)   письмо автору
 
   для: heed   (30.09.2010 в 06:27)
 

и туда-ли обычно перекидывает на /log/user.php?log=1&from_p=
после входа через панель входа на сайте туда, да.

вот так форма входа в html выглядит

<form action=/log/index.php method=post>
    <tr><td width=48><span class=t1>Логин:</span></td><td><input type=text size=14 name=log value="" class=s style="width: 100px"></td></tr>
    <tr><td width=48><span class=t1>Пароль:</span></td><td><input type=password size=14 name=passwd value="" class=s style="width: 100px"></td></tr>
    <tr height=4><td><img src=/images/1.gif width=1 height=4 alt=""></td></tr>
    </table>
    <span class=t1><input type=checkbox name=remember>&nbsp;Запомнить меня на этом компьютере</span>
    <input type=hidden  name="enter" value="enter" ><input type=hidden  name="from_p" value="" ><input type=submit value="   Войти   " class=c>
    <br><br>
</form>

  Ответить  
 
 автор: heed   (30.09.2010 в 06:27)   письмо автору
 
   для: Lelik   (30.09.2010 в 03:26)
 

а без передачи пароля с логином? :) я-бы затёр куки в посте, а-то вдруг чего
не соображу сколько сщас времени по гринвичу
и туда-ли обычно перекидывает на /log/user.php?log=1&from_p=

просто CURLOPT_POST должен быть установлен в 1 или в true
и бывает в исходном коде ещё поля какие-нибудь , сам не смотрел, интернет перестал шевелиться, эту страничку 10 минут открывал.

  Ответить  
 
 автор: Lelik   (30.09.2010 в 05:22)   письмо автору
 
   для: heed   (30.09.2010 в 04:06)
 

ответ после запроса на авторизацию такой:

HTTP/1.1 302 Found
Server: nginx/0.8.38
Date: Thu, 30 Sep 2010 01:21:44 GMT
Content-Type: text/html; charset=WINDOWS-1251
Connection: keep-alive
X-Powered-By: PHP/5.2.0
Set-Cookie: PHPSESSID=57acdee7ec6c609e2958f41e30b6f569; path=/; domain=.lardi-trans.com
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Set-Cookie: mobile1=deleted; expires=Wed, 30-Sep-2009 01:21:43 GMT
Set-Cookie: mobile2=deleted; expires=Wed, 30-Sep-2009 01:21:43 GMT
Set-Cookie: mobile1=deleted; expires=Wed, 30-Sep-2009 01:21:43 GMT; path=/
Set-Cookie: mobile2=deleted; expires=Wed, 30-Sep-2009 01:21:43 GMT; path=/
Location: /log/user.php?log=1&from_p=
Content-Length: 0



print_r($set) =>
Array
(
    [0] => Array
        (
            [0] => Set-Cookie: PHPSESSID=c7bd6881442b9024e72bdd3e7dcf4aeb;
            [1] => Set-Cookie: mobile1=deleted;
            [2] => Set-Cookie: mobile2=deleted;
            [3] => Set-Cookie: mobile1=deleted;
            [4] => Set-Cookie: mobile2=deleted;
        )

    [1] => Array
        (
            [0] => PHPSESSID=c7bd6881442b9024e72bdd3e7dcf4aeb
            [1] => mobile1=deleted
            [2] => mobile2=deleted
            [3] => mobile1=deleted
            [4] => mobile2=deleted
        )

)

после второго обращения уже к внутренней странице, в результате страница, которая просит атворизоваться

  Ответить  
 
 автор: heed   (30.09.2010 в 04:06)   письмо автору
 
   для: Lelik   (30.09.2010 в 03:26)
 

а хоть заглядывали чего там в $result и $set ?
и по идее $login, $pass и значения параметров cookies должны быть urlencoded
<?
header
('content-type: text/plain');

$ch curl_init($url);

curl_setopt_array($ch, array(
 
CURLOPT_HEADER => 1,
// CURLOPT_NOBODY => 1,
 
CURLOPT_TIMEOUT => 15
CURLOPT_NOPROGRESS 
=> 1,
CURLOPT_HTTPHEADER => array(
'cookie: name=admin; passwd=12345; test=%21%21%21',
 
'useragent: Opera 9/1 (WinXP; U; ru)',
    
'referer: http://google.com/',
    
'x_forwarded_for: 127.5.5.5')
    
/*,
CURLOPT_POST => '',
CURLOPT_POSTFIELDS  => ''
*/
));
curl_exec($ch);

  Ответить  
 
 автор: Lelik   (30.09.2010 в 03:26)   письмо автору
 
 

За основу взял код отсюдаго

не могу понять как отдать куки (в каком виде, пробовал уже и через 'Set-Cookie: ...', и просто значения отдавал, без заголовка) и чего не хватает этому сайту :)

<?php
$login 
'login';
$pass '***';

$ch curl_init("http://www.lardi-trans.com/log/");
curl_setopt ($chCURLOPT_USERAGENT"User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10");
curl_setopt ($chCURLOPT_TIMEOUT30);
curl_setopt ($chCURLOPT_RETURNTRANSFER1); 
curl_setopt ($chCURLOPT_HEADER1);
curl_setopt ($chCURLINFO_HEADER_OUT1);
curl_setopt ($chCURLOPT_SSL_VERIFYPEER0);
curl_setopt ($chCURLOPT_SSL_VERIFYHOST0);
curl_setopt ($chCURLOPT_HTTPHEADER, array('Expect:'));
curl_setopt ($chCURLOPT_REFERER'http://www.lardi-trans.com/');
curl_setopt($chCURLOPT_POSTFIELDS"enter=enter&form_p=&log=".$login."&passwd=".$pass);
$result curl_exec ($ch);
curl_close($ch);

preg_match_all ('|Set-Cookie: (.*);|isU',$result,$set);

$ch curl_init("http://www.lardi-trans.com/add_gruz.php");
curl_setopt ($chCURLOPT_USERAGENT"User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10");
curl_setopt ($chCURLOPT_TIMEOUT30);
curl_setopt ($chCURLOPT_RETURNTRANSFER1); 
curl_setopt ($chCURLOPT_HEADER1);
curl_setopt ($chCURLINFO_HEADER_OUT1);
curl_setopt ($chCURLOPT_SSL_VERIFYPEER0);
curl_setopt ($chCURLOPT_SSL_VERIFYHOST0);
curl_setopt ($chCURLOPT_HTTPHEADER, array('Expect:'));
curl_setopt ($chCURLOPT_REFERER'http://www.lardi-trans.com/log/user.php');
curl_setopt ($chCURLOPT_COOKIE$set[0][0]);
curl_setopt ($chCURLOPT_COOKIE$set[0][5]);
curl_setopt ($chCURLOPT_COOKIE$set[0][6]);

$result curl_exec ($ch);
curl_close($ch);
print_r ($result);
?>

кстати, $set[0][1] — $set[0][4] у куки значения ставятся как deleted, это что значит?

  Ответить  

Сообщения:  [1-5] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования