I found this code in the internet and I modified it for my use, I'm not sure what I'm doing wrong here, I'm getting this error Curl error: SSL connection timeout The login part is successful, but the search isn't working with me. can somebody help me with it please?
<?php
//create array of data to be posted
$post_data['username'] = 'user';
$post_data['password'] = 'log';
$post_data['cmd'] = 'log';
//create array of data to be posted
foreach ( $post_data as $key => $value) {
$post_items[] = $key . '=' . $value;
}
//create the final string to be posted using implode()
$post_string = implode ('&', $post_items);
//create cURL connection
$curl_connection =
curl_init('https://sie.com');
//set options
///curl_setopt($curl_connection, CURLOPT_CONNECTTIMEOUT, 3990);
curl_setopt($curl_connection, CURLOPT_USERAGENT,
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)");
curl_setopt($curl_connection, CURLOPT_HTTPHEADER, array(
'Connection: Keep-Alive',
'Keep-Alive: 300'
));
curl_setopt($curl_connection, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl_connection, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl_connection, CURLOPT_FOLLOWLOCATION, 1);
//set data to be posted
curl_setopt($curl_connection, CURLOPT_POSTFIELDS, $post_string);
//perform our request
$result = curl_exec($curl_connection);
//show information regarding the request
//print_r(curl_getinfo($curl_connection));
//echo curl_errno($curl_connection) . '-' .
// curl_error($curl_connection);
//close the connection
//curl_close($curl_connection);
echo $result."\n";
$post_data1['cmd'] = 'Viewr';
$post_data1['search'] = 'test';
foreach ( $post_data1 as $key => $value1) {
$post_items1[] = $key . '=' . $value1;
}
$post_string1 = implode ('&', $post_items1);
echo $post_string1."\n";
curl_setopt($curl_connection, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($curl_connection, CURLOPT_USERAGENT,
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)");
curl_setopt($curl_connection, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl_connection, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl_connection, CURLOPT_FOLLOWLOCATION, 1);
//set data to be posted
curl_setopt($curl_connection, CURLOPT_POSTFIELDS, $post_string);
//perform our request
$result1 = curl_exec($curl_connection);
//show information regarding the request
//$result1 =1;
//close the connection
//curl_close($curl_connection);
if ($result1)
echo "ok \n\n";
else
echo "nok\n";
if(curl_errno($curl_connection))
{
echo 'Curl error: ' . curl_error($curl_connection)."\n";
}
echo($post_string1);
echo $result1."\n";
curl_close($curl_connection);
?>
Try adding this (But don't leave this option set in production!):
curl_setopt($curl_connection, CURLOPT_SSL_VERIFYPEER, false);
If it works afterwards, it is because CURL is failing to negotiate the SSL Certificate.
Follow this tutorial for steps on how to obtain the CA cert: http://unitstep.net/blog/2009/05/05/using-curl-in-php-to-access-https-ssltls-protected-sites/
Something else to look into is, before your curl_exec(), curl_copy_handle();
and then set additional parameters.
Additionally, or alternatively, you could re-initiate cURL with curl_init($url);
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With