|
|
|
| Здравствуйте. Сразу скажу, что с хакингом тут нет дела. Так вот, провожу авторизацию напрямую, без использования хтмл формы, от сюда взял скрипт http://softtime.ru/info/task.php?id_article=87.
Делаю такое:
<?
$name = "somel";
$pass = "55555";
$action = "Login";
$lang = "ru";
$hostname = "somehost.ru";
$fp = fsockopen($hostname,80) or die("Error");
$data = "User=".urlencode($name)."&Password=".urlencode($pass)."&Action=".urlencode($action)."&Lang=".urlencode($lang)."\r\n\r\n";
$headers = "POST /index.pl HTTP/1.1\r\n"
."Host: $hostname\r\n"
."Content-type: application/x-www-form-urlencoded\r\n"
."Content-Length: ".strlen($data)."\r\n\r\n";
fwrite($fp,$headers.$data);
while(!feof($fp))
echo fread($fp,1024);
fclose($fp);
function get_from_file($url) {
$h = fopen($url,"r") or die("open error: $url");
$data_r = "";
while($data = fgets($h))
{
$data_r .= $data;
}
fclose($h);
return $data_r;
}
echo get_from_file("http://somehost/index.pl");
?>
|
Когда отсылаю заголовки, получаю:
HTTP/1.1 302 Moved
Date: Tue, 04 Mar 2008 20:36:35 GMT
Server: Apache/1.3.37 (Unix) mod_perl/1.29 mod_ssl/2.8.28 OpenSSL/0.9.7e-p1
X-Powered-By: OTRS 2.0.4 - Open Ticket Request System (http://otrs.org)
Set-Cookie: Session=109f49e0e6efbe948ec2c78fd6aeec4613; path=/
location: /index.pl?Session=109f49e0e6efbe948ec2c78fd6aeec4613
Transfer-Encoding: chunked
Content-Type: text/html; charset=utf-8;
53
document <a href="/index.pl?&Session=109f49e0e6efbe948ec2c78fd6aeec4613">moved</a>
0
|
Но когда дальше пробую открыть страницу, то открывается форма для логина, хотя должно отображатся уже собственно контент пользователя. Т.е. дальше авторизация теряется. Почему? Помогите плиз!!! Спасибо!
ПС. Нет возможности потестить работу этого скрипта, но данные правильные ввожу и заголовки такие возвращаются тогда, когда успешно прошла сама авторизация | |
|
|
|
|
|
|
|
для: Саша
(05.03.2008 в 00:04)
| | > Но когда дальше пробую открыть страницу...
Каким образом? Этим же самым скриптом? | |
|
|
|
|
|
|
|
для: Саня
(05.03.2008 в 00:22)
| | Вам после залогинивания нужно запросить страницу
/index.pl?Session=109f49e0e6efbe948ec2c78fd6aeec4613
не забыв при этом передать куки
Session=109f49e0e6efbe948ec2c78fd6aeec4613 | |
|
|
|
|
|
|
|
для: Саня
(05.03.2008 в 00:24)
| | >Вам после залогинивания нужно запросить страницу
>/index.pl?Session=109f49e0e6efbe948ec2c78fd6aeec4613
>не забыв при этом передать куки
>Session=109f49e0e6efbe948ec2c78fd6aeec4613
Да, я пробовал так делать
.....
while(!feof($fp))
$r2 .= fread($fp,1024);
preg_match("#/index.pl\?Session=(.*)$#m",$r2,$match);
fclose($fp);
setcookie("Session",$match[1]);
echo get_from_file("http://zmina.ukrtelecom.net/index.pl?Session=$match[1]");
|
Но говорит, что не верный Session. Или я ни так сделал? | |
|
|
|
|
|
|
|
для: Саша
(05.03.2008 в 10:13)
| | Попробйте черех cURL - он сам возьмет куки отошлет ее если нужно | |
|
|
|