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;
}
?>
<?
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;
}
?>
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;
}
?>
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;
?>
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.