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

Форум PHP

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Помогите разобраться с сокетами

Сообщения:  [1-2] 

 
 автор: Fractured#   (23.11.2009 в 00:12)   письмо автору
 
   для: Patriot22   (22.11.2009 в 22:14)
 

Во-первых,
<?php
$data 
'login=' urlencode($login) . '&pass=' urlencode($password);
?>


Во-вторых, достань все cookie
<?php
if( preg_match_all('#^Set-Cookie:\\s*([^=]+)=([^;\\s]+)#m'$headers$matches) )
{
    
$cookie_header 'Cookie: ';

    for(
$i 0$i count($matches[0]); $i++)
        
$cookie_header .= ($i '; ' '') . $matches[1][$i] . '=' $matches[2][$i];

    
$out .= $cookie_header "\r\n";
}

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

  Ответить  
 
 автор: Patriot22   (22.11.2009 в 22:14)   письмо автору
 
 

я передаю серверу логин и пароль, пишет что авторизован, всё норм. получаю куки, которые он устанавливаю. и потом хочу открыть страницу которая доступна только для авторизованных, но меня выбрасывает на авторизацию. ща покажу код, всё поймёте


<?php
// разные кон данные
$host 'anyhost.ru';
$path '/auth.php';
$login 'login';
$password 'pass';
$data '&login=' $login '&pass=' $password;
$useragent 'Nokia';


// авторизация
$fp    =    fsockopen($host80$errno$errstr10);
$error 0;
if(!
$fp) die('error');
$out    =    "POST " $path " HTTP/1.1\r\n";
$out    .=    "Host: " $host "\r\n";
$out    .=     "Content-type: application/x-www-form-urlencoded\r\n";
$out    .=    "Content-Length: " strlen($data) . "\r\n";
$out    .=    "User-agent: " $useragent "\r\n";
$out    .=    "Accept: */*\r\n";
$out    .=    "Connection: Close\r\n\r\n";
fwrite $fp$out $data );
$headers='';
while ( 
$str trim fgets $fp4096 ) ) )
$headers .= $str "\n";
$body '';
while ( !
feof $fp ) )
$body .= fgets $fp4096 );

print 
$body// выводит что авторизация успешна

// получаем куки
preg_match "|session=([0-9A-z]+)|"$headers$out );
$session        =    $out[1];




// пробуем открыть страницу только для авторизованных
$fp    =    fsockopen($host80$errno$errstr10);
$path '/page.php';
$out    =    "GET " $path " HTTP/1.1\r\n";
$out    .=    "Host: " $host "\r\n";
$out.=    "Cookie: session=" $session "\r\n";
$out    .=    "User-agent: " $useragent "\r\n";
$out    .=    "Accept: */*\r\n";
$out    .=    "Connection: Close\r\n\r\n";
fwrite $fp$out );
$headers='';
while ( 
$str trim fgets $fp4096 ) ) )
  
$headers .= $str "\n";
$body '';
while ( !
feof $fp ) )
  
$body .= fgets $fp4096 );

print 
$body// пишет не авторизованы
?>

  Ответить  

Сообщения:  [1-2] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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