[COLOR=#000000][FONT=Courier New][COLOR=#0000bb]<?php
$hostname [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#dd0000]"localhost"[/COLOR][/FONT][FONT=Courier New][COLOR=#007700];
[/COLOR][COLOR=#0000bb]$path [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#dd0000]"/test/index.php"[/COLOR][/FONT][COLOR=#007700][FONT=Courier New];
[/FONT][/COLOR][FONT=Courier New][COLOR=#ff8000]// Устанавливаем соединение, имя которого
// передано в параметре $hostname
[/COLOR][COLOR=#0000bb]$fp [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000bb]fsockopen[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000bb]$hostname[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000bb]80[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000bb]$errno[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000bb]$errstr[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000bb]30[/COLOR][/FONT][COLOR=#007700][FONT=Courier New]);
[/FONT][/COLOR][FONT=Courier New][COLOR=#ff8000]// Проверяем успешность установки соединения
[/COLOR][COLOR=#007700]if (![/COLOR][COLOR=#0000bb]$fp[/COLOR][COLOR=#007700]) echo [/COLOR][COLOR=#dd0000]"$errstr ($errno)<br />\n"[/COLOR][/FONT][COLOR=#007700][FONT=Courier New];
else
{
[/FONT][/COLOR][FONT=Courier New][COLOR=#ff8000]// Формируем HTTP-заголовки для передачи
// его серверу
[/COLOR][COLOR=#0000bb]$headers [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#dd0000]"GET $path HTTP/1.1\r\n"[/COLOR][/FONT][FONT=Courier New][COLOR=#007700];
[/COLOR][COLOR=#0000bb]$headers [/COLOR][COLOR=#007700].= [/COLOR][COLOR=#dd0000]"Host: $hostname\r\n"[/COLOR][/FONT][FONT=Courier New][COLOR=#007700];
[/COLOR][COLOR=#0000bb]$headers [/COLOR][COLOR=#007700].= [/COLOR][COLOR=#dd0000]"Connection: Close\r\n\r\n"[/COLOR][/FONT][COLOR=#007700][FONT=Courier New];
[/FONT][/COLOR][FONT=Courier New][COLOR=#ff8000]// Отправляем HTTP-запрос серверу
[/COLOR][COLOR=#0000bb]fwrite[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000bb]$fp[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000bb]$headers[/COLOR][/FONT][COLOR=#007700][FONT=Courier New]);
[/FONT][/COLOR][FONT=Courier New][COLOR=#ff8000]// Получаем ответ
[/COLOR][COLOR=#007700]while (![/COLOR][COLOR=#0000bb]feof[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000bb]$fp[/COLOR][/FONT][FONT=Courier New][COLOR=#007700]))
{
[/COLOR][COLOR=#0000bb]$line [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000bb]fgets[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000bb]$fp[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000bb]1024[/COLOR][/FONT][COLOR=#007700][FONT=Courier New]);
[/FONT][/COLOR][FONT=Courier New][COLOR=#ff8000]// Ищем строку вида
// Set-Cookie: PHPSESSID=6197e647566bdaa24da3ab42ae7604b2;
// Именно она устанавливает cookie
[/COLOR][COLOR=#0000bb]preg_match[/COLOR][COLOR=#007700]([/COLOR][COLOR=#dd0000]"|Set-Cookie: PHPSESSID=([\d\w]+);|i"[/COLOR][COLOR=#007700],[/COLOR][COLOR=#0000bb]$line[/COLOR][COLOR=#007700],[/COLOR][COLOR=#0000bb]$out[/COLOR][/FONT][FONT=Courier New][COLOR=#007700]);
if(!empty([/COLOR][COLOR=#0000bb]$out[/COLOR][COLOR=#007700][[/COLOR][COLOR=#0000bb]1[/COLOR][/FONT][FONT=Courier New][COLOR=#007700]]))
{
[/COLOR][COLOR=#0000bb]$SID [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000bb]$out[/COLOR][COLOR=#007700][[/COLOR][COLOR=#0000bb]1[/COLOR][/FONT][FONT=Courier New][COLOR=#007700]];
break;
}
}
[/COLOR][COLOR=#0000bb]fclose[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000bb]$fp[/COLOR][/FONT][FONT=Courier New][COLOR=#007700]);
}
[/COLOR][COLOR=#0000bb]$hostname [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#dd0000]"localhost"[/COLOR][/FONT][FONT=Courier New][COLOR=#007700];
[/COLOR][COLOR=#0000bb]$path [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#dd0000]"/test/handler.php"[/COLOR][/FONT][FONT=Courier New][COLOR=#007700];
[/COLOR][COLOR=#0000bb]$line [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#dd0000]""[/COLOR][/FONT][COLOR=#007700][FONT=Courier New];
[/FONT][/COLOR][FONT=Courier New][COLOR=#ff8000]// Передаём методом POST имя пользователя (admin),
// его пароль (admin), скрытое поле session_id ($SID)
// В заголовках, передаём cookie PHPSESSID
// Устанавливаем соединение, имя которого
// передано в параметре $hostname
[/COLOR][COLOR=#0000bb]$fp [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000bb]fsockopen[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000bb]$hostname[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000bb]80[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000bb]$errno[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000bb]$errstr[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000bb]30[/COLOR][/FONT][COLOR=#007700][FONT=Courier New]);
[/FONT][/COLOR][FONT=Courier New][COLOR=#ff8000]// Проверяем успешность установки соединения
[/COLOR][COLOR=#007700]if (![/COLOR][COLOR=#0000bb]$fp[/COLOR][COLOR=#007700]) echo [/COLOR][COLOR=#dd0000]"$errstr ($errno)<br />\n"[/COLOR][/FONT][COLOR=#007700][FONT=Courier New];
else
{
[/FONT][/COLOR][FONT=Courier New][COLOR=#ff8000]// Данные POST-запроса
[/COLOR][COLOR=#0000bb]$data [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#dd0000]"name=admin&pass=admin&session_id=$SID&\r\n\r\n"[/COLOR][/FONT][COLOR=#007700][FONT=Courier New];
[/FONT][/COLOR][FONT=Courier New][COLOR=#ff8000]// Формируем HTTP-заголовки для передачи
// его серверу
[/COLOR][COLOR=#0000bb]$headers [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#dd0000]"POST $path HTTP/1.1\r\n"[/COLOR][/FONT][FONT=Courier New][COLOR=#007700];
[/COLOR][COLOR=#0000bb]$headers [/COLOR][COLOR=#007700].= [/COLOR][COLOR=#dd0000]"Host: $hostname\r\n"[/COLOR][/FONT][FONT=Courier New][COLOR=#007700];
[/COLOR][COLOR=#0000bb]$headers [/COLOR][COLOR=#007700].= [/COLOR][COLOR=#dd0000]"Content-type: application/x-www-form-urlencoded\r\n"[/COLOR][/FONT][FONT=Courier New][COLOR=#007700];
[/COLOR][COLOR=#0000bb]$headers [/COLOR][COLOR=#007700].= [/COLOR][COLOR=#dd0000]"Content-Length: "[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000bb]strlen[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000bb]$data[/COLOR][COLOR=#007700]).[/COLOR][COLOR=#dd0000]"\r\n"[/COLOR][/FONT][COLOR=#007700][FONT=Courier New];
[/FONT][/COLOR][FONT=Courier New][COLOR=#ff8000]// Подделываем cookie
[/COLOR][COLOR=#0000bb]$headers [/COLOR][COLOR=#007700].= [/COLOR][COLOR=#dd0000]"Cookie: PHPSESSID=$SID;\r\n"[/COLOR][/FONT][FONT=Courier New][COLOR=#007700];
[/COLOR][COLOR=#0000bb]$headers [/COLOR][COLOR=#007700].= [/COLOR][COLOR=#dd0000]"Connection: Close\r\n\r\n"[/COLOR][/FONT][COLOR=#007700][FONT=Courier New];
[/FONT][/COLOR][FONT=Courier New][COLOR=#ff8000]// Отправляем HTTP-запрос серверу
[/COLOR][COLOR=#0000bb]fwrite[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000bb]$fp[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000bb]$headers[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000bb]$data[/COLOR][/FONT][COLOR=#007700][FONT=Courier New]);
[/FONT][/COLOR][FONT=Courier New][COLOR=#ff8000]// Получаем ответ
[/COLOR][COLOR=#007700]while (![/COLOR][COLOR=#0000bb]feof[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000bb]$fp[/COLOR][/FONT][FONT=Courier New][COLOR=#007700]))
{
[/COLOR][COLOR=#0000bb]$line [/COLOR][COLOR=#007700].= [/COLOR][COLOR=#0000bb]fgets[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000bb]$fp[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000bb]1024[/COLOR][/FONT][FONT=Courier New][COLOR=#007700]);
}
[/COLOR][COLOR=#0000bb]fclose[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000bb]$fp[/COLOR][/FONT][FONT=Courier New][COLOR=#007700]);
}
echo [/COLOR][COLOR=#0000bb]$line[/COLOR][/FONT][FONT=Courier New][COLOR=#007700];
[/COLOR][COLOR=#0000bb]?>[/COLOR] [/FONT][/COLOR]
Куки с чужого ресурса
мне нужно редиректить юзверя на его ящик, для этого использую cUrl для логина получаю токен и редиректю, но там есть подтверждение регистрации. Т.е если новый ящик заведен то токен не отдаеться - нет редиректа. Есть куки получаемые от гугла в этом случае - пример хедера
HTTP/1.1 200 OK
Content-Type: text/html; charset=UTF-8
Set-Cookie: HID=DQAAAHcAAADm3-oFL0YCCrbf_zxBQH_9ubrT0moeC9bYWERd600v_P28tBNGRIz74t8Ou61_RwhmL4JJah0qAc1ReOtbcJ5GC8WBbRWxuyjO0szMMMa0Xk1OZd6uXB81HOjDMaQeCPib5gXWEQRSHF6W63dpgScJzS0Oxn1BN6avpH6WWIsKNA;Domain=www.google.com;Path=/a/turmir.com/;Secure
Set-Cookie: HID=EXPIRED;Domain=.google.com;Path=/a/turmir.com/;Expires=Mon, 01-Jan-1990 00:00:00 GMT
Set-Cookie: HUSR=mail:test@turmir.com;Path=/a/turmir.com/;Secure
Set-Cookie: ASIDAS=aHBHU3pXSUJBQUE9LnR0cktDVzQ5Y3l1blJoak4rNUZVVlE9PS5XWEpCSndLdzZjTFlmY3Y4YXlHMVpRPT0=;Domain=www.google.com;Path=/a/
Date: Fri, 18 Apr 2008 08:29:17 GMT
Expires: Fri, 18 Apr 2008 08:29:17 GMT
Cache-Control: private, max-age=0
Content-Length: 12069
Server: GFE/1.3
Вопрос, как мне зная эти куки отдать их браузеру, и редериктнуть на определенный урл, но чтоб эти куки отработались
Или может кто уже работал с Gmail и PHP - зенд классы для работы с гуглям не подходят так как не могут работать с Гмылом или не нашел
setcookie("test", "value", time(), "/", "site.com"); // Установиться
setcookie("test", "value", time(), "/", "google.com");// не установиться
Как я понимаю это механизм безопастности и его обойти не представляеться возможным
Кста если отправлять не через setcookie а заголовками - эффект тот же для куки с указанием хоста
ЗЫ все равно сенкс за труды :)
Авторизуйся на своем серваке зырь хедеры, и ответы =)
А потом тоже самое пошли со своего сервака.
Я таким образом спокойно логинюсь к сайту через редиректы... =)
Цитата: newcss
Бред какой-то... Ставь Фаер Фокс, к нему лепи плагин - Ливе Хедер =).
Авторизуйся на своем серваке зырь хедеры, и ответы =)
А потом тоже самое пошли со своего сервака.
Я таким образом спокойно логинюсь к сайту через редиректы... =)
Авторизуйся на своем серваке зырь хедеры, и ответы =)
А потом тоже самое пошли со своего сервака.
Я таким образом спокойно логинюсь к сайту через редиректы... =)
Аха и для проекта который пишу нада фак написать :) типа юзвери не ипите мне моцк ставте файерфок кучу плагинов потом делайте исче это и в конечном счете вообще что вы тут забыли? :)))
Блин... не прально понял меня ты... Ты посмотри какие хедеры шлются... А потом просто программно их получай ну или формируй...
Цитата: newcss
Блин... не прально понял меня ты... Ты посмотри какие хедеры шлются... А потом просто программно их получай ну или формируй...
Уже разобрался :)
Вощщем дело обстоит так - все эти expired, domen и тд. это фича только для браузеров, серв как принимает name=value; так и будет принимать, так что curl рулит