Пишу бота для закрытых ресов. Нужна помошь разобраться с авторизицацией
Я отправляю данные логин и пароль, потом скачиваю пагу, но там нписано что я незалогинен.. авторизация там по сессиям как работь с ней?
Может кто наводку даст?
ps: сорри за каламбур в изложении...
Речь идёт о веб-приложении или нет? На каком языке пишется?
Опишите методологию логина поэтапно, пожалуйста.
Чтобы попытаться решить проблему надо сначала понять что мы имеем.
Страница содержит такую форму:
<form method="post" action="./ucp.php?mode=login">
<input class="post" type="text" name="username" size="10" />
<input class="post" type="password" name="password" size="10" />
<input type="checkbox" class="radio" name="autologin" />
<input type="submit" class="btnmain" name="login" value="Prihlásenie" />
Я так отправлю постом данные на ./ucp.php?mode=login
Код:
<?
include ("./Snoopy/Snoopy.class.php");
$snoopy = new Snoopy;
$submit_url = "http://domen/ucp.php?mode=login";
$submit_vars["username"] = "user";
$submit_vars["password"] = "pass";
$submit_vars["autologin"] = 1;
$submit_vars["submit"] = 1;
$snoopy->submit($submit_url,$submit_vars);
print $snoopy->results;
?>
include ("./Snoopy/Snoopy.class.php");
$snoopy = new Snoopy;
$submit_url = "http://domen/ucp.php?mode=login";
$submit_vars["username"] = "user";
$submit_vars["password"] = "pass";
$submit_vars["autologin"] = 1;
$submit_vars["submit"] = 1;
$snoopy->submit($submit_url,$submit_vars);
print $snoopy->results;
?>
Для начала попробуйте передавать правильный реферер.
Если это не помогает, то попробуйте создать у себя на локалке эту же формочку, заполнить её и отправить по абсолютному адресу нужного сайта. Если и там не работает, то, очевидно, что проблема кроется где-то в логике самой формы. Не в снупи искать надо тогда
Цитата: Dolonet
пага - это что такое?
А это такое сленговое словечко.
Именно поэтому знаю форумы на которых запрещено использовать сленг и нахожу это привильным. Лично я бы категорически запрещал использовать его новичкам.
Цитата: AlexNew
пага это page - страничка)
Я так отправлю постом данные на ./ucp.php?mode=login
Я так отправлю постом данные на ./ucp.php?mode=login
Может опробуешь использовать вот это?
http://pear.php.net/package/HTTP_Client
Вот готовый скрипт авторизации на сайте по сессии(вдруг кому понадобиться):
Код:
<?
include ("./Snoopy/Snoopy.class.php");
$snoopy = new Snoopy;
$snoopy->agent = "(compatible; MSIE 4.01; MSN 2.5; AOL 4.0; Windows 98)";
$snoopy->referer = "http://yourdomen/";
$submit_url = 'http://yourdomen/ucp.php?mode=login';
$submit_vars["username"] = "user";
$submit_vars["password"] = "pass";
$submit_vars["login"] = "login";
$submit_vars["redirect"] = "";
$submit_vars["autologin"] = true;
$submit_vars["sid"] = "";
$snoopy->submit($submit_url,$submit_vars);
//print $snoopy->results;
preg_match('/sid=([a-z0-9]+)/',$snoopy->results,$out);
//попробовать подствть сессию
$snoopy->fetch("http://yourdomain:) :) :) :) /viewtopic.php?f=62&t=22188&sid=".$out[1]);
echo $snoopy->results;
?>
include ("./Snoopy/Snoopy.class.php");
$snoopy = new Snoopy;
$snoopy->agent = "(compatible; MSIE 4.01; MSN 2.5; AOL 4.0; Windows 98)";
$snoopy->referer = "http://yourdomen/";
$submit_url = 'http://yourdomen/ucp.php?mode=login';
$submit_vars["username"] = "user";
$submit_vars["password"] = "pass";
$submit_vars["login"] = "login";
$submit_vars["redirect"] = "";
$submit_vars["autologin"] = true;
$submit_vars["sid"] = "";
$snoopy->submit($submit_url,$submit_vars);
//print $snoopy->results;
preg_match('/sid=([a-z0-9]+)/',$snoopy->results,$out);
//попробовать подствть сессию
$snoopy->fetch("http://yourdomain:) :) :) :) /viewtopic.php?f=62&t=22188&sid=".$out[1]);
echo $snoopy->results;
?>
Цитата: alekciy
Может опробуешь использовать вот это?
http://pear.php.net/package/HTTP_Client
http://pear.php.net/package/HTTP_Client
как-то он мне непонятен( мало документирован...
вообщем с первого взягляда непонял..
Мало документированн? Наспешил!!
спасибо, читаю )