Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Залогиниться через PHP.
 
 автор: Бамси   (26.05.2007 в 23:46)   письмо автору
 
 

Есть сайт, все содержание скрываеться за авторизацией. Надо залогиниться методом PHP, и уже в дальнейшем провести там некие операции.
Я нашел вот такой скрипт:

<?php  
  $hostname 
"localhost"
  
$path "/test2/handler.php"// Аккуратнее с именами и путями 
  
$line ""
  
// Устанавливаем соединение, имя которого 
  // передано в параметре $hostname 
  
$fp fsockopen($hostname80$errno$errstr30);  
  
// Проверяем успешность установки соединения 
  
if (!$fp) echo "$errstr ($errno)<br />\n";  
  else 
  {  
    
// Данные HTTP-запроса 
    
$data =  
      
"name=".urlencode("Игорь")."&pass=".urlencode("пароль")."\r\n\r\n"
    
// Заголовок HTTP-запроса 
    
$headers "POST $path HTTP/1.1\r\n";  
    
$headers .= "Host: $hostname\r\n";  
    
$headers .= "Content-type: application/x-www-form-urlencoded\r\n"
    
$headers .= "Content-Length: ".strlen($data)."\r\n\r\n"
    
// Отправляем HTTP-запрос серверу 
    
fwrite($fp$headers.$data);  
    
// Получаем ответ 
    
while (!feof($fp)) 
    {  
      
$line .= fgets($fp1024);  
    }  
    
fclose($fp);  
  }  
  echo 
$line
?>

Помойму работает, но сайт првоеряет включены ли куки и выдает мне сообщение мол "необходимо разрешение "cookie" в вашем браузере". Как их как бы включить?

   
 
 автор: lothlorian   (26.05.2007 в 23:52)   письмо автору
 
   для: Бамси   (26.05.2007 в 23:46)
 

[поправлено модератором]

   
 
 автор: Бамси   (27.05.2007 в 00:52)   письмо автору
 
   для: Бамси   (26.05.2007 в 23:46)
 

Вообщем я там изменил заголовки, добавил дополнительные, теперь в окне браузера выдает:


