Difference between revisions of "Web login code/php5"

From Second Life Wiki
Jump to navigation Jump to search
m
m (added cat)
Line 68: Line 68:
}
}
}</php>
}</php>
[[Category:Web login|php5]]

Revision as of 13:58, 8 January 2008

This is an implementation of the Python script in PHP5, with some extras taking advantage of features present in PHP5.

The script requires PHP 5.1.3 or later.

<php># Created by SignpostMarv Martin

  1. Based on https://wiki.secondlife.com/wiki/Web_login_code/python

class sl_web_login { const regex_web_login_key = '/web_login_key=([0-9a-f]{8}-[0-9a-z]{4}-[0-9a-z]{4}-[0-9a-z]{4}-[0-9a-z]{12})/'; const regex_Resident_uuid = '/second-life-member=([0-9a-f]{8}-[0-9a-z]{4}-[0-9a-z]{4}-[0-9a-z]{4}-[0-9a-z]{12})/'; const NULL_KEY = '00000000-0000-0000-0000-000000000000'; public function __construct($first,$last,$password,$location='home',$grid='agni',$continuation=) { $ch = curl_init('https://secure-web14.secondlife.com/app/login/go.php'); if($ch === false) { throw new Exception('Couldn\'t initialise a cURL handle',100); } curl_setopt_array($ch, array( CURLOPT_POST => 1, CURLOPT_HEADER => 1, CURLOPT_FOLLOWLOCATION => 0, CURLOPT_RETURNTRANSFER => 1, CURLOPT_HTTPHEADER => array( 'Accept:text/plain', ), CURLOPT_POSTFIELDS => array( 'username' => $first, 'lastname' => $last, 'password' => $password, 'continuation' => $continuation, 'grid' => $grid, 'location' => $location, ), ) ); $this->data = curl_exec($ch); $this->info = curl_getinfo($ch); if($this->data === false) { $this->error = curl_error($ch); $this->web_login_key = sl_login::NULL_KEY; $this->uuid = sl_login::NULL_KEY; } else { if(preg_match(sl_login::regex_web_login_key,$this->data,$matches)) { $this->web_login_key = $matches[1]; } else { throw new Exception('Could not locate web login key',101); } if(preg_match(sl_login::regex_Resident_uuid,$this->data,$matches)) { $this->uuid = $matches[1]; } else { throw new Exception('Could not locate Resident UUID',102); } } curl_close($ch); } }</php>