Przekazywanie danych do formularza z porzuceniem strony zwrotej (PHP)

Posted on Sun 01 April 2007 in Hacks (wannabe)

Zdarza się czasem, że chcemy wypełnić danymi formularz z wnętrza skryptu PHP, a po jego submicie nie pokazywać tego co zwrócił skrypt obsługujący formularz.
Submitowanie formularzy w PHP robi się prosto z pomocą biblioteki curl. Aby pozbyć się zwróconych przez serwer danych wystarczy zarejestrować PUSTńÄ„ funkcję obłsugującą to co z serwera wraca.
// Funkcje dodajace emaila z formularza do systemu SARE                                                                       //
// funkcja obslugujaca response z Sare, po prostu zlewa wszystko
// bo jest pusta (comprende?)
function curlHeaderCallback($ch, $strHeader) {
}
// funkcja wysylajaca dane do // funkcja wysyłająca dane do formularza Sare
function sendSare($sare_email) {
$url = "http://s.enewsletter.pl/acq.php";
$ch = curl_init();
// set the target url
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_POST, TRUE);
//  curl_setopt($ch, CURLOPT_VERBOSE, FALSE);
curl_setopt($ch, CURLOPT_FAILONERROR, TRUE);
curl_setopt($ch, CURLOPT_MUTE, TRUE);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 15);
// olewa zwrotny header
curl_setopt($ch, CURLOPT_HEADER, FALSE);
// funkcja obslugujaca response z serwera Sare
curl_setopt($ch, CURLOPT_WRITEFUNCTION, 'curlHeaderCallback');
$post_data = array();
$post_data['s_uid'] = "110";
$post_data['s_key'] = "504938f443d75299";
$post_data['s_interface'] = "6";
$post_data['s_encoded'] = "ISO-8859-2";
$post_data['s_group_8'] = "1";
$post_data['s_email'] = "$sare_email";
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
$result= curl_exec ($ch);
curl_close ($ch);
}
sendSare($_POST['email']);