HTTP/1.1 200 OK Date: Sat, 26 May 2007 20:
50:55 GMT Server: Apache X-Powered-By: 
PHP/5.2.1 Set-Cookie: 
T3E=2ADN4IjO1UjNyEjMwgTMxojNxoTZ0gzN0gD O1I2
M68mbyVmWpRWeh5kOxMDM4UjOwMCMjEzMwg TN 
Expires: Mon, 26 Jul 1997 05:00:00 GMT 
Last-Modified: Sat, 26 May 2007 20:50:55 
GMT Cache-Control: no-store, no-cache, 
must-revalidate Cache-Control: 
post-check=0, pre-check=0 Pragma: no-cache 
Content-Encoding: gzip Vary: 
Accept-Encoding Content-Length: 2045 
Connection: close Content-Type: text/html; 
charset=UTF-8 ‹ДV[ЏУF~ЏФя0&#152;
@rв[6Й‚¤оІj% ЁZTх©љШ“xXЗvнс.ыЖҐUUЃ@j«>
©h+ФѕU ±e№ь…с?к™±“ШЩ% Х Е‰зrѕу}sО™
cџXэbeэл+ђПЖєrхУ‹џЇ Ґ©i_Y+љ¶єѕЉ>[їt
µ[єЎi.+ „ђв3џХґ­­­Ц–ХЉ’‘¶юҐ& ґµ”%Фe-ЏyJЯ
Cэ†нмБЈ, эхoRў$3m­jШ 7PB'eЫI}B
bЫ1qF®3НMSщ :JZ-с ›R7Ў1Ciв
ГЧ`‘Ь$ч\Г›ёXС·µтOЈaЏ ГHшЯ$ЯftУQиЏ‹ў`Ђ
№QИHИ%ЊДЃХе|SаTVKDБцr}њ¤„9WЧЧљ=aC+й"o
EaaПQR†vъ hдСMд8Mю0ўБoЯг…x „Д 
Б(х1РK€Л:J<ШЈ«єj-©†®O8џ‘VмЗ €PШQшпщ­ью 
ћwXKєЪХ«жBмъ…Б°nq‡ї†ПгьGюЊїв{щ}б:x=OЙ
"аТљ%CЈ°CA†PрҐгСdщ00•в@aPЛB-Р<Ј5ўCmQЏщЋТ
Ћ:тAuйе<' ЎЂёг(KIґ)Ю™OУ–4{YЁxj§fK2vШ 
уTE0ю&#152;?зЇу€?ЭnЛ'‚§`‰ы5Bf…ђy4!угъSњ
њя„6 0I…ђu$Ў ьqэЖwущ-ѕ;Зr‹С”СЌIДJ
н#y¤мгрШа»—ЯOюbКHш[чqьоБађЌЋrRЦЏўЁT23
ІT™‰&^ҐZsЁI¦aMNVq{ p'ґт
ьoѕѓљ€ї”Ўwп“FЙ«pfћЦ®Ч@ЊЖr BФq†A. ‚4Ж. 
G[јЗШуКчѕНґ‰: бўXT"жM
HЌjeЄЬi¬ёўZАэP9КyЅо­С™щЫ©ы+HO}–W
аЙҐgqЖўєЌЈ8Ѓќ¤ЖcLВм]&#152;рџщ>Я•Iї›Я—>Mчњ
»PwГQ®Dqџ†‹еМ9ё“Y–„h€ѓ”њ;ь Taўґn"Ќ) 
H"‚и|)·ФУ-P&#152;?„ Їуп °чу»µD ў¤G
uь§ьNю=\(Oе’A"їH Ј$Чh!ёIбw”o
7АТ#QµуЫьe мpUа¶fеµ6oж/‘”UgдКy` е‘яQJІ
ПWИфн!4p©њяЙ®±ЄCЋЂ¶&&ж¦ЧЦ:kъLп:
=ЩќЯ[ё;ї9™ЦEјЩ'љН©Лгh@ѓў¬O;0›ѕ \’л 
[ҐY*Н6›ўҐaћ|&т)ўZ†ч,іМщј‘йЅх¶ф6жУEЪЇШіж%С
‰юТиу_fwY~Бь#вM„'єЊ·= Н_ЊC° ‹‹ВќЈHБѕ
ЁСРґ‚R1&:Дiг•\џґJeg•СА›јЎL»&C7TЛRНћRцTЉK7 
іZшњј ^Ѕ)І\ЅГяEР_€°Ѓ&#152;GщmйхY(п"}°Yо,
©–№ш‘Tз%€сЦ Б4Ыj»уЎЁµgАЪY(йЇ`oѕПKD™
тOECГ_јжREN«§vЫ‹@EЭЃ6ЎщBц w…КпЪ©(¬[кт
нV@;¦Ъ[x¬З%oojЄatЏ=Z—g= фcGеiЄњСVЌцВњ;
.й Јz`ЛыANМЁ jtЌя+ияяјYНnУ@ѕч),ЅQпЏ
Ы›*п’§ Ће©ваR/}ЌR©* љg oФ™сfіц6Ыв
¤(Љ“Н~3»3іЯ7»ВЄ0мЩИяэ "»L‚ўMЅCV1n•!
aЯІlxч¬ ’BNщуjЁ В­В#H4йЌЌAХ*$ГcKСп|…¤
_еh/ O]cS€…E`ЄУ ЙЁ4 $TлјЄ¦уў-NПВ™
C`~h1jЏ•ў‡•:
юѓuІ‡u»SkэПн‹zШwIЙ|зµЋі'›gфТqXъCэь'
Ц/Ъё=!ЌЮЪ:)y‡]ЮЖ „ЬТлИ«AдZKvzАe™
ЇWп4/ Т=ЮнАЋе±ЫНyN2›кнdІ-BЎ*/ёљN’8 
SЖЬE„µю:e;з• ,zыіСeЌл.ґ|ъ Ию<Ы"›МквFz
g“dДчы¬“ОЕЏЅшУEMЭЙ5ћЦащwтiтН6щDИ…›An
>Jк]бDї7Яв;·p2]5w"Jпхг§Н…эЎ+Eрf…]
ҐцџqI®йэЉFcуWҐ.щ„©^±йhАЫЋЪ„мб47ЅЮ/њию 
oбояяyЏБЦй


И чего мне с этим делать?

   
 
 автор: Trianon   (27.05.2007 в 01:22)   письмо автору
 
   для: Бамси   (27.05.2007 в 00:52)
 

>....
>Content-Encoding: gzip
>....
Как что? Распаковывать :)

P.S.Вообще-то заголовки принято построчно показывать, а не внавал.

   
 
 автор: Бамси   (27.05.2007 в 11:48)   письмо автору
 
   для: Trianon   (27.05.2007 в 01:22)
 

Эм... А как распоковать?
И что значит
>P.S.Вообще-то заголовки принято построчно показывать, а не внавал.

   
 
 автор: Trianon   (27.05.2007 в 14:29)   письмо автору
 
   для: Бамси   (27.05.2007 в 11:48)
 

Это значит, что Вы содрали слепок с экрана браузера, а не с окна исх. кода HTML.

   
 
 автор: Бамси   (27.05.2007 в 14:56)   письмо автору
 
   для: Trianon   (27.05.2007 в 14:29)
 

А распоковать как?

   
 
 автор: Trianon   (27.05.2007 в 16:54)   письмо автору
 
   для: Бамси   (27.05.2007 в 14:56)
 

