Jump to content

Using cURL to login to website


pocobueno1388

Recommended Posts

Hello,

 

I am trying to use cURL to login to a website, but I can't seem to get it working.

 

Website I'm trying to login to:

http://www.uniquearticlewizard.com/amember/member.php

 

Here is what their form code looks like:

<form name="login" method="post" action="/amember/member.php"> 

<table class="vedit" > 
    <tr> 
        <th>Username</th> 
        <td><input type="text" name="amember_login" size="15" value="" /></td> 
    </tr> 
    <tr> 
        <th>Password</th> 
        <td><input type="password" name="amember_pass" size="15" /></td> 
    </tr> 
        <tr> 
        <td colspan="2" style='padding:0px; padding-bottom: 2px;'> 
<input type="checkbox" name="remember_login" value="1"> 
<span class="small">Remember my password?</span> 
        </td> 
    </tr> 
    </table> 
<input type="hidden" name="login_attempt_id" value="1291657877" /> 
<br /> 

<span class='button'><input type="submit" value="   Login   " /></span>   
         
      
<span class='button'><input type="button" value="   Back   " onclick="history.back(-1)" /></span> 
</form> 

 

As you can see they are using a javascript button to submit the form, which doesn't have a name attribute. So I'm not sure how to get around this and tell cURL to submit the form. When I Googled I found something that said just submit the other information and it will submit itself, but I'm not sure if that's right.

 

Here is my attempt, but I just get a blank screen. I think the script is working, but something on there end is exiting out due to me not supplying a required piece of information. I'm not sure what that is though.

 

<?php

set_time_limit(0);

$options = array(
  CURLOPT_RETURNTRANSFER => true,     // return web page
  CURLOPT_HEADER         => false,    // don't return headers
  CURLOPT_FOLLOWLOCATION => true,     // follow redirects
  CURLOPT_ENCODING       => "",       // handle all encodings
  CURLOPT_USERAGENT      => "spider", // who am i
  CURLOPT_AUTOREFERER    => true,     // set referer on redirect
  CURLOPT_CONNECTTIMEOUT => 120,      // timeout on connect
  CURLOPT_TIMEOUT        => 120,      // timeout on response
  CURLOPT_MAXREDIRS      => 10,       // stop after 10 redirects
);

$ch      = curl_init( "http://www.uniquearticlewizard.com/amember/member.php" );
curl_setopt_array( $ch, $options );
$content = curl_exec( $ch );
$err     = curl_errno( $ch );
$errmsg  = curl_error( $ch );
$header  = curl_getinfo( $ch );
curl_close( $ch );

$header['content'] = $content;

preg_match('/name="login_attempt_id" value="(.*)" \/>/', $header['content'], $form_id);

$value = $form_id[1];

$ch = curl_init();

// SET URL FOR THE POST FORM LOGIN
curl_setopt($ch, CURLOPT_URL, 'http://www.uniquearticlewizard.com/amember/member.php');

// ENABLE HTTP POST
curl_setopt ($ch, CURLOPT_POST, 1);

$data = array('amember_login' => '*****', 'amember_pass' => '*****', 'login_attempt_id' => $value, 'remember_login' => '1');

// SET POST PARAMETERS : FORM VALUES FOR EACH FIELD
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

// IMITATE CLASSIC BROWSER'S BEHAVIOUR : HANDLE COOKIES
curl_setopt ($ch, CURLOPT_COOKIEJAR, 'cookie.txt');

# Setting CURLOPT_RETURNTRANSFER variable to 1 will force cURL
# not to print out the results of its query.
# Instead, it will return the results as a string return value
# from curl_exec() instead of the usual true/false.
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);

// EXECUTE 1st REQUEST (FORM LOGIN)
$store = curl_exec($ch);

echo $store;

curl_close ($ch); 

?>

 

They do have a form value that changes on every page refresh, it just tracks the login attempt (which is a long number). I was able to scrape that and put it in the form with the correct value. I thought adding that would successfully log me in, but apparently there is something else going on.

 

Any help would be greatly appreciated!

Link to comment
https://forums.phpfreaks.com/topic/220850-using-curl-to-login-to-website/
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.