Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|

10.12.2008, 22:24
|
|
Новичок
Регистрация: 23.01.2008
Сообщений: 10
Провел на форуме: 10334
Репутация:
0
|
|
Получить куки [php]
Здравствуйте.
Встала задача зайти на сайт 2раза при помощи PHP.
В первый раp мне нужно зайти и получить какие-то данные, которые я смогу вписать при втором заходе.
Тобиш куки или сессии.
Каким образом это можно осуществить?
Если можно, то выложите кусочек кода.
|
|
|

10.12.2008, 22:29
|
|
Участник форума
Регистрация: 27.10.2008
Сообщений: 278
Провел на форуме: 1495545
Репутация:
242
|
|
Сессии
<?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>';
?>
|
|
|

10.12.2008, 22:29
|
|
Постоянный
Регистрация: 28.09.2007
Сообщений: 820
Провел на форуме: 6722038
Репутация:
1385
|
|
$lol = curl_init('http://mail.ru');
curl_setopt($lol, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($lol, CURLOPT_COOKIE,$cookie);
$pol = curl_exec($lol);
|
|
|

10.12.2008, 22:30
|
|
Участник форума
Регистрация: 27.10.2008
Сообщений: 278
Провел на форуме: 1495545
Репутация:
242
|
|
Cookies:
<?php
setcookie ("TestCookie", "", time() - 3600, "/~rasmus/", ".utoronto.ca", 1);
echo $TestCookie;
echo $_COOKIE["TestCookie"];
?>
|
|
|

10.12.2008, 23:25
|
|
Познающий
Регистрация: 13.11.2008
Сообщений: 31
Провел на форуме: 70426
Репутация:
14
|
|
Код:
session_start();
if(!isset($_SESSION['temp'])) {
$_SESSION['temp'] = 'true';
} else {
echo $_SESSION['temp'];
unset($_SESSION['temp']);
}
|
|
|

11.12.2008, 00:21
|
|
Познавший АНТИЧАТ
Регистрация: 01.06.2008
Сообщений: 1,047
Провел на форуме: 5321514
Репутация:
3313
|
|
2preda1or, скрипт отобразит инфу после релойда страницы, т.к сначала браузер получит куки, но не передаст на сервер
2остальным, не путайте сессии с cookie. Файлы сессий хранятся на сервере, а печеньки на стороне клиента.
|
|
|

11.12.2008, 00:42
|
|
Постоянный
Регистрация: 30.08.2007
Сообщений: 773
Провел на форуме: 3069349
Репутация:
808
|
|
Файлы сессий хранятся на сервере, а печеньки на стороне клиента.
А идентификатор сессии, как правило, в печеньках...
|
|
|

11.12.2008, 07:46
|
|
Познающий
Регистрация: 27.07.2008
Сообщений: 98
Провел на форуме: 405792
Репутация:
86
|
|
ТС спросил как получить, а не как написать скрипт который создает сессии или устанавливает куки. ТС куки приходят в заголовке 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:.; 11.12.2008 в 08:14..
|
|
|

11.12.2008, 17:33
|
|
Новичок
Регистрация: 23.01.2008
Сообщений: 10
Провел на форуме: 10334
Репутация:
0
|
|
Спс. И ещё вопросик, как можно сам код страницы курлами вытащить для дальнейшего поиска в нём строки? Если не сложно то выложите кусочек кода. Заранее спасибо
|
|
|

11.12.2008, 17:46
|
|
Постоянный
Регистрация: 29.05.2007
Сообщений: 852
Провел на форуме: 4832771
Репутация:
1916
|
|
Ответ на вопрос здесь дал только .:nbd:., остальные чисто понты гоняют или вопрос плохо поняли)
Спс. И ещё вопросик, как можно сам код страницы курлами вытащить для дальнейшего поиска в нём строки? Если не сложно то выложите кусочек кода. Заранее спасибо
собственно в примере .:nbd:. переменная $temp и будет содержать код полученной страницы.
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|