ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Получить куки [php]
  #1  
Старый 10.12.2008, 22:24
bad_signal
Новичок
Регистрация: 23.01.2008
Сообщений: 10
Провел на форуме:
10334

Репутация: 0
По умолчанию Получить куки [php]

Здравствуйте.
Встала задача зайти на сайт 2раза при помощи PHP.
В первый раp мне нужно зайти и получить какие-то данные, которые я смогу вписать при втором заходе.
Тобиш куки или сессии.

Каким образом это можно осуществить?
Если можно, то выложите кусочек кода.
 
Ответить с цитированием

  #2  
Старый 10.12.2008, 22:29
preda1or
Участник форума
Регистрация: 27.10.2008
Сообщений: 278
Провел на форуме:
1495545

Репутация: 242
Отправить сообщение для preda1or с помощью ICQ
По умолчанию

Сессии
Цитата:
<?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>';
?>
 
Ответить с цитированием

  #3  
Старый 10.12.2008, 22:29
159932
Постоянный
Регистрация: 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);
 
Ответить с цитированием

  #4  
Старый 10.12.2008, 22:30
preda1or
Участник форума
Регистрация: 27.10.2008
Сообщений: 278
Провел на форуме:
1495545

Репутация: 242
Отправить сообщение для preda1or с помощью ICQ
По умолчанию

Cookies:
Цитата:
<?php
setcookie ("TestCookie", "", time() - 3600, "/~rasmus/", ".utoronto.ca", 1);
echo $TestCookie;
echo $_COOKIE["TestCookie"];
?>
 
Ответить с цитированием

  #5  
Старый 10.12.2008, 23:25
FeoЩту
Познающий
Регистрация: 13.11.2008
Сообщений: 31
Провел на форуме:
70426

Репутация: 14
По умолчанию

Код:
session_start();
if(!isset($_SESSION['temp'])) {
$_SESSION['temp'] = 'true';
} else {
echo $_SESSION['temp'];
unset($_SESSION['temp']);
}
 
Ответить с цитированием

  #6  
Старый 11.12.2008, 00:21
Chaak
Познавший АНТИЧАТ
Регистрация: 01.06.2008
Сообщений: 1,047
Провел на форуме:
5321514

Репутация: 3313


Отправить сообщение для Chaak с помощью ICQ
По умолчанию

2preda1or, скрипт отобразит инфу после релойда страницы, т.к сначала браузер получит куки, но не передаст на сервер

2остальным, не путайте сессии с cookie. Файлы сессий хранятся на сервере, а печеньки на стороне клиента.
 
Ответить с цитированием

  #7  
Старый 11.12.2008, 00:42
astrologer
Постоянный
Регистрация: 30.08.2007
Сообщений: 773
Провел на форуме:
3069349

Репутация: 808


По умолчанию

Цитата:
Файлы сессий хранятся на сервере, а печеньки на стороне клиента.
А идентификатор сессии, как правило, в печеньках...
 
Ответить с цитированием

  #8  
Старый 11.12.2008, 07:46
.:nbd:.
Познающий
Регистрация: 27.07.2008
Сообщений: 98
Провел на форуме:
405792

Репутация: 86
По умолчанию

ТС спросил как получить, а не как написать скрипт который создает сессии или устанавливает куки. ТС куки приходят в заголовке SetCookie ответа после первого обращения к серверу. Прарсим заголовки, сохраняем установленные плюшки, дальше как написал 159932.

код примерно такой:
PHP код:
$url='http://site.ru/index.php';
//задаем урл

$ch curl_init();
curl_setopt($chCURLOPT_URL,$url); 
curl_setopt($chCURLOPT_RETURNTRANSFER1);
curl_setopt($chCURLOPT_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($chCURLOPT_URL,$url); 
curl_setopt($chCURLOPT_RETURNTRANSFER1);
curl_setopt($chCURLOPT_COOKIE,$cookie);
$temp=curl_exec($ch);
curl_close($ch);
//засылаем CURLом плюшки обратно 
Но.
Сервер плюшки обычно ставить только после каких либо действий, например авторизации. Для того, чтобы залогиниться нужно будет отправить POSTом (обчно это пост) логин и пасс (ну как минимум) в первом запросе. Тогда его код изменится на :

PHP код:
 $post_data='login=vasya&pass=trucoder';

$ch curl_init();
curl_setopt($chCURLOPT_URL,$url); 
curl_setopt($chCURLOPT_RETURNTRANSFER1);
curl_setopt($chCURLOPT_POSTFIELDS$post_data);
curl_setopt($chCURLOPT_HEADER,1);
$temp=curl_exec($ch);
curl_close($ch); 
Для полного ответа задай правильно вопрос, что именно тебе нужно сделать.

Последний раз редактировалось .:nbd:.; 11.12.2008 в 08:14..
 
Ответить с цитированием

  #9  
Старый 11.12.2008, 17:33
bad_signal
Новичок
Регистрация: 23.01.2008
Сообщений: 10
Провел на форуме:
10334

Репутация: 0
По умолчанию

Спс. И ещё вопросик, как можно сам код страницы курлами вытащить для дальнейшего поиска в нём строки? Если не сложно то выложите кусочек кода. Заранее спасибо
 
Ответить с цитированием

  #10  
Старый 11.12.2008, 17:46
.:EnoT:.
Постоянный
Регистрация: 29.05.2007
Сообщений: 852
Провел на форуме:
4832771

Репутация: 1916


По умолчанию

Ответ на вопрос здесь дал только .:nbd:., остальные чисто понты гоняют или вопрос плохо поняли)

Цитата:
Спс. И ещё вопросик, как можно сам код страницы курлами вытащить для дальнейшего поиска в нём строки? Если не сложно то выложите кусочек кода. Заранее спасибо
собственно в примере .:nbd:. переменная $temp и будет содержать код полученной страницы.
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