2011-11-06 25 views
8

Ho bisogno di postare un post sul forum su vbulletin tramite CURL e PHP, non sembra essere un lavoro duro, tuttavia deve avere immagini, e sto bene con il caricamento di un'immagine, ma non appena aggiungo una seconda immagine, sembra semplicemente reindirizzare al thread in alto nel forum che sto cercando di pubblicare?vbulletin post con CURL e PHP

Ecco il mio codice, sembra come se la pubblicazione di una seconda immagine stia semplicemente cambiando il percorso dell'immagine .. ma non funziona?

$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); 

     } 

mi farebbe piacere qualche suggerimento ... ci deve essere qualcosa Hidding da qualche parte, ma non riesco proprio a vederlo ..

Grazie, S

+2

Voglio sapere cosa è $ this-> scrap-> recuperare facendo – Vineet1982

risposta

1

Non sei l'aggiunta di un seconda immagine a un post: stai facendo due post con due immagini. Dato che stai facendo questo spoofing dei parametri POST, il primo post viene attivato, e quindi il secondo post non lo sarà perché vBull ha una protezione contro l'invio rapido di due post. I post sono (quasi) identici, quindi il secondo viene rifiutato. Quello che devi fare è controllare la struttura POST per includere una seconda immagine e spoofarla in una singola chiamata, non in due chiamate.

TUTTAVIA: come guida generale, un tale approccio sarebbe considerato "pericoloso" nel caso in cui le cose cambino nel codice.

Probabilmente si dovrebbe considerare l'utilizzo dell'API molto funzionale fornita da vBulletin. https://members.vbulletin.com/api/vBulletin/vB_DataManager_ThreadPost.htmlhttps://members.vbulletin.com/api/vBulletin/vB_DataManager_Post.html

Come qualsiasi cosa con vBull, è un po 'complicato ma c'è un forum eccellente che (se hai una licenza) può aiutarti. Vedrai che il "POST" consente una matrice nell'API.