- - PR -
PHP&Curlの プラウザ模擬問題
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2006-12-20 03:52
お世話になっております。
個人でオークションの出品模擬プログラムを書いてます ID登録から、出品ページまでうまく行きましたが、 出品ページ後の確認ページがなかなか出せなくて このような問題解決出来る方いらしゃいませんか? <?php class Rakuten{ var $curl = null; var $error = null; var $files = "file.txt"; var $cookie = "cookie.txt"; var $content = ""; var $location = ""; var $username = ""; var $password = ""; function Rakuten($username = ''){ $this->files = realpath($this->files); $this->cookie = realpath($this->cookie); list($this->username,$this->password) = @explode("|",implode("",file($this->files))); $this->curl = curl_init(); curl_setopt($this->curl, CURLOPT_SSL_VERIFYHOST, 1); curl_setopt($this->curl, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($this->curl, CURLOPT_USERAGENT,"Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)"); curl_setopt($this->curl, CURLOPT_FOLLOWLOCATION, true); curl_setopt($this->curl, CURLOPT_RETURNTRANSFER, true); } function _Rakuten(){ if($fp = @fopen($this->files,"w")){ fwrite($fp,$this->username."|".$this->password."|"); fclose($fp); @chmod($this->files,0777); @chmod($this->cookie,0777); } } function login($username,$password){ $this->username = $username; $this->password = $password; $this->request("https://www.rakuten.co.jp/myrakuten/login.html"); $data = array('__event'=>'login','service_id'=>'top','u'=>$username,'p'=>$password); $this->request("https://grp01.id.rakuten.co.jp/rms/nid/vc",'__event=login&service_id=top&u=brics1985&p=19701031'); $this->request("https://auction.item.rms.rakuten.co.jp/rms/c2c/item/DI01P001_001"); exit; return strstr($this->content,'/rms/nid/vc')?false:true; } function addProduct($data = array(),$files = array()){ $data['taxCode'] = '2'; $data['genreRadio'] = '0'; $data['genreNewText'] = ' '; $data['genreNewId'] = '112960'; $data['itemName'] = $data['item_name']; $data['iconCode'] = '99'; $data['usedFlag'] = '0'; $data['caption'] = $data['item_desc']; $data['minPrice'] = '1'; $data['maxPrice'] = '10'; $data['handlingNum'] = '1'; $data['maxBidNum'] = '1'; list($data['stimestampYY'],$data['stimestampMM'], $data['stimestampDD'],$data['stimestampHH']) = explode('-',date('Y-m-d-H')); list($data['etimestampYY'],$data['etimestampMM'], $data['etimestampDD'],$data['etimestampHH']) = explode('-',date('Y-m-d-H',time()+3600*48)); $data['exhibitionTimes'] = '0'; $data['prefectures'] = '1'; $data['serviceCode'] = '010'; $data['sizeMap[0]'] = '080'; $this->request("https://auction.item.rms.rakuten.co.jp/rms/c2c/item/DI01P001_001"); preg_match('/name="d_id" value="([^"]+)"/si',$this->content,$tmp); $data['d_id'] = $tmp[1]; preg_match('/name="subConfirm" value="([^"]+)"/si',$this->content,$tmp); $data['subConfirm'] = $tmp[1]; $this->request("https://auction.item.rms.rakuten.co.jp/rms/c2c/item/DI01P001_004",$data); } function deleteProduct($id){ } function request($file,$data = array()){ curl_setopt($this->curl, CURLOPT_COOKIEJAR, $this->cookie); curl_setopt($this->curl, CURLOPT_URL, $file); curl_setopt($this->curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($this->curl, CURLOPT_REFERER,$this->location); if(empty($data)){ curl_setopt($this->curl, CURLOPT_POST, 0); }else{ curl_setopt($this->curl, CURLOPT_POST, 1); curl_setopt($this->curl, CURLOPT_POSTFIELDS, $data); } $this->location = $file; $this->content = curl_exec($this->curl); echo "$file<br> $this->content<br />"; return $this->content; } } $a=new Rakuten(); var_dump($a->login("brics1985","19701031")); $a->addProduct(); $a->_rakuten(); ?> 出品STEP1までは正常なんですが、そこで 商品情報を確認する をクリックすると、 エラーページに行ってしまいます、 いろいろと何度も挑戦しても同じ結果です。 どこがミスっているんでしょうか? お忙しいと思いますが、分かる方よろしくお願いします。 参照リングも書いときますので、よろしくお願いします |
|
投稿日時: 2006-12-20 03:54
参照リングです、よろしくお願いします
http://hotrin.sakura.ne.jp/rakuten.class.php |
1