Здравствуйте! Нужно получить страницу с другого сайта, есть такой вот простой код Код (Text): $ch = curl_init('сдесь сайт'); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); $result = curl_exec($ch); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_close($ch); (Используется апач) Запрос как бы происходит и возвращается html, но дело в том, что внутри подключаемые файлы (css,js, картинки) прописаны обычным образом как на локальном хосте без htpps и т.д. Например путь к подключаемому css <link href="NowaGrafika/NowyLayout.css". Поэтому все последующие запросы браузером на подключаемые файлы идут не на истинный сайт, а на мой апач и ищутся у меня на локалхосте (запрос становится таким http://localhost/NowaGrafika/...) и конечно не находятся, подскажите пожалуйста, как это исправить? Что бы подключаемые файлы он искал на сайте с которого изначально запрашивался html. Прописывал другой сайт где пути к подключаемым файлам полные, в таком случае браузер делает запросы на них на настоящий сайт, и все отображается корректно
Пока решение такое пришло на ум, перед тем как отдать браузеру страницу, пройтись по html и дополнить пути на полные http://путь... и потом отдать браузеру. Таким образом вроде работает корректно, но решение какое-то не красивое выходит.
попробуй натравливать на адрес parse_url() и посмотри, есть ли отличия от нормального адреса. за них и цепляйся, дописывая по правилам: если нет слеша в начале - то это от текущего адреса относительно, а если есть - от корня сайта.
Вообщем-то так выходит, то ли я не разобрался со всей мощностью parse_url() то ли не выгодно вышло, ситуация такая выдает html, что бы парсить через parse_url(), нужно выдавать функции url, что оказалось сложнее, нежели пройтись по html и в данном случае я пользовался str_replace, запросов на подключаемые файлы боллее 30, но получив ответ выяснилась некая закономерность и к счастью только на нужные ссылки, закономерность такова: начало нужных ссылок было для css "../" и больше нигде не встречалось, поэтому через str_replace() подменил ../ на http... или для скриптов ../../ снова подменил на http... заработало, вроде все хорошо, но тема актуальна, ещё по клику есть пост запрос с отправкой капчи, пока бороться не начал, поэтому и вопросов нет, но прикинул, ситуация обещает проблемы, начну биться отпишу) Спасибо тем кто отвечает и спасибо тем кто читает в надежде помочь!
Идет запрос на главную страницу (html) в ней подключаемые файлы, относительно корня сайта, то есть ../папка/файл. Вместо ../ , ставлю http://адрес сайта, на выходе получается так href="http://адрес сайта/папка/файл. Добавлено спустя 1 минуту 7 секунд: то есть путь становится абсолютным
блин, еще раз. ты адреса достаёшь как-то же ж! Код (PHP): $a = '/css.css'; $b = 'http://site.ru/css.css'; var_dump(parse_url($a)); var_dump(parse_url($b)); Код (Text): array (size=1) 'path' => string '/css.css' (length=8) array (size=3) 'scheme' => string 'http' (length=4) 'host' => string 'site.ru' (length=7) 'path' => string '/css.css' (length=8)
Понял, что ты имеешь ввиду, но задача, чуть другая, я не получаю урлы, в целом все так, через курл проходит только запрос на главную страницу другого ресурса curl_init('"url"); Отдает один файлик html, который определяет всю структуру страницы, в нем прописаны, css и т.д. вспомогательные. Начало ссылок на подключаемые файлы либо ../, либо ../../, и больше в этом html это нигде не встречается кроме начала путей для ссылок, через str_replace() подменяю ../ и ../../ на htpp://путь к руесурсу/путь прописанный в html, получаю абсолютный путь и отдаю браузеру, далее запросы идут из браузера напрямую, к тому ресурсу без моего вмешательства, браузер получает, что нужно и отображает
Столкнулся с такой проблемой. Нужно послать cURL POST, строка которую нужно передать, она примерно такая: ,emQWwvz1DuLB9zRchceoLpFFijV2Jl0PxeVwQEvtaAmTlENLXQkcsv/CqaAQ+Q4QeT5jcv+4LkiLt8GS6gM/WSZpYzzMH/MA7GUCQAH4zDBcJSSy2S+uW4XDVOH9xG0/PMzPZO2eqLzG2ZKyMq62ZMzf6YsA6/Xd3SKr1azaLV4vJPmxrihYDOgv2+gBgqfUTju+Tms1YDUGHQ2Msf7UtNXKcHf5kkAK5RBVcjS2xDQqZWvop+TBfnQdanTIL4XPp/a+rWnT+G/bqzWFMqkVmZkdpcaOa5iuF6IjMwmG5UW4lx4UgJKlZQrGfwdaDxht3cUAm0U29WChSbbyR265IK2szlb/4dLgFOWMzE2kYYg1Tfm5Xv2Vqdqs2nrJP818296EzEpwueOJnuXMIv2bGJW5iemtDrjzVA9MZwbumsydk+HeFS1wxBaYa2zFC1g9QS4drF0VdhUH9NKRWEc3cfVLrD488RCCu4zJSjLjyK4u08fFa3GySox1MndN6fL2YqadryVa7UkDeqbMChjZYSrgeLOz6cR65lbmfAAorHjs5V66J1bxdCenUitE4v/ZqF+oDXGqxrQTSROduGdafdgKaALuBEIMW6Qzv3xc1BS78WdQusJXd0hCeGH3AUHUKvyB46lcUrrhW6AHhUgUS0jOpCzkaoD5z+KrqFwUF+Lp3rWX1UQE/r4GBbD8KjeYYzrlUVYQ/obuTsRj3Ox9oMwFDKO4vDvwiTGI5T/1xSIdlPx59quEXehzDAXrSsJvgfLms9bjbM5KudsdUTIGZm9OyUBe69uQho+VfLcQ2d6hLMG6RkPahdhhbUWMwTwWL00ARnhEaowDd++RpCdF0wjOcznfsQPjkQsareMyK2QriWqIGpbOCOa8CY7ApB4A4bZSqsVsKzD0ojoyS7KFvVRAoiVxhCb7pBDo7QRKVsnDo9Fak51EE4+RbIl4fN5QdGml3vBpH7ZTvrjD93TEufgbRUE9u+pZUAVLI1Rqf8RSrfB0SD5CvPQdLIUWuRdfBXgtEukuuzhgzGsWYKTLOO9QGvub//LakWDdWX1RbHplPkrnYNR7isDM0s5UoG2s44T3O6v0KQCprwuJoSMgBXJZN4UEBXkCYvvcHoUlj3XISNhEBH0ove9j4Z9RsbW4StOSLoc5BGfS5rs6DhKz2+4Khd4kHmP6XUAVM5Xg8yJazP3YwCje/F4+u2e83Imc3BhUiDIgxXiCRcjTBRnpB2JfICWGQC5QWmBx7GjVm1TaCk0lhq2x1EuvxVHOjggedEs/HIwhYWO8CRDzsVc8nGv6FqiZazDyuglRnQr1DFDUMcmrcUbQgBs4+conOPu45q5nOsKssBoSY4zh2YYvxyZUlOSH6TjSA3Z4NtRVl3SDC1YLLKOEfdE5A26tXoIumOMPeyg+mPu4nh1bLpFlbEfSXIRhJTm03/wOZpnUeKEbWdxWIyhVaWFkgvc2Z44bBc16y52oAR9T6LOxgM0ZH03c4ZaLX9o8SZ5NAuzJOe4iRD9qettWfAU0XC2ro8Ve0aTlFfVXGnXUUkqFW43bnXC1my6/XPOR+HBfAUHCEXBAKqjyQSF20Ri8mrf1/Jzo4HqOwbeq0EIxHaZjPU1TlRg3ESkIeY5EE1+uWNwOZV3N5c0xhW+4l4TQpskU6nyoZn0sOR8uCfK4G+uKQ7mXJ4ZpdE65fj4Oa2mqYwiMh0azvJqWDojukK03HgR83ibbhqwvCKjSJ5563vLqWCxINHPRR2cFxqo0GeS4MRl83p1etXYXcQL3MXbK0IZBGfqfqQr31p9DxmDFQF8DktZ8nJMBCkup1rzvCtspECYFWvnds9vClITc3x0aYkoeob06hIEfB1Q51J19+vV43xaOTK/50UsdlrTZPSWbSB8HsqMG64CQCAl4IHafG3+hi1XE5ExeJdoc4sn+vXi4d1WzyUABqYs3LPhGd9HqzW33+so0JbSBZyedp4WZvJhv1iw6jv0UhWbATZ9vgimQ41aigZ7/llJZkL6pQYWtNgOjoB1PVO7keEmj8PjUi42u3N8VLHxwMkuBa1T8JZCNsqmPpJ23ccgLzYO0GgiC+KyyrFibzLvUHE34OM7cwvubExIWMksm5kRB0MXMJXIIODFaMS/1sZ1m/QxOmOJcXc9me278EOFcy2Sxh5V7RdcidgD7tihPACK6qAfLi9OTP3BzhHfl7KgFaJ5i62TaWJhsyFHvbca+5TcL8vC+ssicPpoUiogUDyxieFYHv/8EyNUCZkvEvDCO0jtd+ivL7NRxtPEFt3wr4q5yudpSEFZ/hNBQjghO7xO3UdRbSZPlhifA+eQXRJC94zAO0NA4wwzVujrA/+zUYMDs3OeqIftaPd5BTdDUlDVEnEO6UCkhOvcln97IEH07YfgrlAtY6hfNh8EGT0l3n5duUNH2O6F6CRfsLaodzOTbIOWYNxjCmbPlRJHdUzebWD/bmIddt6j41kk97QQUia62mcz5a6IfBNlVLH7TtIITSmYadXBYr89nLAQCeJ4LGgz5CYOjCs8C4Bj7+qd3gDnTAwYKywBs5OUkrGIOsbs8fIQIvoXs1pXIPDiWXI9aBiOpe1/7t/EPwcJoeVkXHRnMEHjc/oHeejFF/n4AMns26zyqnC9csxo1MSxm8K1YhlHyDXHVFoUXDE7A3bMT+VuQEzFd1pi0FGU5) Вообщем очень длинная. Смотрел через HttpAnalyzer при обращении, через браузер к ресурсу в POST DATA браузером она нормально передается, по мимо её есть ещё строки короткие.Через cURL, когда её передаю, в HttpAnalyzer, вообще пропадает все данные в post data, то есть даже другие параметры перестают передаваться Код (Text): $__VIEWSTATE = $_POST['__VIEWSTATE']; curl_setopt($chpost, CURLOPT_POSTFIELDS, $__VIEWSTATE); Пробовал строку разбить на не сколько, не передает, начал по чуть сокращать вручную строку, дойдя до определенной длины она начала передаваться и с ней все остальные параметры, увеличиваю снова не передается, что это за ограничение и как его убрать? post_max_size уже прописал 256 мб, memory_limit 256, max_file_uploads = 256, Добавлено спустя 4 минуты 24 секунды: Длина строки 2.7 кб
А как определить? пробовал base64_decode() выдает кракозябру, это строка висит в html и при отправке формы летит в посте.
Код (Text): <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="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" /> Идет запрос через курл на другой ресурс, возвращается страница в ней форма, а вот эта строка, это input hidden в форме этой value этого инпута, собственно вот это длиная строка, и когда эту форму отправляешь, она летит в посте. Добавлено спустя 10 минут 58 секунд: Проблема в том, что при попытке отправить эту строку в curl_setopt($ch, CURLOPT_POSTFIELDS, $__VIEWSTATE); в HttpANAlyzer post данные пусты нет ни самой переменной ни его значения, к примеру обрежем эту строку в раза 4, просто сделаем короче, все нормально становиться,в Post данных есть переменная и её значение, проблема в длине, curl по сути не хочет отправлять такую длинную строку, а как это исправить... Добавлено спустя 7 минут 43 секунды: это не единственное поле с такой абракадаброй, в форме ещё не сколько скрытых инпутов(input hidden), значение их разные но вся та же абракадабра, они значительно короче и если не передавать в curl вот эту длинную строку они идут нормально или же опять же вручную обрезать в раза 4, то все нормально, но как только эту строку включить в полном объеме в передаваемые пост данные, тут же перестает передаваться вообще все значения, пост данные пусты
Непонятно, что вы хотите?) Видимо, нельзя передавать такие длинные строки. А что именно такой хеш нужен или что? Что за сайт?
Сервак выдает The requested URL was rejected. Please consult with your administrator. Your support ID is: 11141961059308358447 Я так понимаю id сессии не сходятся? из-за этого строка и не идет, в контент ленз в заголовке, прописан объем равный этой строке, но в пост дата строки нет, по сути сверяется сессия не совпадает и в пост дата ничего не шлется ибо на другие ресурсы эта же строка идет нормально. С Id не понятно вроде все куки принимаю, храню при каждом новом запросе отправляю Добавлено спустя 3 минуты 20 секунд: Кодирована в urlencode Добавлено спустя 40 минут 6 секунд: Походу понятно) как я писал в начале этой темы запрос делаю только на основной html отдаю его браузеру и он уже сам подгружает вспомогательные файлы, а вместе с вспомогательным летят куки с другими значениями и подменяются(идут мимо локалхоста и там следавательно остаются куки со старыми значениями), надо по сути все запросы на локалхост пускать и с его на ресурс, клиент->сервер->сервер, по сути из-за этого сервер выдает это сообщение Your support ID is: 11141961059308358447 и собственно не идет эта строка, не понятно все ровно почему тогда другие идут или же идет эта же, если её урезать, но других вариантов вроде как нет)
Нет, идет запрос cURL на главную страницу, возвращается страница, а в ней форма(для ввода капчи) в этой форме несколько скрытых полей (input hidden), этот хэш это значение (value) одного из этих полей, я ввожу вручную капчу, жму отправить и это поле летит на сервер в пост вместе с введеной капчей
https://by.e-konsulat.gov.pl бота хочу сделать, который будет делать отпеределенные действия, отправлять запросы принимать ответы, вообщем, автоматизировать действия человека.
Товарищи, кто нибудь сталкивался с такой проблемой, апач всегда возвращает Content-Type: text/html, делаю запрос curl,отдаю браузеру, там html, браузер читает этот html и делает запросы на вспомогательные файлы, все перенаправляю на локалхост, там достаю нужный урл дополняю на полный и снова через curl со всеми куками делаю запрос на серв и снова отдаю браузеру, дело в том, апач назад возвращает все с контент тайп text/html парсил заголовки ничего не добился, так вот, там где есть явное расширение js браузер не смотря на контент тайп text/html, индифицирует как javascript файлы, а вот где нет он думает, что это html, но это js, и обрабатывает соответственно как html, попробовал из браузера сделать запрос на апач на js файл, например localhost/jav.js, опять в ответе апача content-type text/html, как это исправить подскажите пожалуйста.