Привет всем. Пожалуйста подскажите что я делаю не так? До 6 утра сидел прошлой ночью, не могу залогинится на сайте и всё. Скажите пожалуйста может сам сервер делает какие ограничения? Или ограничения в моей голове. Кучу сайтов перерыл перед тем как тут писать. Всем спасибо за внимание и поддержку. PHP: <?php function open_https_url($url,$refer = "",$usecookie = false) { if($usecookie) { if (file_exists($usecookie)) { if (!is_writable($usecookie)) { return "Can't write to $usecookie cookie file, change file permission to 777 or remove read only for windows."; } } else { $usecookie = "cookie.txt"; if (!is_writable($usecookie)) { return "Can't write to $usecookie cookie file, change file permission to 777 or remove read only for windows."; } } } $ch = curl_init(); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); curl_setopt($ch, CURLOPT_HEADER, 1); curl_setopt ($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3'); if ($refer != "") { curl_setopt($ch, CURLOPT_REFERER, $refer ); } curl_setopt($ch, CURLOPT_URL, $url); // Все POST-параметры, которые надо отправить для авторизации $post = 'j_username=my_username&j_password=my_password'; curl_setopt($ch, CURLOPT_POST, 1); // Указываем, что нам нужно отправить POST-запрос curl_setopt($ch, CURLOPT_POSTFIELDS,$post); // Передаем POST-параметры curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // Результат нам нужно вернуть в переменную, а не на экран curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); // Переходить по редиректам // если с сервера пришло cookie, то запишем его в файл $cookie_file if ($usecookie) { curl_setopt($ch, CURLOPT_COOKIEJAR, $usecookie); curl_setopt($ch, CURLOPT_COOKIEFILE, $usecookie); } curl_exec ($ch); $result = curl_multi_getcontent($ch); //echo "<pre>"; //print_r(curl_getinfo($ch)); //echo "</pre>"; //echo "\n\ncURL error number:" .curl_errno($ch)."<br /><br />"; //echo "\n\ncURL error:" . curl_error($ch)."<br /><br />"; curl_close ($ch); return $result; } echo open_https_url("https://my.motoso.de/MyMotoso/my/index.htm","",true); ?> Собственно проблема в том что я не могу залогиниться на сайте через скрипт. Информацию забираю свою. Необходимо забрать информацию о 3000 товарах и перенести на другую базу. По сути дела доступ я имею, просто хотелось бы автоматизировать.
что-то подсказывает, что при логине на свой сайт человек знает на какую страницу слать данные. А ещё владелец сайта решил бы всё просто удалённым подключением к БД. Хотя, бывают такие владельцы…
https://my.motoso.de/MyMotoso/m_security_check Luge он юзает по моему сервис и хочет инфу со своего аккаунта забрать
Извините немного не правильно сказал. Да сервис не мой, аккаунт МОЙ. Если бы сервис был мой, я бы таких топих не создавал, что это получается тогда, экстремальный вывод информации чтоли? Зачем так мучится когда можно было бы все вытащить из phpMyAdmin? Нет уж))
Спасибо)))) Помогло) Скажи пожалуйста, а почему через ту страницу откуда я заходил не получалось залогинится???
мм, я посмотрел html код страницы, посмотрел атрибут action у формы и узнал что скрипт m_security_check обрабатывает логин и пароль... с чего вы взяли что index?
ну он же должен был заполнить формы и передать их m_security_check, разве не так? Там же вроде как: PHP: curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); // Переходить по редиректам должен выполнять редиректы?
да, только я что то редиректов там не заметил... где там редирикет? зашел, на странице - форма... редирект-это пере направление на другую страницу
понятно, я то думал, когда мы устанавливаем параметр который указывает, что нам нужно отправить POST-запрос. Запрос сам отправляется.
Спасибо. Немного почувствовал принцип работы. Раз уж я завел данный топик появился теперь следующий вопрос: Как можно посредством CURL вызвать функцию JavaScript на странице которую я парсю? Пейджера асинхронно взаимодействую с сервером, и отдают только нужную часть из списка. Вот кусок кода который говорит какие страницы выводить: Код (Text): <a href="#" onclick="submitGridPager(3); return false;">3</a> В данном случае интервал от 30 до 40. Код (Text): function submitGridPager(page) { var form = document.getElementById('form_classifiedsGrid'); form.gridAction.value = 'gotoPage'; form.page.value = page; submitGridForm(form, 'classifiedsGrid'); }
javascript отдает скрипту php все теже пост, гет, потому получает ответ и вставляет в страницу, раскопайте какому скрипту он их отдает и по аналогии с формой авторизации
Спасибо, так и подумал на самом деле. Сам с AJAX работал, с базой данных страна-регион-город, ну где нужно выбрать свой город без редиректов. Смотрел как раз свои коды AJAX.
пожалуйста, писал сам, первый мой опыт с AJAX(в том проекте не только регионы были, еще куча разный полей) и на данный момент последний))) Оказывается тут я страны тогда удалил(нужна была только Россия потому что), и использовал только: регион-город. Вот: HTML: <select style="width: 150px;" size="1" name="region_id" id="region_id" OnChange="getCustomerInfo();"> [js] <script language="javascript" type="text/javascript"> var request = false; try { request = new XMLHttpRequest(); } catch (trymicrosoft) { try { request = new ActiveXObject("Msxml2.XMLHTTP"); } catch (othermicrosoft) { try { request = new ActiveXObject("Microsoft.XMLHTTP"); } catch (failed) { request = false; } } } if (!request) alert("Error initializing XMLHttpRequest!"); function getCustomerInfo() { var region_id = document.getElementById("region_id").value; var url = "ajax_functions.php?region_id_yes=" + escape(region_id); request.open("POST", url, true); request.onreadystatechange = updatePage; request.send(null); function updatePage() { if (request.readyState == 4) { if (request.status == 200) { <!--alert("Server is done!");--> var response = request.responseText.split("|"); document.getElementById("city").innerHTML = response[0]; } else alert("status is " + request.status); } } } </script> [/js]
Даже сейчас не могу всё посмотреть. Год назад было, но тогда точно работало. Ибо заказчик тестировал ой как всё. С этим AJAX я еще повоевал тогда... Чтобы браузеры все работали. Вот нашел функцию в JS файлах, вроде если не ошибаюсь как раз отсюда можно понять куда посылать запросы? [js] function motosoTracker(accountHash, type) { var trackingUrl = "/api/tracker/track.api?h=" + accountHash + "&t=" + type; var aa = new AjaxAnywhere(); aa.id = "motosoTracker"; aa.showLoadingMessage = function() {}; aa.hideLoadingMessage = function () {}; aa.callback = function () {}; aa.getAJAX(trackingUrl); } function abTracker(variate) { var trackingUrl = "/api/tracker/ab.api?v=" + variate; var aa = new AjaxAnywhere(); aa.id = "abTracker"; aa.showLoadingMessage = function() {}; aa.hideLoadingMessage = function () {}; aa.callback = function () {}; aa.getAJAX(trackingUrl); } [/js]
Я очень мало получил. Сейчас взял бы намного больше. Там не только в AJAX дело было просто, AJAX это верхушка айсберга для меня тогда была. Офигевал я от кодинга вобщем. Зато после этого начал нормально оценивать работу и прибрел очень большой опыт...
Padaboo вобщем я нашел файл. Он ссылается на себя. Там prototype используют. Сейчас вкуриваю, ужос настоящий...
В 10 классе написал первый php-скрипт. Сейчас 2 курс заканчиваю. Итого больше 3 лет. Но я не все время активно развивался, да вообще за 3 года можно очень многое узнать о php, многое написать еще можно) Это поначалу было хобби, сейчас небольшой способ заработка. Через года 2 надеюсь php-программирование будет основной работой))) Хотя только на php останавливаться не очень хочется. Но язык мне очень нравится. Сейчас изучаю ООП, хочется не просто ООП ради ООП, а ООП там где это нужно. Шаблоны читаю, пока по книге Профессиональное программирование на PHP(Джордж Шлосснейгл), потом хочу на Design Patterns(GoF) перейти и т.д. Как видите я не знаю очень многово(( PS: оффтоп помоему жесткий пошел)) Начальство ругаться не будет?))