Бърз въпрос за cURL

IzKuFeLiQqQqQ

Registered
Хора така и не загрях от уроците които гледах, как да се логвам в който и да е сайт... само CURLOPT_USERPWD ли ще ползвам (и тая функция как рабира кви са cookie-тата/input name-овете)? Или първо има някоя пост заявка и извличане на cookies и т.н :D

Скучно ми е реших най-после да го науча щот големи шмекерии могат да се правят с него :D
 
PHP:
<?php

$site = "http://loginsait.com";
$user = "user";
$pass = "pass";
$user_field_name = "User_field";
$pass_field_name = "Pass_field";

$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$site);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch,CURLOPT_POST,1);
curl_setopt($ch,CURLOPT_POSTFIELDS,$user_field_name."=".$user
                    ."&".$pass_field_name."=".$pass);

$data = curl_exec();
curl_close($ch);

echo $data;

?>

Сякаш трябва да е така :)
 
Тва го знам... идеята ми е като се логна да правя пост заявки в друга страница в същия сайт... т.е първо се логвам в sait.com/login.php а после пращам заявка към sait.com/page.php, но трябва съм логнат, че да излезе формата в page.php примерно... Загря ли какво искам да направя?
 
IzKuFeLiQqQqQ каза:
Тва го знам... идеята ми е като се логна да правя пост заявки в друга страница в същия сайт... т.е първо се логвам в sait.com/login.php а после пращам заявка към sait.com/page.php, но трябва съм логнат, че да излезе формата в page.php примерно... Загря ли какво искам да направя?

Ами в такъв случай, ако не ме лъже паметта правиш

PHP:
<?php

$site = "http://loginsait.com";
$user = "user";
$pass = "pass";
$user_field_name = "User_field";
$pass_field_name = "Pass_field";
$newsite = "http://site.com/newpage.php";


$ch = curl_init();

curl_setopt($ch,CURLOPT_URL,$site);
[color=green]curl_setopt($ch,CURLOPT_COOKIEJAR,"tmp/site.txt");[/color]
curl_setopt($ch,CURLOPT_POST,1);
curl_setopt($ch,CURLOPT_POSTFIELDS,$user_field_name."=".$user
                    ."&".$pass_field_name."=".$pass);
curl_setopt($ch,CURLOPT_URL,$newsite);
curl_setopt($ch,CURLOPT_POSTFIELDS,"newpostfeild1=newinfo&newpostfeild2=newinfo2");

curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);

$data = curl_exec();

curl_close($ch);



echo $data;



?>

Извинявай, тотално се оплетох редактирах си мнениетп.
 
Е да де... аз питах по кой начин се прави :D Четох документацията, и не бях сигурен с кой начин се прави... а то и с 2-та xDD

но на @kopura само даде примерен код и той отнася точката :P
 
Тези гимнастики може и да е възможно да се пропуснат. Включи на CURL да подава хедърите и виж дали ти записва като бисквитки потр. име и паролата, ако ги записва използвай CURLOPT_COOKIE (виж в документацията как се използва) за да не се налага да се прави повторно пращане на данни.
 
За да не се получава:

$user_field_name."=".$user
."&".$pass_field_name."=".$pass

Ползвайте http_build_query.

$data = array(
'user' => 'test',
'pass' => 'passwd',
);

$query = http_build_query($data);

echo $query;
 

Back
Горе