PHP cURL: Authentication: Difference between revisions
m
Reverted edits by Upazixorys (Talk); changed back to last version by Ric
Upazixorys (talk | contribs) No edit summary |
m (Reverted edits by Upazixorys (Talk); changed back to last version by Ric) |
||
Line 1: | Line 1: | ||
{{Nav PHP cURL}} | {{Nav PHP cURL}} | ||
'''Validation Servrs''' | '''Validation Servrs''' | ||
Line 15: | Line 14: | ||
Change these four lines: | Change these four lines: | ||
<pre> | |||
#AuthName | #AuthName "Uniform Server - Server Access" | ||
#AuthType Basic | #AuthType Basic | ||
#AuthUserFile C:/curl_2/UniServer/htpasswd/www/.htpasswd | #AuthUserFile C:/curl_2/UniServer/htpasswd/www/.htpasswd | ||
#Require valid-user | #Require valid-user | ||
</pre> | |||
To: | To: | ||
<pre> | |||
AuthName | AuthName "Uniform Server - Server Access" | ||
AuthType Basic | AuthType Basic | ||
AuthUserFile C:/curl_2/UniServer/htpasswd/www/.htpasswd | AuthUserFile C:/curl_2/UniServer/htpasswd/www/.htpasswd | ||
Require valid-user | Require valid-user | ||
</pre> | |||
'''''Quick test'':''' | '''''Quick test'':''' | ||
Type ''' | Type '''<nowiki>http</nowiki>://localhost:82/''' into your browser, when challenged for a name and password press '''cancel'''. | ||
A page is displayed with something like Authorization Required, this confirms authentication is enabled. | A page is displayed with something like Authorization Required, this confirms authentication is enabled. | ||
Line 38: | Line 37: | ||
== Example 5 - Download and display a page == | == Example 5 - Download and display a page == | ||
Create a new text file in folder C:\curl_1\UniServer\'''www''' and name it '''test5.php''' add the following content | Create a new text file in folder C:\curl_1\UniServer\'''www''' and name it '''test5.php''' add the following content | ||
{|cellspacing= | {|cellspacing="6" | ||
|- | |- | ||
| | | | ||
<pre> | |||
<?php | |||
$ch=curl_init(); | $ch=curl_init(); | ||
curl_setopt($ch,CURLOPT_URL,'http://localhost:82/remote_page.php'); | curl_setopt($ch,CURLOPT_URL,'http://localhost:82/remote_page.php'); | ||
curl_exec($ch); | curl_exec($ch); | ||
curl_close($ch); | curl_close($ch); | ||
? | ?> | ||
</pre> | |||
|} | |} | ||
'''''Test'':''' | '''''Test'':''' | ||
* Run both servers | * Run both servers | ||
* Type ''' | * Type '''<nowiki>http:</nowiki>//localhost/test5.php''' into your browser | ||
* Result: Page displayed as follows | * Result: Page displayed as follows | ||
<pre> | |||
Authorization Required | Authorization Required | ||
Line 61: | Line 60: | ||
(e.g., bad password), or your browser doesn't understand how to | (e.g., bad password), or your browser doesn't understand how to | ||
supply the credentials required. | supply the credentials required. | ||
</pre> | |||
The above proves our servers are set-up and working correctly. | The above proves our servers are set-up and working correctly. | ||
Line 72: | Line 71: | ||
A name and password is passed to Curl using the following function: | A name and password is passed to Curl using the following function: | ||
* '''curl_setopt($ch, CURLOPT_USERPWD, | * '''curl_setopt($ch, CURLOPT_USERPWD, "myusername:mypassword")''' | ||
Our test server curl_2 uses Uniform Server's defaults name='''root''' password='''root ''' | Our test server curl_2 uses Uniform Server's defaults name='''root''' password='''root ''' | ||
Modify file C:\curl_1\UniServer\www\'''test5.php''' | Modify file C:\curl_1\UniServer\www\'''test5.php''' | ||
{|cellspacing= | {|cellspacing="6" | ||
|- | |- | ||
| | | | ||
<pre> | |||
<?php | |||
$ch=curl_init(); | $ch=curl_init(); | ||
curl_setopt($ch,CURLOPT_URL,'http://localhost:82/remote_page.php'); | curl_setopt($ch,CURLOPT_URL,'http://localhost:82/remote_page.php'); | ||
curl_setopt($ch, CURLOPT_USERPWD, | curl_setopt($ch, CURLOPT_USERPWD, "root:root"); | ||
curl_exec($ch); | curl_exec($ch); | ||
curl_close($ch); | curl_close($ch); | ||
? | ?> | ||
</pre> | |||
|} | |} | ||
'''''Test'':''' | '''''Test'':''' | ||
* Run both servers | * Run both servers | ||
* Type ''' | * Type '''<nowiki>http:</nowiki>//localhost/test5.php''' into your browser | ||
* Result: '''Your IP is 127.0.0.1''' - displayed | * Result: '''Your IP is 127.0.0.1''' - displayed | ||
Line 107: | Line 106: | ||
Create a new text file in folder C:\curl_1\UniServer\'''www''' and name it '''test6.php''' add the following content | Create a new text file in folder C:\curl_1\UniServer\'''www''' and name it '''test6.php''' add the following content | ||
{|cellspacing= | {|cellspacing="6" | ||
|- | |- | ||
| | | | ||
<pre> | |||
<?php | |||
$ch=curl_init(); | $ch=curl_init(); | ||
curl_setopt($ch,CURLOPT_URL,'http://localhost:82/remote_page.php'); | curl_setopt($ch,CURLOPT_URL,'http://localhost:82/remote_page.php'); | ||
curl_setopt($ch, CURLOPT_USERPWD, | curl_setopt($ch, CURLOPT_USERPWD, "root:root"); | ||
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,5); | curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,5); | ||
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); | curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); | ||
Line 121: | Line 120: | ||
if (empty($buffer)){ | if (empty($buffer)){ | ||
print | print "Need to recover from this!<br />"; | ||
} | } | ||
else{ | else{ | ||
print | print "There was data returned using curl.<br />"; | ||
print | print "Buffer content = ".$buffer."<br />"; | ||
// Extract IP address | // Extract IP address | ||
if(preg_match( | if(preg_match("/(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})/", $buffer, $ipmatch)){ | ||
$ip = $ipmatch[0]; // Save IP to variable | $ip = $ipmatch[0]; // Save IP to variable | ||
print $ip; | print $ip; | ||
} | } | ||
} | } | ||
? | ?> | ||
</pre> | |||
|} | |} | ||
'''''Test'':''' | '''''Test'':''' | ||
* Run servers | * Run servers | ||
* Type ''' | * Type '''<nowiki>http:</nowiki>//localhost/test6.php''' into your browser | ||
* Result: | * Result: | ||
<pre> | |||
There was data returned using curl. | There was data returned using curl. | ||
Buffer content = Your IP is 127.0.0.1 | Buffer content = Your IP is 127.0.0.1 | ||
127.0.0.1 | 127.0.0.1 | ||
</pre> | |||
'''''[[#top | Top]]''''' | '''''[[#top | Top]]''''' |