Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> problem z naglowkami http - fsockopen, pytanie do profesjonalistów
shycat
post 24.03.2009, 22:01:38
Post #1





Grupa: Zarejestrowani
Postów: 83
Pomógł: 1
Dołączył: 25.02.2008

Ostrzeżenie: (0%)
-----


Witam, chcialbym napisac sobie prosty skrypt PHP, ktory zaloguje sie na moje konto w serwisie fotka.pl i sprawdzi czy ktos przypadkiem nie wyslal do mnie wiadomosci. Sprawa wyglada niby prosto, poniewaz takie info dostepne sa zaraz po zalogowaniu.
Do tego celu napisalem sobie kod, ktory zawiera sie w 4 plikach: func_ciastka.php, func_glowna.php, func_logowanie.php i index.php

Oto source tych plikow:


Kod
func_ciastka.php
  
   <?
  
   function ciastka($dane="")
   {
     if ($dane=="") die("brak danych wchodzacych dla funkcji CIASTKA");
  
     $ex=explode("\r\n",$dane);
  
     $ciastko="";
  
     for ($i=0;;$i++)
     {
       if ($ex[$i]=="") break;
  
       $ex2=explode("Set-Cookie: ",$ex[$i]);
  
       if ($ex2[1]!="")
       {
         $ex3=explode("; expires=",$ex2[1]);
         $ex4=explode("; path=",$ex3[0]);
         $ciastko.=$ex4[0].";";
       }
     }
  
     return $ciastko;
   }
  
   ?>



func_glowna.php

Kod
<?
    
    function glowna($cookies="")
    {
    
    $host="www.fotka.pl";
    $path="/index.php";
    $port=80;
    $timeout=10;
    
    @$connect=fsockopen($host, $port, $errno, $errstr, $timeout);
    
    $error=false;
    
    if ($connect)
    {
      @fwrite($connect,
      "GET $path HTTP/1.1\r\n".
      "Host: $host\r\n".
      "Cookis: $cookies\r\n".
      "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.0.7) Gecko/2009021910 Firefox/3.0.7\r\n".
      "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\n".
      "Accept-Language: pl,en-us;q=0.7,en;q=0.3\r\n".
    
      "Keep-Alive: 300\r\n".
      "Connection: keep-alive\r\n".
    
      "Accept-Charset: ISO-8859-2,utf-8;q=0.7,*;q=0.7\r\n".
      "Connection: close\r\n".
      "\r\n");
    }
    
    $link .= fread($connect,4096);
    $link .= fread($connect,4096);
    $link .= fread($connect,4096);
    
    fclose($connect);
    
    return $link;
    
    }
    
    ?>


func_logowanie.php

Kod
<?
    
    function logowanie()
    {
    
      $host="www.fotka.pl";
      $path="/login.php?form_login=1";
    
      $zmienne="login=LOGIN&pass=HASLO&back_url=/logout.php";
    
      $cookie="";
    
      @$connect=fsockopen($host,"80", $errno, $errstr,"10");
    
      if ($connect)
      {
        $head.=  "POST $path HTTP/1.1\r\n";
        $head.=  "Host: $host\r\n";
        $head.=  "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.0.7) Gecko/2009021910 Firefox/3.0.7\r\n";
        $head.=  "Content-Length: ".strlen($zmienne)."\r\n";
        $head.=  "Content-Type: application/x-www-form-urlencoded\r\n";
        $head.=  "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\n";
        $head.=  "Accept-Language: pl,en-us;q=0.7,en;q=0.3\r\n";
        $head.=  "Accept-Encoding: gzip,deflate\r\n";
        $head.=  "Accept-Charset: ISO-8859-2,utf-8;q=0.7,*;q=0.7\r\n";
        $head.=  "Keep-Alive: 300\r\n";
        $head.=  "Connection: keep-alive\r\n";
        $head.=  "Referer: http://www.fotka.pl/login.php?back_url=%2Flogout.php\r\n";
        $head.=  "\r\n$zmienne\r\n";
    
        @fwrite($connect,$head);
      }
    
      $link=fread($connect,94096);
    
      fclose($connect);
    
      return $link;
    }
    
    ?>



index.php

Kod
<?
    
    include("./func_logowanie.php");
    include("./func_ciastka.php");
    
    include("./func_glowna.php");
    
    $logowanie=logowanie();
    $cookies=ciastka($logowanie);
    
    echo"<tt>";
    
    
    $log=$logowanie;
    
    $log=str_replace("\r\n","
    ",$log);
    
    echo $log;
    
    echo"\n\n\n<hr>\n\n\n";
    
    echo $cookies;
    
    echo"\n\n\n<hr>\n\n\n";
    
    $gl=glowna($cookies);
    
    $gl=str_replace("\r\n","
    ",$gl);
    
    echo $gl;
    
    
    ?>



Po wpisaniu odpowiedniego loginu i hasla w pliku func_logowanie.php skrypt "nadaje" sie do pracy, jednak kiedy otwieramy po tym index.php widac, ze nie wszystko jest dobrze ... niby otrzymujemy dobre dane zwrotne od serwera w sprawie logowania -> cookies itp, lecz kiedy probuje otworzyc strone index.php gdzie po zalogowaniu jest info o wiadomosciach to nie otwiera strony jako uzytkownik zalogowany lecz jako niezalogowany... kod przegladalem kilka razy, dlugo sie z nim meczylem, dla tego postanowilem napisac na forum, bo sam chyba nie dam rady... prosilbym o rozwiazanie problemu lub chociaz o wskazowki co robie zle.
Ps. nie chce uzywac cURL'a wole tym sposobem.

Pozdrawiam.

Cala sprawa wydaje sie lekko trudna do rozwiazania, ale mam nadzieje, ze znajdzie sie jakis profesjonalista, ktory pomoze mi rozwiazac problem, poniewaz sam nie daje rady, pozdrawiam.

Ten post edytował shycat 25.03.2009, 06:23:35


--------------------
Pomogłem? Kilknij "Pomógł"
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 08:49