Как можно очистить сайт через PHP, который требует данных POST? - PullRequest
2 голосов
/ 08 января 2012

Я пытаюсь очистить веб-сайт, который принимает данные POST, чтобы вернуть правильную страницу (без POST он возвращает 15 результатов, а с данными POST он возвращает все результаты).

В настоящее время мой код выглядит так:

$curl = curl_init();
curl_setopt($curl,CURLOPT_URL,"http://www.thisismyurl.com/awesome");
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, XXXXXX);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$result= curl_exec($curl);

Я знаю, что мне нужно поместить свои постполя в пространство, заполненное "XXXXXX", я просто не знаю, где выкапывать поля / значения поста и как структурировать их в переменную, в которую я передаю туда.

Любая помощь будет принята с благодарностью!

Ответы [ 2 ]

2 голосов
/ 08 января 2012

Если это простая форма, просто извлеките все поля формы и продублируйте их в своем скрипте.Если это какая-то динамическая форма, например, javascript, создающий запрос и использующий ajax, то вы можете прослушивать данные с помощью инструментов разработчика (например, вкладка Firebug Net в Firefox, HTTPfox и т. Д.) И извлекать данные поста по мере их отправки.

В любом случае, когда вы знаете, какие поля / данные отправляются, остальные должны быть (относительно) просты для дублирования / построения.

1 голос
/ 21 мая 2012

Я думаю, что кто-то может искать код для замены XXXXXX.Я использую следующий кусок кода.

$ch = curl_init();
$timeout=5;
$name=$_REQUEST['name'];
$pass=$_REQUEST['pass'];
$data = array('username' => '$name', 'password' => '$pass');
$data=http_build_query($data);
curl_setopt($ch,CURLOPT_URL,"superawsomesite.com"); 
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
$data = curl_exec($ch);
curl_close($ch);
...