Необходимо реализовать задачу отправки на другой сайт информации со своей формы POST методом. Решением это простой задачи стала замечательная CURL библиотека, которая уже есть в каждом PHP (ну или в 99% случаях).Итак приступим.
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>';
value для text-inputов добавлены для того чтобы после самбита формы указанные данные оставались введенными, можно и без этого
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://site.ua"); //а вдруг там проверяют наличие рефера
$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);
}
Вот так легко это реализуется при помощи CURL