php - Curl post username/password to login -
i using curl (or other method) send login details login page. here's code i'm using.
<?php $username='mymail/usernamehere'; $password='mypasswordhere'; $postdata = 'username='.$username.'&password='.$password; // init curl $ch = curl_init(); // set url post form login curl_setopt($ch, curlopt_url, 'https://secure.runescape.com/m=weblogin/loginform.ws? mod=www&ssl=1&expired=0&dest=account_settings.ws?jptg=ia&jptv=navbar'); // enable http post curl_setopt ($ch, curlopt_post, 1); // set post parameters : form values each field curl_setopt ($ch, curlopt_postfields, $postdata); // imitate classic browser's behaviour : handle cookies curl_setopt ($ch, curlopt_cookiejar, 'cookie.txt'); # setting curlopt_returntransfer variable 1 force curl # not print out results of query. # instead, return results string return value # curl_exec() instead of usual true/false. curl_setopt ($ch, curlopt_returntransfer, 1); // execute 1st request (form login) $store = curl_exec ($ch); // close curl curl_close ($ch); if ($store=='') { //username , password valid //if login valid, hotfile website returns nothing echo '<br><i>login works!! enjoy.</i>'; } else { //username , password not valid //if username or password invalid, website returns //invalid username or password page echo '<br><i>login not work.</i>'; } ?>
but keeps saying login details wrong while not.
here's demo legitimate username/password: http://jaydz.me/test2/
you need:
$postdata = 'username='.$username.'&password='.$password;
edit:
in linked example form trying replicate curl includes parameters hidden fields, i.e., sent post
parameters.
$fields = array( 'username='. urlencode($username), 'password=' . urlencode($password), 'mod=www', 'ssl=1', 'expired=0', 'dest=' . urlencode('account_settings.ws?jptg=ia&jptv=navbar') ); $postdata = implode('&', $fields);
if can login via browser page should try using chrome dev tools inspect request. should able see exact post data sent.
it may case service trying post rejecting requests based on else user agent header. in case curl request should try , replicate browser request closely possible. again, check headers being sent in chrome , add these curl request.
Comments
Post a Comment