original_string: public function login($username, $password, $domain = null)
  	{
  		//Logger::log("Logging in");
  
  		$details = array(
  			'action' => 'login',
  			'lgname' => $username,
  			'lgpassword' => $password,
  			'format' => 'json'
  		);
  
  		// If $domain is provided, set the corresponding detail in the request information array
  		if (is_string($domain)) {
  			$details['lgdomain'] = $domain;
  		}
  
  		// Send the login request
  		$response = $this->session->post($this->api, array(), $details);
  		// Check if we got an API result or the API doc page (invalid request)
  		if (strpos($response->body, "This is an auto-generated MediaWiki API documentation page") !== false) {
  			$this->error = array();
  			$this->error['login'] = 'The API could not understand the first login request';
  			return false;
  		}
  
  		$loginResult = json_decode($response->body);
  
  		if ($this->debugMode) {
  			echo "Login request:\n";
  			print_r($details);
  			echo "Login request response:\n";
  			print_r($loginResult);
  		}
  
  		if (isset($loginResult->login->result) && $loginResult->login->result == 'NeedToken') {
  			//Logger::log("Sending token {$loginResult->login->token}");
  			$details['lgtoken'] = strtolower(trim($loginResult->login->token));
  
  			// Send the confirm token request
  			$loginResult = $this->session->post($this->api, array(), $details)->body;
  
  			// Check if we got an API result or the API doc page (invalid request)
  			if (strpos($loginResult, "This is an auto-generated MediaWiki API documentation page") !== false) {
  				$this->error = array();
  				$this->error['login'] = 'The API could not understand the confirm token request';
  				return false;
  			}
  
  			$loginResult = json_decode($loginResult);
  
  			if ($this->debugMode) {
  				echo "Confirm token request:\n";
  				print_r($details);
  				echo "Confirm token response:\n";
  				print_r($loginResult);
  			}
  
  			if ($loginResult->login->result != 'Success') {
  				// Some more comprehensive error checking
  				$this->error = array();
  				switch ($loginResult->login->result) {
  					case 'NotExists':
  						$this->error['login'] = 'The username does not exist';
  						break;
  					default:
  						$this->error['login'] = 'The API result was: ' . $loginResult->login->result;
  						break;
  				}
  				return false;
  			}
  		}
  
  		//Logger::log("Logged in");
  		return true;
  	}
code: public function login($username, $password, $domain = null)
  	{
  		//Logger::log("Logging in");
  
  		$details = array(
  			'action' => 'login',
  			'lgname' => $username,
  			'lgpassword' => $password,
  			'format' => 'json'
  		);
  
  		// If $domain is provided, set the corresponding detail in the request information array
  		if (is_string($domain)) {
  			$details['lgdomain'] = $domain;
  		}
  
  		// Send the login request
  		$response = $this->session->post($this->api, array(), $details);
  		// Check if we got an API result or the API doc page (invalid request)
  		if (strpos($response->body, "This is an auto-generated MediaWiki API documentation page") !== false) {
  			$this->error = array();
  			$this->error['login'] = 'The API could not understand the first login request';
  			return false;
  		}
  
  		$loginResult = json_decode($response->body);
  
  		if ($this->debugMode) {
  			echo "Login request:\n";
  			print_r($details);
  			echo "Login request response:\n";
  			print_r($loginResult);
  		}
  
  		if (isset($loginResult->login->result) && $loginResult->login->result == 'NeedToken') {
  			//Logger::log("Sending token {$loginResult->login->token}");
  			$details['lgtoken'] = strtolower(trim($loginResult->login->token));
  
  			// Send the confirm token request
  			$loginResult = $this->session->post($this->api, array(), $details)->body;
  
  			// Check if we got an API result or the API doc page (invalid request)
  			if (strpos($loginResult, "This is an auto-generated MediaWiki API documentation page") !== false) {
  				$this->error = array();
  				$this->error['login'] = 'The API could not understand the confirm token request';
  				return false;
  			}
  
  			$loginResult = json_decode($loginResult);
  
  			if ($this->debugMode) {
  				echo "Confirm token request:\n";
  				print_r($details);
  				echo "Confirm token response:\n";
  				print_r($loginResult);
  			}
  
  			if ($loginResult->login->result != 'Success') {
  				// Some more comprehensive error checking
  				$this->error = array();
  				switch ($loginResult->login->result) {
  					case 'NotExists':
  						$this->error['login'] = 'The username does not exist';
  						break;
  					default:
  						$this->error['login'] = 'The API result was: ' . $loginResult->login->result;
  						break;
  				}
  				return false;
  			}
  		}
  
  		//Logger::log("Logged in");
  		return true;
  	}
code_tokens: public function login ( $ username , $ password , $ domain = null ) { //Logger::log("Logging in"); $ details = array ( 'action' => 'login' , 'lgname' => $ username , 'lgpassword' => $ password , 'format' => 'json' ) ; // If $domain is provided, set the corresponding detail in the request information array if ( is_string ( $ domain ) ) { $ details [ 'lgdomain' ] = $ domain ; } // Send the login request $ response = $ this -> session -> post ( $ this -> api , array ( ) , $ details ) ; // Check if we got an API result or the API doc page (invalid request) if ( strpos ( $ response -> body , "This is an auto-generated MediaWiki API documentation page" ) !== false ) { $ this -> error = array ( ) ; $ this -> error [ 'login' ] = 'The API could not understand the first login request' ; return false ; } $ loginResult = json_decode ( $ response -> body ) ; if ( $ this -> debugMode ) { echo "Login request:\n" ; print_r ( $ details ) ; echo "Login request response:\n" ; print_r ( $ loginResult ) ; } if ( isset ( $ loginResult -> login -> result ) && $ loginResult -> login -> result == 'NeedToken' ) { //Logger::log("Sending token {$loginResult->login->token}"); $ details [ 'lgtoken' ] = strtolower ( trim ( $ loginResult -> login -> token ) ) ; // Send the confirm token request $ loginResult = $ this -> session -> post ( $ this -> api , array ( ) , $ details ) -> body ; // Check if we got an API result or the API doc page (invalid request) if ( strpos ( $ loginResult , "This is an auto-generated MediaWiki API documentation page" ) !== false ) { $ this -> error = array ( ) ; $ this -> error [ 'login' ] = 'The API could not understand the confirm token request' ; return false ; } $ loginResult = json_decode ( $ loginResult ) ; if ( $ this -> debugMode ) { echo "Confirm token request:\n" ; print_r ( $ details ) ; echo "Confirm token response:\n" ; print_r ( $ loginResult ) ; } if ( $ loginResult -> login -> result != 'Success' ) { // Some more comprehensive error checking $ this -> error = array ( ) ; switch ( $ loginResult -> login -> result ) { case 'NotExists' : $ this -> error [ 'login' ] = 'The username does not exist' ; break ; default : $ this -> error [ 'login' ] = 'The API result was: ' . $ loginResult -> login -> result ; break ; } return false ; } } //Logger::log("Logged in"); return true ; }
docstring: Logs in to the wiki.
  
  @param   string   $username  The user name
  @param   string   $password  The user password
  @param   string   $domain    The domain (optional)
  @return  boolean             True if logged in
docstring_tokens: Logs in to the wiki .