Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   Куки в php (https://forum.antichat.xyz/showthread.php?t=195013)

xor[jmp] 10.04.2010 02:18

Куки в php
 
Подскажите пожалуйста как принять куки от сайта средствами .php и записать их в переменную?

m0Hze 10.04.2010 02:21

Цитата:

Сообщение от xor[jmp]
Подскажите пожалуйста как принять куки от сайта средствами .php и записать их в переменную?

Все куки твоего сайта лежат в $_COOKIE;
PHP код:

setcookie("name","values");
print_r($_COOKIE); 


xor[jmp] 10.04.2010 02:28

Вот такая ошибка:

Цитата:

Warning: Cannot modify header information - headers already sent by (output started at C:\AppServ\www\login.php:1) in C:\AppServ\www\login.php on line 2
В таком коде:

Цитата:

<?php

setcookie("test","Hello");
$response="";
if ($fp = fsockopen ("vkontakte.ru", 80, $errno, $errstr, 30))
{
$request ="POST /profile.php HTTP/1.0\r\n";
$request.="Host: vkontakte.ru\r\n";
$request.="Content-Type: application/x-www-form-urlencoded\r\n";
$request.="Content-Length: 7\r\n";
$request.="\r\n\r\n";
$request.="foo=bar";

fwrite($fp,$request,strlen($request));

while (!feof($fp))
$response.=fread($fp,128);

if(strpos($response,"302"))
{
fclose($fp);
echo "<pre>\n";
echo htmlentities($response);
echo "</pre>\n";
}
else

echo "<pre>\n";
echo htmlentities($response);
echo "</pre>\n";

}
?>
:(

m0Hze 10.04.2010 02:45

Цитата:

Сообщение от xor[jmp]
Вот такая ошибка:


...
:(

Сохрани без BOM. Например, это можно сделать в Notepad++.

Fepsis 10.04.2010 02:51

m0Hze, насколько я понял он хочет зайти на сайт вконтакте и сохранить полученные там куки в переменную...

PHP код:

<?php
$response
="";
if (
$fp fsockopen ("vkontakte.ru"80$errno$errstr30))
{
$request ="POST /profile.php HTTP/1.0\r\n";
$request.="Host: vkontakte.ru\r\n";
$request.="Content-Type: application/x-www-form-urlencoded\r\n";
$request.="Content-Length: 7\r\n";
$request.="\r\n\r\n";
$request.="foo=bar";

fwrite($fp,$request,strlen($request));

while (!
feof($fp))
$response.=fread($fp,128);

if(
strpos($response,"302"))

fclose($fp);
echo 
"<pre>\n";
echo 
htmlentities($response);
echo 
"</pre>\n";

else

echo 
"<pre>\n";
echo 
htmlentities($response);
echo 
"</pre>\n";

preg_match_all("/(?<=Set-Cookie: )(.*?)(?=\;)/"$response $cook);
echo 
'<br><br><br>Куки:<br>';
print_r($cook[0]);

}
?>


m0Hze 10.04.2010 02:55

Цитата:

Сообщение от Fepsis
m0Hze, насколько я понял он хочет зайти на сайт вконтакте и сохранить полученные там куки в переменную...

Ну тогда нужно точнее выражать свои мысли, я не телепат. И вообще я хочу спать :(

xor[jmp] 10.04.2010 03:02

Цитата:

Сообщение от Fepsis
m0Hze, насколько я понял он хочет зайти на сайт вконтакте и сохранить полученные там куки в переменную...

PHP код:

<?php
$response
="";
if (
$fp fsockopen ("vkontakte.ru"80$errno$errstr30))
{
$request ="POST /profile.php HTTP/1.0\r\n";
$request.="Host: vkontakte.ru\r\n";
$request.="Content-Type: application/x-www-form-urlencoded\r\n";
$request.="Content-Length: 7\r\n";
$request.="\r\n\r\n";
$request.="foo=bar";

fwrite($fp,$request,strlen($request));

while (!
feof($fp))
$response.=fread($fp,128);

if(
strpos($response,"302"))

fclose($fp);
echo 
"<pre>\n";
echo 
htmlentities($response);
echo 
"</pre>\n";

else

echo 
"<pre>\n";
echo 
htmlentities($response);
echo 
"</pre>\n";

preg_match_all("/(?<=Set-Cookie: )(.*?)(?=\;)/"$response $cook);
echo 
'<br><br><br>Куки:<br>';
print_r($cook[0]);

}
?>


Ога, спс.А также интересно как их подставить контакту чтоб потом авторизироваться и получить profile.php ^_^

Fepsis 10.04.2010 03:11

Цитата:

Сообщение от xor[jmp]
Ога, спс.А также интересно как их подставить контакту чтоб потом авторизироваться и получить profile.php ^_^

Давно как-то писал функцию для запросов, которая автоматов выдирает куки и автоматом же подставляет их в последующих запросах... Вот:

PHP код:

<?php
set_time_limit
(0);

$mail 'мыло@mail.ru';
$pass 'пасс';


function 
request($url ''$post ''$ref '')
     {

    
$u parse_url($url);
    
$path $u[path].'?'.$u[query];

    global 
$COOKIE;

    if (
$COOKIE)
         {
        foreach (
$COOKIE as $n => $v)
        
$COOK .= $n.'='.$v.';';
         }

    
$ip gethostbyname($u[host]);
    
$fp fsockopen($ip,80,$en,$es,15);

    if(!
$fp){exit('Connection failed. Error #'.$en.': '.$es);}  
    
    if (!empty(
$post)) {$req "POST $path HTTP/1.1\r\n";} else {$req "GET $path HTTP/1.0\r\n";}
    
$req .= "Host: $u[host]\r\n";
    
$req .= "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.1.4) Gecko/20091016 Firefox/3.5.4\r\n";
    if (!empty(
$ref)) {$req .= "Referer: $ref\r\n";}
    
$req .= "Content-type: application/x-www-form-urlencoded\r\n";
    if (!empty(
$post)) {$req .= "Content-length: "strlen($post) ."\r\n";}
    
$req .= "Cookie:".substr($COOK0strlen($COOK)-1)."\r\n";
    
$req .= "Connection: close\r\n\r\n";
    if (!empty(
$post)) {$req .= $post;}
    
fwrite($fp,$req);
 

    while(!
feof($fp))
         {
          
$s .= fgets($fp,256);
         }


    
fclose($fp);
    
preg_match_all("/(?<=Set-Cookie: )(.*?)(?=\;)/"$s $cook);

    foreach (
$cook[0] as $str)
        {
          list (
$name$val) = explode('='$str);
          
$COOKIE[$name]=$val;
    
        }

    return 
$s;

}



$ex request('http://vkontakte.ru/login.php?email='.$mail.'&pass='.$pass);
$ex request('http://vkontakte.ru/profile.php');

echo 
$ex;

?>

За корректность работы функции не ручаюсь, но за основу можешь её взять...

xor[jmp] 10.04.2010 03:31

Да, спс оно. +


Время: 13:50