Примитивный скрипт вставления строки в форму html-страницы и её сабмит

Статус
В этой теме нельзя размещать новые ответы.
после авторизации штатно броузером
кукис уже хранятся у него
их можно взять и забить прямо в скрипт
установив доп. заголовок
PHP:
curl_setopt($ch, CURLOPT_HTTPHEADERS, "Cookie: куки_из_броузера");
взять их значения очень легко - для Firefox существует аддон TamperData, для IE - IE developer toolbar
Смотрим запросы, ловим заголовок Cookie и забираем
 
Касаемо CURLOPT_HTTPHEADERS :
видимо надо было заменить на CURLOPT_HTTPHEADER

в итоге сделал так :

curl_setopt($ch, CURLOPT_HTTPHEADER, "Cookie: 5PaZpHDHo47UEd715uQE8bMvgbM83Cx6ZVfNlteXvj19K89P2Xb88x3oWPxXasd9");


и в этом случае выдаёт:

Warning: curl_setopt() [function.curl-setopt]: You must pass either an object or an array with the CURLOPT_HTTPHEADER, CURLOPT_QUOTE, CURLOPT_HTTP200ALIASES and CURLOPT_POSTQUOTE arguments in T:\home\localhost\1\1.php on line 12
 
опечатался
CURLOPT_HTTPHEADER

(справка по функции curl_setopt)
 
Нашёл заголовок
CURLOPT_COOKIE : Содержимое заголовка "Cookie: ", который будет отправлен с HTTP запросом.

curl_setopt($ch, CURLOPT_COOKIE, "5PaZpHDHo47UEd715uQE8bMvgbM83Cx6ZVfNlteXvj19K89P2Xb88x3oWPxXasd9");

ошибка исчезла, но так на той форме ввода пароля и остаёмся.. Хотя потом вставляю в адресную строку ссылку на панель управления и я уже на па неле управления.. то есть куки в браузере сохранены, из ie dev toolbar их я опять же взял и засунул в скрипт, но обойти авторизацию не получается ((
 
куки это обычно пара переменная=значение
так и нужно копировать, всю строку целиком
 
judgefog написал(а):
а url нужен из формы, как я писал - action
например на главной яндекса это (красным)

а если у меня в форме :
то что вводить в
$url =
?


Объясню всю ситуацию :
Страница на которой я вручную делаю сабдомен:

когда я создаю в сабдомен то ввожу в форме с
и именем инпута name=subdomain

то сабдомен создаётся и урл страницы в строке браузера не меняется, а сотаётся тот же, то есть

в форме имеются несколько полей типа hidden, быть может их надо как то употре***ть...

Не подскажете, что вводить в такой ситуации ?

То есть надо показать как action="CMD_SUBDOMAIN" так и вобщем-то сам урл сайта



------

ввёл в итоге
$url = "https://hosting.ru:2222/CMD_SUBDOMAIN";
и также обозначил все hidden инпуты таким образом:
$postData['action'] = "create";
$postData['domain'] = "arianna.dp.ua";

Всё работает! Спасибо judgefog !
 
да, все скрытые поля отсылать аналогично логину и паролю
 
Вот пример который делаю

PHP:
<?

$fp=fsockopen("ssl://members.satgate.ru",443);


$hostname='members.satgate.ru';
$path1='/';
$buffer='';

$fp = fsockopen("ssl://".$hostname,443,$errno, $errstr, 120) or die("can't connect");
$out  = "GET https://$hostname$path1 HTTP/1.1\r\n";  
$out .= "Host: $hostname\r\n";  
$out .= "Referer: $hostname\r\n";     
$out .= "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)\r\n";  
$out .= "Connection: Close\r\n";  
$out .= "\r\n";  
fwrite($fp, $out);
    while(!feof($fp)){ $buffer.=fgets($fp,4096); }
fclose($fp);
// Находим куки
preg_match_all("/Set-Cookie: ([^=]+)=([^;]+);/", $buffer, $matches);
$size = sizeof(@$matches[0]);
$cookie = null;
for($i = 0; $i < $size; $i++)
{
    if( !is_null($cookie) )
       $cookie .= "&";
    $cookie .= $matches[1][$i] . "=" . $matches[2][$i];
}
$cookie=substr(strrchr($cookie,"="),1);


$buffer='';

$data="PHPSESSID=".$cookie."&login=логин&password=пароль"; 

$fp = fsockopen("ssl://".$hostname,443,$errno, $errstr, 120) or die("can't connect"); 			  
				  $headers = "POST https://$hostname$path1 HTTP/1.1\r\n"; 
				  $headers .= "Host: $hostname\r\n"; 
				  $headers .= "Content-type: application/x-www-form-urlencoded\r\n";
				  $headers .= "Referer: http://".$hostname.$path1."\r\n";
				   $headers .= "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)\r\n";
				  $headers .= "Cookie: PHPSESSID=$cookie;\r\n";
				  $headers .= "Content-Length: ".strlen($data)."\r\n\r\n"; 
                     fwrite($fp,$headers.$data);
                        while(!feof($fp)){ 
						   $buffer.=fgets($fp,4096); }
                     fclose($fp);
// Находим куки
preg_match_all("/Set-Cookie: ([^=]+)=([^;]+);/", $buffer, $matches);
$size = sizeof(@$matches[0]);
$cookie = null;
for($i = 0; $i < $size; $i++)
{
    if( !is_null($cookie) )
       $cookie .= "&";
    $cookie .= $matches[1][$i] . "=" . $matches[2][$i];
}
$cookie=substr(strrchr($cookie,"="),1);		 

echo $buffer; 

?>

Пример заходит на сайт по шыфрованому канале сохранет кукиси для дальнейшых операций на сайте, скрипт ищо не доделан, если есть время пишу понемножку заказ не срочный!!
 
Я так понял FOLLOW_LOCATION почти нигде не пашет изза опен_базе_дира((( как тогда следуют редиректу, после авторизации? или ток на локалке судьба?
 
Подскажите, пожалуйста, что не верно. Выдаётся просто "1"

PHP:
$ch = curl_init();

$url = "http://bugheel.com/index.php";

$postData['q'] = "http://ya.ru/";
$postData['hl[include_form]'] = "checked";
$postData['hl[remove_scripts]'] = "";
$postData['hl[accept_cookies]'] = "";
$postData['hl[show_images]'] = "checked";
$postData['hl[show_referer]'] = "";
$postData['hl[rotate13]'] = "";
$postData['hl[base64_encode]'] = "checked";
$postData['hl[strip_meta]'] = "checked";
$postData['hl[strip_title]'] = "";
$postData['hl[session_cookies]'] = "";


curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, 1);

curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);

$response = curl_exec($ch);

print_r($response);

curl_close($ch);

это просто попытка зайти в яндекс через вэбПрокси Для просмотра ссылки Войди или Зарегистрируйся.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху