Sending a username and password with PHP CURLPosted Jun. 22, 2009 in PHP
CURL and PHP combined can be really useful for getting data from websites, connecting to APIs (such as the Google Analytics API) and so on. Sometimes you may need to connect to a website that is password protected so this post looks at how to pass the username and password with PHP and CURL.
If the following example, $url is the url to connect to and $username and $password contain your authorization details:
$ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_USERPWD, "$username:$password"); curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); $output = curl_exec($ch); $info = curl_getinfo($ch); curl_close($ch);
The "curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);" line is not actually necessary but it means the HTML from the web page returned goes into the $output variable rather than echoed out to standard output.
Likewise you don't necessarily need to do "$info = curl_getinfo($ch);" but it does contain useful information about the HTTP status and so on. Doing print_r($info) from the above example on the script I used for writing and testing this post outputs the following:
Array ( [url] => http://www.testing.local/auth/ [content_type] => text/html;charset=UTF-8 [http_code] => 200 [header_size] => 208 [request_size] => 100 [filetime] => -1 [ssl_verify_result] => 0 [redirect_count] => 0 [total_time] => 0.022493 [namelookup_time] => 0.000279 [connect_time] => 0.000475 [pretransfer_time] => 0.000487 [size_upload] => 0 [size_download] => 732 [speed_download] => 32543 [speed_upload] => 0 [download_content_length] => 732 [upload_content_length] => 0 [starttransfer_time] => 0.022389 [redirect_time] => 0 )
Getting the http_code from the information is useful so you know if it successfully connected to the page before parsing any of the return data.
- Password protect a directory with Apache
- Setting the http referer with PHP CURL
- Setting the user agent with PHP CURL
- Sending a username and password with PHP file_get_contents()
- Log into the Google Analytics API using PHP and CURL using Username/Password Authentication
- Fix the "call to undefined function curl_init" error in PHP on Debian