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']);