Hi,
I have used cURL to login in to a site and successful passed and stored the cookie, but I can't get it to submit a form on another page. When I echo the result it is just blank - although I can retrieve other pages fine.
I think the page is trying to redirect, which is fine I just want to see if it has submitted or not! In case its useful the form is self referencing and was built using MOOJ Proforms (by some one else).
Any ideas?
$post_data['m4j-180'] = 'Yes';
$post_data['m4j-181'] = 'No';
$post_data['m4j-182'] = 'Yes';
$post_data['m4j-170'] = 'This is a test';
$post_data['submit'] = 'send';
//turn key pairs into strings and combine them (key1=value1&key2=value2)
foreach ($post_data as $key => $value) {
$post_items[] = $key . '=' . $value;
}
$post_string = implode ('&', $post_items);
//Open connection -- address is the "action" setting of the form
$curl_connection = curl_init('http://www.testsite.com/index.php?option=com_proforms&jid=6&cid=-1&Itemid=54');
//Set connection options
//Set connection to timeout after 30 secs so script doesn't hang
curl_setopt($curl_connection, CURLOPT_CONNCTTIMEOUT, 180);
//Tell destination URL to output browser content not mobile etc
curl_setopt($curl_connection, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)");
//Tells curl to out results as string not as a display
curl_setopt($curl_connection, CURLOPT_RETURNTRANSFER, true);
//false below means no error will trigger if SSL not signed or out of date
curl_setopt($curl_connection, CURLOPT_SSL_VERIFYPEER, false);
//follow location redirects in header of destination file
curl_setopt($curl_connection, CURLOPT_FOLLOWLOCATION, true);
//tell curl which string to post
curl_setopt($curl_connection, CURLOPT_POSTFIELDS, $post_string);
//execute the post
$result = curl_exec($curl_connection);
//see any errors that might have happened
print_r(curl_getinfo($curl_connection));
//see the error number and description
echo curl_errno($curl_connection) . '-' . curl_error($curl_connection);
//close connection
curl_close($curl_connection);
echo $result