📄 ib3.php
字号:
<?php
class login
{
var $output = "";
var $page_title = "";
var $nav = array( );
var $login_html = "";
function login( )
{
global $ibforums;
global $DB;
global $std;
global $print;
$ibforums->lang = $std->load_words( $ibforums->lang, "lang_login", $ibforums->lang_id );
$this->login_html = $std->load_template( "skin_login" );
switch ( $ibforums->input[CODE] )
{
case "01" :
$this->do_log_in( );
break;
case "02" :
$this->log_in_form( );
break;
case "03" :
$this->do_log_out( );
break;
default :
$this->log_in_form( );
break;
}
$print->add_output( "{$this->output}" );
$print->do_output( array(
"TITLE" => $this->page_title,
"JS" => 0,
NAV => $this->nav
) );
}
function log_in_form( $message = "" )
{
global $ibforums;
global $DB;
global $std;
global $print;
global $HTTP_REFERER;
if ( $message != "" )
{
$this->output .= $this->login_html->errors( $ibforums->lang[$message] );
}
$html = "\r\n <script language='JavaScript'>\r\n <!--\r\n function ValidateForm() {\r\n var Check = 0;\r\n if (document.LOGIN.UserName.value == '') { Check = 1; }\r\n if (document.LOGIN.PassWord.value == '') { Check = 1; }\r\n\r\n if (Check == 1) {\r\n alert(\"{$ibforums->lang[blank_fields]}\");\r\n return false;\r\n } else {\r\n document.LOGIN.submit.disabled = true;\r\n return true;\r\n }\r\n }\r\n //-->\r\n </script> \r\n <br>\r\n <table cellpadding='3' cellspacing='1' border='0' align='center' width='{$ibforums->skin['tbl_width']}'>\r\n <tr>\r\n <td align='left'>{$ibforums->lang['login_text']}</td>\r\n </tr>\r\n <tr>\r\n <td align='left'><b>{$ibforums->lang[forgot_pass]} <a href='{$ibforums->vars['board_url']}/index.{$ibforums->vars['php_ext']}?act=Reg&CODE=10'>{$ibforums->lang[pass_link]}</a></b></td>\r\n </tr>\r\n </table>\r\n <form action=\"{$ibforums->vars['board_url']}/index.{$ibforums->vars['php_ext']}\" method=\"post\" name='LOGIN' onSubmit='return ValidateForm()'>\r\n <input type='hidden' name='act' value='ib3'>\r\n <input type='hidden' name='CODE' value='01'>\r\n <input type='hidden' name='s' value='{$ibforums->session_id}'>\r\n <input type='hidden' name='referer' value=\"\">\r\n <table cellpadding='0' cellspacing='0' border='0' width='{$ibforums->skin['tbl_width']}' bgcolor='{$ibforums->skin['tbl_border']}' align='center'>\r\n <tr>\r\n <td>\r\n <table cellpadding='3' cellspacing='1' border='0' width='100%'>\r\n <tr>\r\n <td align='left' colspan='2' id='titlemedium'>Please enter your old Ikonboard 3 Username and Password</td>\r\n </tr>\r\n <tr>\r\n <td id='row1' width='40%'>Your Ikonboard 3 Username</td>\r\n <td id='row1'><input type='text' size='20' maxlength='64' name='UserName' class='forminput'></td>\r\n </tr>\r\n <tr>\r\n <td id='row1' width='40%'>Your Ikonboard 3 Password</td>\r\n <td id='row1'><input type='password' size='20' name='PassWord' class='forminput'></td>\r\n </tr>\r\n </table>\r\n </td>\r\n </tr>\r\n </table>\r\n <br>\r\n <table cellpadding='0' cellspacing='0' border='0' width='{$ibforums->skin['tbl_width']}' bgcolor='{$ibforums->skin['tbl_border']}' align='center'>\r\n <tr>\r\n <td>\r\n <table cellpadding='3' cellspacing='1' border='0' width='100%'>\r\n <tr>\r\n <td align='left' colspan='2' id='titlemedium'>{$ibforums->lang[options]}</td>\r\n </tr>\r\n <tr>\r\n <td id='row1' width='40%' align='left' valign='top'>{$ibforums->lang[cookies]}</td>\r\n <td id='row1' width='40%'><input type=\"radio\" name=\"CookieDate\" value=\"1\" checked>{$ibforums->lang[cookie_yes]}<br><input type=\"radio\" name=\"CookieDate\" value=\"0\">{$ibforums->lang[cookie_no]}</td>\r\n </tr>\r\n <tr>\r\n <td id='row1' width='40%' align='left' valign='top'>{$ibforums->lang[privacy]}</td>\r\n <td id='row1' width='40%'><input type=\"checkbox\" name=\"Privacy\" value=\"1\">{$ibforums->lang[anon_name]}</td>\r\n </tr>\r\n <tr>\r\n <td id='row2' align='center' colspan='2'>\r\n <input type=\"submit\" name='submit' value=\"{$ibforums->lang[log_in_submit]}\" class='forminput'>\r\n </td></tr></table>\r\n </td></tr></table>\r\n </form>\r\n\r\n";
$this->output .= $html;
$this->nav = array( "Upgrade my old Ikonboard Account" );
$this->page_title = "Upgrade my old Ikonboard Account";
$print->add_output( "{$this->output}" );
$print->do_output( array(
"TITLE" => $this->page_title,
"JS" => 0,
NAV => $this->nav
) );
exit( );
}
function do_log_in( )
{
global $DB;
global $ibforums;
global $std;
global $print;
global $sess;
global $HTTP_USER_AGENT;
global $HTTP_POST_VARS;
$url = "";
if ( $HTTP_POST_VARS['UserName'] == "" )
{
$std->error( array( "LEVEL" => 1, "MSG" => "no_username" ) );
}
if ( $HTTP_POST_VARS['PassWord'] == "" )
{
$std->error( array( "LEVEL" => 1, "MSG" => "pass_blank" ) );
}
if ( 32 < strlen( $ibforums->input['UserName'] ) )
{
$std->error( array( 1, "username_long" ) );
}
if ( 32 < strlen( $ibforums->input['PassWord'] ) )
{
$std->error( array( 1, "pass_too_long" ) );
}
$username = strtolower( $ibforums->input['UserName'] );
$password = crypt( $ibforums->input['PassWord'], substr( strtolower( $ibforums->input['UserName'] ), 0, 2 ) );
$DB->query( "SELECT id, name, mgroup, password, new_pass FROM ibf_members WHERE LOWER(name)='{$username}'" );
if ( $DB->get_num_rows( ) )
{
$member = $DB->fetch_row( );
if ( empty( $member['id'] ) || $member['id'] == "" )
{
$this->log_in_form( "wrong_name" );
}
if ( $member['password'] != $password )
{
$this->log_in_form( "wrong_pass" );
}
$real_pass = md5( $ibforums->input['PassWord'] );
if ( $ibforums->input['s'] )
{
$session_id = $ibforums->input['s'];
$DB->query( "DELETE FROM ibf_sessions WHERE ip_address='".$ibforums->input['IP_ADDRESS']."' AND id <> '{$session_id}'" );
$db_string = $DB->compile_db_update_string( array(
"member_name" => $member['name'],
"member_id" => $member['id'],
"running_time" => time( ),
"member_group" => $member['mgroup'],
"login_type" => $ibforums->input['Privacy'] ? 1 : 0
) );
$db_query = "UPDATE ibf_sessions SET {$db_string} WHERE id='".$ibforums->input['s']."'";
}
else
{
$session_id = md5( uniqid( microtime( ) ) );
$DB->query( "DELETE FROM ibf_sessions WHERE ip_address='".$ibforums->input['IP_ADDRESS']."'" );
$db_string = $DB->compile_db_insert_string( array(
"id" => $session_id,
"member_name" => $member['name'],
"member_id" => $member['id'],
"running_time" => time( ),
"member_group" => $member['mgroup'],
"ip_address" => substr( $ibforums->input['IP_ADDRESS'], 0, 50 ),
"browser" => substr( $HTTP_USER_AGENT, 0, 50 ),
"login_type" => $ibforums->input['Privacy'] ? 1 : 0
) );
$db_query = "INSERT INTO ibf_sessions (".$db_string['FIELD_NAMES'].") VALUES (".$db_string['FIELD_VALUES'].")";
}
$DB->query( $db_query );
$DB->query( "UPDATE ibf_members SET password='{$real_pass}' WHERE id='".$member['id']."'" );
$ibforums->member = $member;
$ibforums->session_id = $session_id;
if ( $ibforums->input['CookieDate'] )
{
$std->my_setcookie( "pass_hash", $real_pass, 1 );
$std->my_setcookie( "member_id", $member['id'], 1 );
}
if ( $ibforums->input[Privacy] == 1 )
{
$std->my_setcookie( "anonlogin", 1 );
}
$print->redirect_screen( "{$ibforums->lang[thanks_for_login]} {$ibforums->member['name']}", $url );
}
else
{
$this->log_in_form( "wrong_name" );
}
}
function do_log_out( )
{
global $std;
global $ibforums;
global $DB;
global $print;
if ( !$ibforums->member['id'] )
{
$std->error( array( 1, "no_guests" ) );
}
$DB->query( "UPDATE ibf_sessions SET member_name='NULL',member_id='0',member_pass='NULL',login_type='0' WHERE id='".$ibforums->session_id."'" );
$std->my_setcookie( "member_id", "0" );
$std->my_setcookie( "pass_hash", "0" );
$std->my_setcookie( "skin", "-1" );
$print->redirect_screen( $ibforums->lang['thanks_for_logout'], "" );
}
}
$idx = new login( );
?>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -