2011-11-06 20 views
8

CURL ve PHP aracılığıyla vbulletin üzerine bir forum mesajı göndermem gerekiyor, zor bir iş gibi görünmüyor, ancak görüntülere sahip olmak zorundayım, ve bir görüntü yüklemeyle iyi oluyorum ama ikinci bir resim eklediğimde, sadece mesaj göndermeye çalıştığım forumdaki en üstteki konuya yönlendiriliyormuş gibi görünüyor.CURL ve PHP ile vbulletin ilan gönderileri

Heres benim kodum, sanki ikinci görüntüyü yollamak sadece resmin yolunu değiştiriyormuş gibi görünüyor, ama işe yaramıyor mu?

$post = array(
       'st' => '0', 
       'act' => 'Post', 
       's' => '', 
       'f' => '157', 
       'auth_key' => $this->scrape->fetchBetween("<input type='hidden' name='auth_key' value='", "'",$this->scrape->result), 
       'removeattachid' => '0', 
       'MAX_FILE_SIZE' => '0', 
       'CODE' => '01', 
       'post_key' => $this->scrape->fetchBetween("<input type='hidden' name='post_key' value='", "'",$this->scrape->result), 
       'TopicTitle' => $data['title'], 
       'TopicDesc' => '', 
       'tag' => $tag, 
       'bbmode' => 'normal', 
       'ffont' => '0', 
       'fsize' => '0', 
       'fcolor' => '0', 
       'LIST' => 'LIST ', 
       'helpbox' => 'Image (alt + g) [img]http://www.dom.com/img.gif[/img]', 
       'tagcount' => '', 
       'Post' => $description, 
       'enableemo' => 'yes', 
       'enablesig' => 'yes', 
       'iconid' => '0', 
       'FILE_UPLOAD' => "@".$data['img1'], 
       'attachgo' => 'Add This Attachment' 
     ); 
     $this->scrape->fetch('http://forum.lowyat.net/index.php?', $username, $post); 
     if(!empty($data['img2'])) { 
      $post = array(
       'st' => '0', 
       'act' => 'Post', 
       's' => '', 
       'f' => '157', 
       'auth_key' => $this->scrape->fetchBetween("<input type='hidden' name='auth_key' value='", "'",$this->scrape->result), 
       'removeattachid' => '0', 
       'MAX_FILE_SIZE' => '0', 
       'CODE' => '01', 
       'post_key' => $this->scrape->fetchBetween("<input type='hidden' name='post_key' value='", "'",$this->scrape->result), 
       'TopicTitle' => $data['title'], 
       'TopicDesc' => '', 
       'tag' => $tag, 
       'bbmode' => 'normal', 
       'ffont' => '0', 
       'fsize' => '0', 
       'fcolor' => '0', 
       'LIST' => 'LIST ', 
       'helpbox' => 'Image (alt + g) [img]http://www.dom.com/img.gif[/img]', 
       'tagcount' => '', 
       'Post' => $description, 
       'enableemo' => 'yes', 
       'enablesig' => 'yes', 
       'iconid' => '0', 
       'FILE_UPLOAD' => "@".$data['img2'], 
       'attachgo' => 'Add This Attachment'); 

      $this->scrape->fetch('http://forum.lowyat.net/index.php?', $username, $post); 
      echo "<pre>"; 
      print_r($post); 
      exit($this->scrape->result); 

     } 

..

Teşekkür, S

+2

$ this-> scrape-> get'in ne olduğunu öğrenmek istiyorum – Vineet1982

cevap

1

Bir katamazsın yerde bir şey saklanıyor olmalı ... önerilerinizi takdir ediyorum ama sadece göremiyorum Bir gönderiye ikinci görüntü: iki görüntülü iki gönderi yapıyorsunuz. Bunu, POST parametrelerini taklit ederek yaptığınız gibi, ilk gönderi harekete geçirilir ve ikinci gönderi, vBull'ın iki gönderiye karşı hızlı bir şekilde gönderilmesinden koruma sağlamasından dolayı olmaz. Mesajlar (neredeyse) özdeştir, böylece ikincisi reddedilir. Yapmanız gereken şey, ikinci bir görüntüyü dahil etmek için POST yapısını kontrol etmek ve iki çağrıda değil, tek bir aramada taklit etmek. ŞEKİL 3: Genel bir rehber olarak, bu tür bir yaklaşım, koddaki değişikliklerde “tehlikeli” kabul edilecektir.

Belki de vBulletin tarafından sağlanan çok işlevsel bir API kullanmayı düşünmelisiniz. https://members.vbulletin.com/api/vBulletin/vB_DataManager_ThreadPost.htmlhttps://members.vbulletin.com/api/vBulletin/vB_DataManager_Post.html

vBull ile ilgili herhangi bir şey gibi, biraz karmaşıktır, ancak (lisansınız varsa) size yardımcı olabilecek mükemmel bir forum var. "POST" ifadesinin API'da bir diziye izin verdiğini göreceksiniz.