header

PHPでCookie要求サイトにアクセスする

(1/2)

PHP では、HTTPヘッダの送受信を制御することができる。この機能を利用することで、Cookieを要求するようなサイトに自動アクセスすることができる。
ここでは、例として、「ぐるなび」の会員サイトにアクセスしてみる。

0001: <?php
0002: /** sendcookie.php
0003:  * Cookie要求サイトへのアクセス
0004:  *
0005:  * @copyright (c)studio pahoo
0006:  * @author     パパぱふぅ
0007:  * @version     1.0  2006/02/04
0008: */
0009: $host   = "my.gnavi.co.jp";             //ぐるなび
0010: $path   = "/";
0011: $cookie = "GMember=xxxxxxxxxxxxxxxxx";   //あなたのCookieを記入
0012: 
0013: $sock = fsockopen($host, 80, $errno$errstr, 60);
0014: 
0015: //エラー対応
0016: if ($sock == FALSE) {
0017:     echo "errno=$errno  errstr=$errstr";
0018:     break;
0019: }
0020: 
0021: $str = "";           //ダミー
0022: fputs($sock, "POST " . $path . " HTTP/1.1\r\n");
0023: fputs($sock, "Host: $host\r\n");
0024: fputs($sock, "Content-type: application/x-www-form-urlencoded\r\n");
0025: fputs($sock, "Content-length: " . strlen($str) . "\r\n");
0026: 
0027: fputs($sock, "Cookie: $cookie\r\n"); //Cookieを送り出す
0028: fputs($sock, "\r\n");
0029: fputs($sock, "$str\r\n");
0030: 
0031: //コンテンツを表示するだけ
0032: while (!feof($sock)) {
0033:     $str = fgets($sock);
0034:     echo $str;
0035: }
0036: fclose($sock);
0037: ?>