Jump to content

Using cURL to login to website


pocobueno1388
 Share

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
Share on other sites

This thread is more than a year old.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • 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.