Как сделать так, что бы зайдя по ссылке (php скрипт), передавало данные методом post на другой сайт, без всяких кликов. Просто перешел по ссылке и данные отправляются на другой сайт!
Можно/проще это прописать между <head> и </head> - <meta http-equiv=\"refresh\" content=\"1.;url=http://site.ru\">
Он походу имел ввиду логин и пароль передавать на другой сайт через post
Вот попробуй:
echo \'<form action=\"\" method=\"post\">\';
echo \'Фамилия\';
echo \'<input type=\"text\" name=\"lastName\" size=\"10\" value=\"\'.$_POST[\'lastName\'].\'\" />\';
echo \'Имя\';
echo \'<input type=\"text\" name=\"firstName\" size=\"10\" value=\"\'.$_POST[\'firstName\'].\'\" />\';
echo \'<input type=\"submit\" name=\"searchButton\" value=\"Поиск\" />\';
echo \'</form>\';
if (!empty($_POST)) {
$curl = curl_init(); //инициализация сеанса
curl_setopt($curl, CURLOPT_URL, \'http://example.com/\'); //урл сайта к которому обращаемся
curl_setopt($curl, CURLOPT_HEADER, 1); //выводим заголовки
curl_setopt($curl, CURLOPT_POST, 1); //передача данных методом POST
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); //теперь curl вернет нам ответ, а не выведет
curl_setopt($curl, CURLOPT_POSTFIELDS, //тут переменные которые будут переданы методом POST
array (
\'lastName\'=>$_POST[\'lastName\'],
\'firstName\'=>$_POST[\'firstName\'],
\'searchButton\'=>\'get\' //это на случай если на сайте, к которому обращаемся проверяется была ли нажата кнопка submit, а не была ли оправлена форма
));
curl_setopt($curl, CURLOPT_USERAGENT, \'MSIE 5\'); //эта строчка как-бы говорит: \"я не скрипт, я IE5\"
curl_setopt ($curl, CURLOPT_REFERER, \"http://ya.ru\" //а вдруг там проверяют наличие рефера
$res = curl_exec($curl);
//если ошибка то печатаем номер и сообщение
if(!$res) {
$error = curl_error($curl).\'(\'.curl_errno($curl).\')\';
echo $error;
}
else {
//если результат содержит то что нам надо (проверяем регуляркой), а в данном случае это табличка с классом yaResultat, то выводим ее.
if (preg_match(\"/\\<table class\\=\'yaResultat\'(.+)\\<\\/table\\>/isU\", $res, $found)) {
$content = $found[0];
echo $content; //перед этим его конечно можно обработать всякими str_replace и т.д.
}
else {
echo \"<p>Неизвестная ошибка</p>\"; //а если табличики с результатами нет, то печатать нечего и мы незнаем что делать
}
}
curl_close($curl);
}
Jaki, всё не так просто, а если необходима авторизация на том суйте, куда мы отправляет данные? Через сокеты не работает
Если тебе нужно создать автологин, то можно сделать обычную html страницу
<body onload=\"my_form();\">
<form action=\"login.php\" method=\"POST \"id=\"the_form\">
<input type=\"hidden\" name=\"login\" value=\"<?=$_GET[\'login\']?>\" />
<input type=\"password\" name=\"password\" value=\"<?=$_GET[\'password\']?>\" />
</form>
<script type=\"text/javascript\">
function my_form() {
document.theForm.submit();
document.getElementById(\'the_form\').submit();
}
И тогда при загрузке данные из адресной строки будут передаваться методом POST куда нужно
http://site.ru/page.html?login=Login&password=password только не забывай входящие данные фильтровать
Если нужен спарсить данные, которые скрыты авторизацией, то тут уж нужно с помощью CURL сохранять куки, но тоже ничего сложного