login_core.php

来自「sabreipb 2.1.6 utf-8中文版本!」· PHP 代码 · 共 239 行

PHP
239
字号
<?php/*+---------------------------------------------------------------------------|   Invision Power Dynamic v1.0.0|   ========================================|   by Matthew Mecham|   (c) 2004 Invision Power Services|   |   ========================================+---------------------------------------------------------------------------|   INVISION POWER DYNAMIC IS NOT FREE SOFTWARE!|   /dynamic/+---------------------------------------------------------------------------||   > LOG IN MODULE: INTERNAL (IPB AUTH)|   > Script written by Matt Mecham|   > Date started: 12:25 Fri. 4th February 2005 (AD)|+---------------------------------------------------------------------------| NOTES:| Core module functions+---------------------------------------------------------------------------*/class login_core{	# Globals	var $ipsclass;		# Returns	var $auth_errors = array();	var $return_code = "WRONG_AUTH";	var $member      = array();		# Input	var $is_admin_auth = 0;		/*-------------------------------------------------------------------------*/	// Authorize against local DB:	// $username: Log in username	// $password: Plain text password	/*-------------------------------------------------------------------------*/		function auth_local( $username, $password )	{		$password = md5( $password );				//-----------------------------------------		// NAME LOG IN		//-----------------------------------------					if ( $this->ipsclass->vars['converge_login_method'] == 'username' )		{			$this->ipsclass->DB->cache_add_query( 'login_getmember', array( 'username' => $username ) );			$this->ipsclass->DB->cache_exec_query();						$this->member = $this->ipsclass->DB->fetch_row();								 			//-----------------------------------------			// Got a username?			//-----------------------------------------						if ( ! $this->member['id'] )			{				$this->return_code = 'NO_USER';				return;			}						$this->ipsclass->converge->converge_load_member( $this->member['email'] );						if ( ! $this->ipsclass->converge->member['converge_id'] )			{				$this->return_code = 'WRONG_AUTH';				return;			}		}				//-----------------------------------------		// EMAIL LOG IN		//-----------------------------------------				else		{			$email = $username;						$this->ipsclass->converge->converge_load_member( $email );						if ( $this->ipsclass->converge->member['converge_id'] )			{				$this->member = $this->ipsclass->DB->simple_exec_query( array( 'select' => 'id, name, members_display_name, email, mgroup, member_login_key, ip_address, login_anonymous',																			   'from'   => 'members',																			   'where'  => "id=".$this->ipsclass->converge->member['converge_id']																	  )      );			}			else			{				$this->return_code = 'NO_USER';				return;			}		}				//-----------------------------------------		// Check password...		//-----------------------------------------				if ( $this->ipsclass->converge->converge_authenticate_member( $password ) != TRUE )		{ 			$this->return_code = 'WRONG_AUTH';			return;		}		else		{			$this->return_code = 'SUCCESS';			return;		}	}		/*-------------------------------------------------------------------------*/	// Create local member:	// $username: Log in username	// $password: Plain text password	/*-------------------------------------------------------------------------*/		function create_local_member( $username, $password )	{		//-----------------------------------------		// INIT		//-----------------------------------------				$username      = trim( $username );		$password      = trim( $password );		$md_5_password = md5( $password );				//-----------------------------------------		// Custom profile field stuff		//-----------------------------------------				require_once( ROOT_PATH.'sources/classes/class_custom_fields.php' );    	$fields              = new custom_fields( $this->ipsclass->DB );    	$fields->cache_data  = $this->ipsclass->cache['profilefields'];    	    	$fields->init_data();    	$fields->parse_to_save( 1 );    			//-----------------------------------------		// Populate member table(s)		//-----------------------------------------				$mem_group = $this->ipsclass->vars['subsm_enforce'] ? $this->ipsclass->vars['subsm_nopkg_group'] : $this->ipsclass->vars['member_group'];		$timenow   = time();		$email_tmp = $username.'@'.$timenow;					//-----------------------------------------		// Are we asking the member or admin to preview?		//-----------------------------------------				$member = array(						 'name'                   => $username,						 'members_created_remote' => 1,						 'email'                  => $email_tmp,						 'member_login_key'       => $this->ipsclass->converge->generate_auto_log_in_key(),						 'mgroup'                 => $mem_group,						 'posts'                  => 0,						 'joined'                 => $timenow,						 'ip_address'             => $this->ipsclass->ip_address,						 'view_sigs'              => 1,						 'email_pm'               => 1,						 'view_img'               => 1,						 'view_avs'               => 1,						 'restrict_post'          => 0,						 'view_pop'               => 1,						 'msg_total'              => 0,						 'new_msg'                => 0,						 'coppa_user'             => 0,						 'language'               => $this->ipsclass->vars['default_language'],						 'subs_pkg_chosen'        => 0					   );				//-----------------------------------------		// Insert: CONVERGE		//-----------------------------------------				$salt     = $this->ipsclass->converge->generate_password_salt(5);		$passhash = $this->ipsclass->converge->generate_compiled_passhash( $salt, md5($password) );					   		$converge = array( 'converge_email'     => $email_tmp,						   'converge_joined'    => $timenow,						   'converge_pass_hash' => $passhash,						   'converge_pass_salt' => $salt						 );					   		$this->ipsclass->DB->do_insert( 'members_converge', $converge );				//-----------------------------------------		// Get converges auto_increment user_id		//-----------------------------------------				$member_id    = $this->ipsclass->DB->get_insert_id();		$member['id'] = $member_id;				//-----------------------------------------		// Insert: MEMBERS		//-----------------------------------------				$this->ipsclass->DB->force_data_type = array( 'name' => 'string' );		$this->ipsclass->DB->do_insert( 'members', $member );				//-----------------------------------------		// Insert: MEMBER EXTRA		//-----------------------------------------				$this->ipsclass->DB->do_insert( 'member_extra', array( 'id' => $member_id, 'vdirs' => 'in:Inbox|sent:Sent Items' ) );				//-----------------------------------------		// Insert into the custom profile fields DB		//-----------------------------------------				$this->ipsclass->DB->simple_exec_query( array( 'delete' => 'pfields_content', 'where' => 'member_id='.$member['id'] ) );				$fields->out_fields['member_id'] = $member['id'];						$this->ipsclass->DB->do_insert( 'pfields_content', $fields->out_fields );				//-----------------------------------------		// Insert into partial ID table		//-----------------------------------------				$this->ipsclass->DB->do_insert( 'members_partial', array( 'partial_member_id' => $member['id'], 'partial_date' => $timenow ) );				//-----------------------------------------		// Now bounce onto "welcome page"		// where we'll ask for details		//-----------------------------------------				$this->ipsclass->print->redirect_screen( $this->ipsclass->lang['partial_login'], 'act=reg&CODE=complete_login&mid='.$member['id'].'&key='.$timenow );	}}?>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?