note 76047 modified in function.curl-setopt by danbrown
| From: | danbrown@php.net | Date: | Sun, 17 May 2009 17:26:28 +0000 |
| Subject: | note 76047 modified in function.curl-setopt by danbrown | ||
| References: | 1 | Groups: | php.notes |
| Request: | Send a blank email to php-notes+get-154982@lists.php.net to get a copy of this message | ||
Two things that I noted, one of which has been mentioned earlier, if you are connecting to an SSL
site (https) and don't have the appropriate certificate, don't forget to set
CURLOPT_SSL_VERIFYPEER as "false"... it's set to "true" by default.
Scratched my head over 2 hours to figure this one out as I had a machine with an older version
installed and everything worked fine without using this option on that one - but failed on other
machines with newer versions.
Second very important thing, I've never had my scripts work (tried on various machines,
multiple platforms) with a Relative path to a COOKIEJAR or COOKIEFILE. In my experience I HAVE to
specify the absolute path and not the relative path.
Small script I wrote to connect to a page, gather all cookies into a jar, connect to another page to
login, taking the cookiejar with you for authentication:
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_COOKIEJAR, "/Library/WebServer/Documents/tmp/cookieFileName");
curl_setopt($ch, CURLOPT_URL,"https://www.example.com/myaccount/start.asp");
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
ob_start(); // Prevent output
curl_exec ($ch);
ob_end_clean(); // End preventing output
curl_close ($ch);
unset($ch);
$ch = curl_init();
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,
"field1=".$f1."&field2=".$f2."&SomeFlag=True");
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_COOKIEFILE, "/Library/WebServer/Documents/tmp/cookieFileName");
curl_setopt($ch, CURLOPT_URL,"https://www.example.com/myaccount/Login.asp");
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
$result = curl_exec ($ch);
curl_close ($ch);
?>
--was--
Two things that I noted, one of which has been mentioned earlier, if you are connecting to an SSL
site (https) and don't have the appropriate certificate, don't forget to set
CURLOPT_SSL_VERIFYPEER as "false"... it's set to "true" by default.
Scratched my head over 2 hours to figure this one out as I had a machine with an older version
installed and everything worked fine without using this option on that one - but failed on other
machines with newer versions.
Second very important thing, I've never had my scripts work (tried on various machines,
multiple platforms) with a Relative path to a COOKIEJAR or COOKIEFILE. In my experience I HAVE to
specify the absolute path and not the relative path.
Small script I wrote to connect to a page, gather all cookies into a jar, connect to another page to
login, taking the cookiejar with you for authentication:
$ch = curl_init();
curl_setopt($ch, CURLOPT_COOKIEJAR, "/Library/WebServer/Documents/tmp/cookieFileName");
curl_setopt($ch, CURLOPT_URL,"https://www.example.com/myaccount/start.asp");
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
ob_start(); // Prevent output
curl_exec ($ch);
ob_end_clean(); // End preventing output
curl_close ($ch);
unset($ch);
$ch = curl_init();
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,
"field1=".$f1."&field2=".$f2."&SomeFlag=True");
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_COOKIEFILE, "/Library/WebServer/Documents/tmp/cookieFileName");
curl_setopt($ch, CURLOPT_URL,"https://www.example.com/myaccount/Login.asp");
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
$result = curl_exec ($ch);
curl_close ($ch);
http://php.net/manual/en/function.curl-setopt.php