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 + -
显示快捷键?