Post php Curl for PHPBB

I used to post updates on the forum, although the PHP script, although my account, has recently stopped working and im not 100% sure why - there are no errors returned by curl and everything seems fine except the message appears.

Im fee for posting to disabled the stream limit set for my user and i have post permissions what is required for any type of theme

the code to send them im is used as follows (found on the net a while ago - minor changes)

$ url = "http://url.co.uk/board/";

$ post_fields = 'username = user & password = pass & redirect = & login = Log + in';
$ lurl = $ url. "ucp.php";
$ ch = curl_init ();
curl_setopt ($ ch, CURLOPT_URL, $ lurl);
curl_setopt ($ ch, CURLOPT_POST, 1);
curl_setopt ($ ch, CURLOPT_POSTFIELDS, $ post_fields);
curl_setopt ($ ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt ($ ch, CURLOPT_COOKIEJAR, "cookie.txt");
$ result = curl_exec ($ ch);
curl_close ($ ch);
$ sid1 = explode ("sid =", $ result);
$ sid2 = explode ('&', $ sid1 [1]);
$ sid = rtrim (substr ($ sid2 [0], 0, -29), '"');

$ purl = url & "posting.php? mode = post & f = 20 & sid = $ sid";
var_dump ($ purl);
$ ch1 = curl_init ();
curl_setopt ($ ch1, CURLOPT_URL, $ purl);
curl_setopt ($ ch1, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ ch1, CURLOPT_HEADER, false);
curl_setopt ($ ch1, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt ($ ch1, CURLOPT_COOKIEFILE, "cookie.txt");
$ result1 = curl_exec ($ ch1);
curl_close ($ ch1);

preg_match ('% name = "form_token" value = "(. *)" \ / \>%', $ result1, $ security123);
preg_match ('% name = "lastclick" value = "(. *)" \ / \>%', $ result1, $ lastclick);
preg_match ('% name = "creation_time" value = "(. *)" \ / \>%', $ result1, $ ctime1);
$ lclick = explode ('"/>', $ lastclick [1]);

$ title = "title";
$ subject = "subject to post";
$ post_fields = array (
            'subject' => $ title,
         'message' => htmlspecialchars_decode ($ subject),
            'icon' => 0,
'poll_title' => "Poll Name",
'poll_option_text' => "poll 1 \ r \ npoll 2",
'poll_max_options' => 1,
'poll_length' => 0,
'poll_vote_change' => "on",


            'disable_smilies' => 0,
            'attach_sig' => 1,
            'notify' => 0,
         'topic_type' => 2,
            'topic_time_limit' => "",
           'creation_time' => $ ctime1 [1],
         'lastclick' => $ lclick [0],
          'form_token' => $ security123 [1],
              'sid' => $ sid,
         'post' => 'Submit',

         );
print_r ($ post_fields);
$ ch1 = curl_init ();
curl_setopt ($ ch1, CURLOPT_URL, $ purl);
curl_setopt ($ ch1, CURLOPT_POST, 1);
curl_setopt ($ ch1, CURLOPT_POSTFIELDS, $ post_fields);
curl_setopt ($ ch1, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ ch1, CURLOPT_HEADER, false);
curl_setopt ($ ch1, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt ($ ch1, CURLOPT_COOKIEFILE, "cookie.txt");
$ result2 = curl_exec ($ ch1);
if (curl_errno ($ ch1))
{
    echo 'Curl error:'. curl_error ($ ch1);
}
curl_close ($ ch1);
echo $ result2;

From this $result2

there are output streams from the forum, but the post posted has not been posted.

I have registered ok in $ result2 with no visible error messages.

Any suggestions? ive checked sid, form_token, lclick and creation_time and they all seem to be the same and correct.

curl verbose output

* About to connect() to site.co.uk port 80
*   Trying 78.xxx.yyy.zzz... * connected
* Connected to site.co.uk (78.xxx.yyy.zzz) port 80
> POST /board/posting.php?mode=post&f=20 HTTP/1.1

Host: site.co.uk

Accept: */*

Cookie: phpbb3_9g61k_sid=693813912f38db33091212ee14102026; phpbb3_9g61k_k=; phpbb3_9g61k_u=57

Content-Length: 1914

Expect: 100-continue

Content-Type: multipart/form-data; boundary=----------------------------2fb596b13df0



< HTTP/1.1 100 Continue

< HTTP/1.1 302 Found

< Date: Wed, 30 Jan 2013 23:21:39 GMT

< Server: Apache/2.2.22 (CentOS)

< Location: http://site.co.uk/board/viewforum.php?f=20

< Content-Length: 0

< Content-Type: text/html; charset=UTF-8

* Connection #0 to host site.co.uk left intact
* Issue another request to this URL: 'http://site.co.uk/board/viewforum.php?f=20'
* Disables POST, goes with GET
* Re-using existing connection! (#0) with host site.co.uk
* Connected to site.co.uk (78.xxx.yyy.zzz) port 80
> GET /board/viewforum.php?f=20 HTTP/1.1

Host: site.co.uk

Accept: */*

Cookie: phpbb3_9g61k_sid=693813912f38db33091212ee14102026; phpbb3_9g61k_k=; phpbb3_9g61k_u=57



< HTTP/1.1 200 OK

< Date: Wed, 30 Jan 2013 23:21:39 GMT

< Server: Apache/2.2.22 (CentOS)

< Cache-Control: private, no-cache="set-cookie"

< Expires: 0

< Pragma: no-cache

< Transfer-Encoding: chunked

< Content-Type: text/html; charset=UTF-8

* Connection #0 to host site.co.uk left intact
* Closing connection #0

      

+3


source to share


1 answer


Resolved

posting.php line 49



if ($cancel || ($current_time - $lastclick < 2 && $submit))

      

Even though the stream is disabled for my user, there is still a hard coded 2 second delay that I have to stick with.

+4


source







All Articles