http://voyage.kiev.ua/js/site/ajax2.js читайте, там у них весь код ихнего ява-обработчика разжеван. в форме при нажатии поиск срабатывает метод send его смотрите, проанализируйте их переменные из формы и отправляйте через cUrl методом пост данные в http://voyage.kiev.ua/actions_site.php (как указано в файле http://voyage.kiev.ua/js/voyage/toursearch.js)
если JsHTTPReqeust не забываем про X-***** загаловки. подробнее о загаловках смотреть в любом снифере... Например Wireshark
думаю не в заголовках дело скорей всего в actions_site.php отпровляю посты и просле их обработки данные летят в переменную которая отображается на http://voyage.kiev.ua/Toursearch/ так как же их забрать ?
я думал там либа стоит jshttpreqeust никуда данные не летят, обмен идет по http. Сделовательно, ваша задача, лишь сформировать валидный http запрос и получить запрошенные данные.
да стоит jshttpreqeust и всётаки летят в POST actions_site.php а возращает (узнал через firebug)от сюда actions_site.php?PHPSESSID=rfdt7gqkqdrbdlsdp8hiboohn3(меняется)&JsHttpRequest=13107119348088(меняется)-xml
pernik что мешает понять что там меняется? не можешь анализировать javascript? или просмотреть исходник код страницы?
pernik думаю, что тут потребуется больше 2-5 минут, чтобы разобраться. по крайней мере я попытался, и в 5 минут не уложился. а тратить больше времени на это - нет мотивации. подскажу, что формирование запроса происходит в файле ajax2.js, и, если не ошибаюсь, идёт привязка к сессии. удачи
это я и сам понял походу вот эта фун-ия делает погоду в ней немогу разобраться responseParser : function () { if (this.req.readyState != 4) { return; } if (this.req.responseText!='' && this.preloaderObj) { this.preloaderObj.style.textAlign="left"; this.preloaderObj.innerHTML = '<div style="text-align:right;"><a href="javascript:void(0);" onclick="document.getElementById(\'' + this.preloaderObj.id + '\').style.display=\'none\'">[x] Закрыть</a></div>'+this.req.responseText; centerDiv(this.preloaderObj.id); var sbm_btn = document.getElementById("submit_button"); if(sbm_btn) sbm_btn.disabled = false; } else if (this.preloaderObj) { this.preloaderObj.style.display = 'none'; } for (key in this.req.responseJS) { if (key == 'javascript') { eval(this.req.responseJS[key]); } else if (document.getElementById(this.layer_prefix + key)) { document.getElementById(this.layer_prefix + key).innerHTML = this.req.responseJS[key]; } } this.lock = false; this.queueNext(); }[/code]
А остальные по неформатированному коду будут разбираться? Пишу функцию по русски Вывод - тут по теме вопроса вообще ничего нужного нет. тебе надо 1. посмотреть имена полей формы 2. добавить к ним page_start (так в функции сказано) 3. пульнуть это дело POST-ом на http://voyage.kiev.ua/actions_site.php (curl например умеет) 4. прочитать ответ Если повезёт и нет привязок к сессиям, хосту и т.п. то должен получиться JSON, из которого и копать ответ.
помогите найти ошибку <?header("Content-Type: text/html; charset=utf-8"); $req_string = 'spokey=&uid=2107201&fav=0&bonus=0&price=&resort=&ch1=&ch2=&ch3=&openonly=1&lr=0&pr=&p=0&rows=20&ttype=&fromcity=&tocity=&country=&sorter=p1&board=&pm=9&pref_pm=%2B-&stars=&minprice=&nights=&pagenum=&dateFrom=17.09.2011&hotelKey=000&adult=2&child=0&hotelArray=&resortArray=&cod=&test=303'; $req_header = "POST /search/first_events.php?test=abc&PHPSESSID=12c496af9fa9f80674f0015b555e8675&abc13108107929641-xml HTTP/1.0\r\n". "User-Agent: Opera/9.80 (Windows NT 6.1; U; ru) Presto/2.9.168 Version/11.50\r\n". "Host: www2.turtess-online.com.ua\r\n". "Referer: http:turtess-online.com.ua/search/\r\n". "Content-Length: ".strlen($req_string)."\r\n". "Content-Type: application/octet-stream\r\n". "Content-Transfer-Encoding: binary\r\n". "\r\n"; $request = $req_header . $req_string; $f = fsockopen('turtess-online.com.ua', 80, $errno, $errstr, 30) or die('Cannot open socket to turtess-online.com.ua:80 '.$errno.' '.$errstr); fwrite($f, $request); $content = ''; while(!feof($f)){ $content.= fread($f, 1024); } fclose($f); $content = trim(substr($content, strpos($content, "\r\n\r\n") + 4)); $content = iconv('windows-1251', 'utf-8', $content); $json = json_decode($content, 1); $text= substr(htmlspecialchars(print_r($json, 1)),0,120); print_r($json); $a= htmlspecialchars(print_r($json, 1)); echo '<pre>'.$a.'</pre>'; ?>