gzinflate или чем-то из этого набора...

   
 
 автор: Бамси   (28.05.2007 в 18:32)   письмо автору
 
   для: Бамси   (26.05.2007 в 23:46)
 

Если заходить через обычный браузер то в пост запросе появляеться строчка:
Cookie: CAD=592108%231179238120; T3E=%3DEjMyUzM6ADN1AjNzADOxEjO2EjOlRDO3Q DO4UjYzozbuJXZalGZ5FmT6EzMwgTN6EzMw gTNjEzMwgTNjEzMwgTN

Откуда он ее берет?
А без нее он мне пишет мол у вас не активны куки.

   
 
 автор: Trianon   (28.05.2007 в 18:41)   письмо автору
 
   для: Бамси   (28.05.2007 в 18:32)
 

сервер ранее поставил в одном из ответов. Строчкой Set-Cookie:....

   
 
 автор: Бамси   (28.05.2007 в 18:49)   письмо автору
 
   для: Trianon   (28.05.2007 в 18:41)
 

В каком смысле ранее, если я первый раз вхожу. И если без этой строчки то он мне пишет мол у вас отключены куки.
И кстати PHP разве где то хронить Куки? То как их очистить.

   
 
 автор: Trianon   (28.05.2007 в 19:09)   письмо автору
 
   для: Бамси   (28.05.2007 в 18:49)
 

Когда Вы первый раз входите, конечно же, никакой браузер такой строки (как Вы привели) Вам не напишет. Ему её просто неоткуда взять. Такую строку можно узреть только на втором, третьем и т.д. http-запросе.

Язык php предоставляет множество средств для хранения каких угодно данных.
А кукис - тот же массив с данными по своей сути. Где, как и сколько Вы будете её хранить, дело Ваше.
Впрочем, нет, насчет "сколько" - наврал. Сколько времени хранить кукис - Вам предпишет сервер.

Полагаю, если Вы хотите иммитировать действия браузера, стоило бы более внимательно посмотреть на занимательный документ RFC-2616, ссылки на который ( в т.ч. и на русский перевод которого) на этом форуме неоднократно приводились.

   
 
 автор: Бамси   (28.05.2007 в 19:17)   письмо автору
 
   для: Trianon   (28.05.2007 в 19:09)
 

Окей... Можете ответить только на один вопрос, где PHP хранить куки, которые он получает через сессию, и как их удалить (Функция?).

   
 
 автор: Trianon   (28.05.2007 в 19:21)   письмо автору
 
   для: Бамси   (28.05.2007 в 19:17)
 

Да где угодно.
хотите - храните в файлах, удаление файла - unlink()
Хотите - в строках таблицы БД , удаление строки - SQL-запрос DELETE FROM tab WHERE ...
Хотите - в сессии того клиента, который обращается к Вашему скрипту - удаление элемента сессионного массива unset($_SESSION['project]['elem']);
Хотите - можете даже в кукисах хранить - в кукисах клиента опять же. Удаление кукисов - setcookie('имя');

   
 
 автор: Ralph   (28.05.2007 в 19:42)   письмо автору
 
   для: Trianon   (28.05.2007 в 19:21)
 

Хм,если я правильно врубился,то человек хочет как клиент зайти и на чужой машине куки очистить ??? Вот он говорит-я первый раз зашел...Ну после первого раза ты такую строку и получишь с именем твоего печенья :)

   
 
 автор: Ralph   (28.05.2007 в 20:01)   письмо автору
 
   для: Ralph   (28.05.2007 в 19:42)
 

Опа,хотя я и в сиську синий,давай твой проблема разберем...
1.Ты хочешь не вручную,а автоматически пройти систему авторизации.значит,при заходе ты должон или методами post/get передать логин/пароль (чего,как я вижу,ты не делаешь),либо передать рабочую куку (для получения ее надо опять же ранее ввести логин/пароль)

   
 
 автор: Ralph   (28.05.2007 в 20:04)   письмо автору
 
   для: Ralph   (28.05.2007 в 20:01)
 

Посему,извини меня,как ты вообще собираешься,В ПЕРВЫЙ РАЗ зайдя на сайт,автоматически авторизоваться ???

   
 
 автор: Ralph   (28.05.2007 в 20:04)   письмо автору
 
   для: Ralph   (28.05.2007 в 20:01)
 

Что это за авторизация,если ты ни пароль,ни логина,ни куки не посылаешь ???

   
 
 автор: Trianon   (28.05.2007 в 20:02)   письмо автору
 
   для: Ralph   (28.05.2007 в 19:42)
 

>Хм,если я правильно врубился,то человек хочет как клиент зайти и на чужой машине куки очистить ???

(26.05.2007 в 23:46)

>Вот он говорит-я первый раз зашел...Ну после первого раза ты такую строку и получишь с именем твоего печенья :)

Другая.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования