Avatar billede rince Nybegynder
10. oktober 2007 - 19:40 Der er 11 kommentarer og
1 løsning

Implode fra side der bruger cookies

Hej

Jeg vil gemme data fra en side der bruger cookies.

Eksempelvis denne

$page = implode('', file ("http://www.dvdpacific.com/search.asp?genre=COMEDIES"));

Jeg kan dog ikke helt få det til at virke, da siden undersøger om cookies er sat.

Hvis de ikke er sat render man ind i denne side:


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>DVD Pacific - Buy New DVD Movies, HD DVD and Blu-Ray discs</title>
<meta name="verify-v1" content="eSzzRfEIxThIQfOKMG0KsisbQ8LfY73eQeiH7uGmfls=" />
<base href="http://www.dvdpacific.com">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<META NAME="DESCRIPTION" CONTENT="On-line Store of DVD Movies, HD-DVD Films, Blu-ray Discs, Cartoons, Anime, CD Music, DTS Audio and Adult Video. Always a wide selection of the latest New Releases, Bestellers and Classic DVDs with over 500,000 products instock and ready to ship internationally within 24 hours.">




<script language=javascript>
    document.location='http://www.dvdpacific.com/search.asp?genre=COMEDIES';
</script>

</head>

<body bgcolor="#FFFFFF" leftmargin="0" topmargin="0">

<table width="100%" height="100%" border="0" cellpadding="0" cellspacing="0">
  <tr>
    <td width="100%" height="100%" valign="middle" align="center">

        <p>Secure server is processing your request...</p>
        <p><a href="http://www.dvdpacific.com/search.asp?genre=COMEDIES">Please use this link if process takes long</a></p></td>
  </tr>
</table>

<script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
</script>
<script type="text/javascript">
_uacct = "UA-2233170-1";
urchinTracker();
</script>

</body>
</html>

Note, har prøvet med php's setCookie("", "")

men det virker heller ikke :(
Avatar billede jakobdo Ekspert
10. oktober 2007 - 20:31 #1
Det du skal gøre, er at forbinde en gang til siden.
Der får du en session/cookie session.
Den skal du så smide med i dit kald nummer 2.
Avatar billede rince Nybegynder
10. oktober 2007 - 21:05 #2
Og så kommer det gyldne spørgsmål

Hvordan får jeg lige smidt den/de cookies der er oprettet efter kald et med i kald 2?
Avatar billede jakobdo Ekspert
10. oktober 2007 - 21:40 #3
:o)

Du kan evt. sende det via fsockopen()
Prøv at kig lidt på: http://www.php.net/fsockopen
Avatar billede rince Nybegynder
10. oktober 2007 - 21:51 #4
Super.

Jeg kunne vel ikke få dig til at komme med et lille eksempel.

Inde under dokumentationen står der faktisk at de råder en til at bruge header() funktionen til cookies.

Men hvordan får jeg lige læst de cookies der er kommet efter første kald?

Som sagt kunne jeg godt bruge et lille eksempel, hvis du har en god ide til hvordan det kan gøres :)
Avatar billede erikjacobsen Ekspert
10. oktober 2007 - 21:54 #5
Hvis din PHP har curl-biblioteket med, så kan det klares på et lidt mere overordnet plan.
Avatar billede rince Nybegynder
10. oktober 2007 - 21:58 #6
Den har den
Avatar billede jakobdo Ekspert
10. oktober 2007 - 22:11 #7
CURL kender jeg ikke det store til, men du skal gennem følgende steps:

Kontakt: http://www.dvdpacific.com/search.asp?genre=COMEDIES
Her får du en ASPSESSION og du får en ny adresse
Kontakt: http://www.dvdpacific.com/se.secure/GVenter.asp?domain=www%2Edvdpacific%2Ecom&rd=%2Fsearch%2Easp%3Fgenre%3DCOMEDIES
Angiv den ASPSESSION du fik før

Kontakt: http://www.dvdpacific.com/se.secure/enter.asp?gvkpass=25271103868287277386707633667781&rd=%2Fsearch%2Easp%3Fgenre%3DCOMEDIES
Og angiv så GVK og ASPSESSION.

Og så får du indholdet! :o)

Jeg ved dog ikke om CURL kan gøre det hele i et hug for dig.
Avatar billede rince Nybegynder
11. oktober 2007 - 07:58 #8
Ja det var en lidt omstændig proces - så hvis CURL kan gøre det lidt lettere kunne det være fedt.

Du kunne vel ikke komme med et lille eksempel Erik?
Avatar billede rince Nybegynder
11. oktober 2007 - 19:23 #9
Jeg kan ikke helt få dit forslag til at virke Jakobdo - jeg kunne vel ikke få dig til at smide lidt phpkode herop :)
Avatar billede jakobdo Ekspert
11. oktober 2007 - 20:43 #10
Det kan du tro...

Det kan muligvis laves smartere, men her kommer det:

<?php
//http://www.eksperten.dk/spm/800423

function my_fsock($url,$headers=array(),$host="www.dvdpacific.com",$port=80)
{
    $fp = fsockopen($host, $port, $errno, $errstr, 30);
    if (!$fp)
    {
        return false;
    }
    else
    {
        $out  = "GET $url HTTP/1.1\r\n";
        $out .= "Host: www.dvdpacific.com\r\n";
        if(count($headers)>0)
        {
            for($i = 0; $i < count($headers); $i++)
            {
                $out .= $headers[$i] . "\r\n";
            }
        }
        $out .= "Connection: Close\r\n\r\n";

        fwrite($fp, $out);
        $output = '';
        while (!feof($fp))
        {
            $output .= fgets($fp, 128);
        }
        fclose($fp);
    }
    return $output;
}

function my_location($input)
{
    if(preg_match('%Location:\shttp://www.dvdpacific.com(.+)\r\n%', $input, $match))
    {
        return $match[1];
    }
    return false;
}

function my_cookie($input)
{
    if(preg_match('/Set-Cookie:\s(.+);/', $input, $match))
    {
        return $match[1];
    }
}

$info_1    = my_fsock("/search.asp?genre=COMEDIES");
$location_1 = my_location($info_1);
$cookie_1  = my_cookie($info_1);

$info_2    = my_fsock($location_1,array("Cookie: " . $cookie_1 . ";"));
$location_2 = my_location($info_2);
$cookie_2  = my_cookie($info_2);

$info_3    = my_fsock($location_2,array("Cookie: " . $cookie_2 . ";"));
$cookie_3  = my_cookie($info_3);

$info_4    = my_fsock("/search.asp?genre=COMEDIES",array("Cookie: " . $cookie_3 . ";"));

echo '<textarea cols="100" rows="100">' . $info_4 . '</textarea>';

?>

Og du kan se det i aktion her: http://www.codebreaker.dk/exp/800423exp.php
Avatar billede rince Nybegynder
11. oktober 2007 - 21:44 #11
Super. Jeg takker mange gange - det er helt perfekt.

Smid et svar så får du mine point.
Avatar billede jakobdo Ekspert
11. oktober 2007 - 22:06 #12
Svar!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester