- PR -

PHP&Curlの プラウザ模擬問題

1
投稿者投稿内容
迷い初
会議室デビュー日: 2005/06/25
投稿数: 13
投稿日時: 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までは正常なんですが、そこで 商品情報を確認する をクリックすると、
エラーページに行ってしまいます、
いろいろと何度も挑戦しても同じ結果です。
どこがミスっているんでしょうか?
お忙しいと思いますが、分かる方よろしくお願いします。

参照リングも書いときますので、よろしくお願いします
迷い初
会議室デビュー日: 2005/06/25
投稿数: 13
投稿日時: 2006-12-20 03:54
参照リングです、よろしくお願いします
http://hotrin.sakura.ne.jp/rakuten.class.php
1

スキルアップ/キャリアアップ(JOB@IT)