PHP cURL: Authentication: Difference between revisions

no edit summary
(New page: {{Nav PHP cURL}} '''Validation Servrs''' While testing; knocking on a server’s door that performs validation is not a good idea. After a few failed attempts you are bound to trigger som...)
 
No edit summary
Line 1: Line 1:
=[http://awibuky.co.cc This Page Is Currently Under Construction And Will Be Available Shortly, Please Visit Reserve Copy Page]=
{{Nav PHP cURL}}
{{Nav PHP cURL}}
'''Validation Servrs'''
'''Validation Servrs'''
Line 14: Line 15:


Change these four lines:
Change these four lines:
<pre>
&lt;pre&gt;
#AuthName "Uniform Server - Server Access"
#AuthName &quot;Uniform Server - Server Access&quot;
#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>
&lt;/pre&gt;
To:
To:
<pre>
&lt;pre&gt;
AuthName "Uniform Server - Server Access"
AuthName &quot;Uniform Server - Server Access&quot;
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>
&lt;/pre&gt;
'''''Quick test'':'''
'''''Quick test'':'''


Type '''<nowiki>http</nowiki>://localhost:82/''' into your browser, when challenged for a name and password press '''cancel'''.  
Type '''&lt;nowiki&gt;http&lt;/nowiki&gt;://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 37: Line 38:
== 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="6"
{|cellspacing=&quot;6&quot;
|-
|-
|
|
<pre>
&lt;pre&gt;
<?php
&lt;?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);
?>
?&gt;
</pre>
&lt;/pre&gt;
|}
|}
'''''Test'':'''
'''''Test'':'''
* Run both servers
* Run both servers
* Type '''<nowiki>http:</nowiki>//localhost/test5.php''' into your browser
* Type '''&lt;nowiki&gt;http:&lt;/nowiki&gt;//localhost/test5.php''' into your browser
* Result: Page displayed as follows
* Result: Page displayed as follows
<pre>
&lt;pre&gt;
Authorization Required
Authorization Required


Line 60: Line 61:
(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>
&lt;/pre&gt;
The above proves our servers are set-up and working correctly.
The above proves our servers are set-up and working correctly.


Line 71: Line 72:
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, "myusername:mypassword")'''  
* '''curl_setopt($ch, CURLOPT_USERPWD, &quot;myusername:mypassword&quot;)'''  


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="6"
{|cellspacing=&quot;6&quot;
|-
|-
|
|
<pre>
&lt;pre&gt;
<?php
&lt;?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, "root:root");
curl_setopt($ch, CURLOPT_USERPWD, &quot;root:root&quot;);
  curl_exec($ch);
  curl_exec($ch);
  curl_close($ch);
  curl_close($ch);
?>
?&gt;
</pre>
&lt;/pre&gt;
|}
|}
'''''Test'':'''
'''''Test'':'''
* Run both servers
* Run both servers
* Type '''<nowiki>http:</nowiki>//localhost/test5.php''' into your browser
* Type '''&lt;nowiki&gt;http:&lt;/nowiki&gt;//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 106: Line 107:


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="6"
{|cellspacing=&quot;6&quot;
|-
|-
|
|
<pre>
&lt;pre&gt;
<?php
&lt;?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, "root:root");
curl_setopt($ch, CURLOPT_USERPWD, &quot;root:root&quot;);
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 120: Line 121:


if (empty($buffer)){
if (empty($buffer)){
   print "Need to recover from this!<br />";
   print &quot;Need to recover from this!&lt;br /&gt;&quot;;
}
}


else{
else{
   print "There was data returned using curl.<br />";
   print &quot;There was data returned using curl.&lt;br /&gt;&quot;;
   print "Buffer content = ".$buffer."<br />";
   print &quot;Buffer content = &quot;.$buffer.&quot;&lt;br /&gt;&quot;;


   // Extract IP address  
   // Extract IP address  
  if(preg_match("/(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})/", $buffer, $ipmatch)){   
  if(preg_match(&quot;/(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})/&quot;, $buffer, $ipmatch)){   
     $ip = $ipmatch[0]; // Save IP to variable
     $ip = $ipmatch[0]; // Save IP to variable
     print $ip;                                 
     print $ip;                                 
  }
  }
}
}
?>
?&gt;
</pre>
&lt;/pre&gt;
|}
|}
'''''Test'':'''
'''''Test'':'''
* Run servers
* Run servers
* Type '''<nowiki>http:</nowiki>//localhost/test6.php''' into your browser
* Type '''&lt;nowiki&gt;http:&lt;/nowiki&gt;//localhost/test6.php''' into your browser
* Result:
* Result:
<pre>
&lt;pre&gt;
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>
&lt;/pre&gt;


'''''[[#top | Top]]'''''
'''''[[#top | Top]]'''''
322

edits