* @copyright: Copyright (c) 2010, Bunzia Alexander * @version: 1.0 * @license: http://www.gnu.org/copyleft/gpl.html GNU/GPL */ class users_admin_login{ private $error = false; private $act = ''; function __construct(){ global $MAIN_PAGE; define('M_PATH',MAIN_SOURCE_PATH.'/modules/'.$MAIN_PAGE -> dirname() ); define('M_URL',MAIN_SOURCE_URL.'/modules/'.$MAIN_PAGE -> dirname() ); include_once(M_PATH.'/inc/url.php'); include_once(M_PATH.'/inc/class.users.php'); if ( !empty($_REQUEST['act']) ){ $this -> act = $_REQUEST['act']; } //include(MAIN_SOURCE_PATH.'/ext/ajax/JsHttpRequest.php'); //$JsHttpRequest =& new JsHttpRequest($MAIN_PAGE -> charset()); } public function get(){ $func = $this -> act; if ( !method_exists($this ,$func) ){ sys_error(ERROR_404); } return $this -> $func(); } private function admin_login(){ global $MAIN_PAGE; Header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); //Дата в прошлом Header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 Header("Pragma: no-cache"); // HTTP/1.1 Header("Last-Modified: ".gmdate("D, d M Y H:i:s")."GMT"); if ( empty($MAIN_USER) ){ $MAIN_USER = users::auth(); } // админу сразу редирект на главную админки if ( !empty($MAIN_USER) && $MAIN_USER -> is_admin() ){ include_once(MAIN_SOURCE_PATH.'/modules/admin/inc/url.php'); if ( $MAIN_PAGE -> config('sys_admin_mainpage') !='' ){ sys_redirect( sys_url($MAIN_PAGE -> config('sys_admin_mainpage')) ); }else{ sys_redirect( MAIN_URL.'?p_name=admin_main'); } } // обрабатываем форму if ( !empty($_REQUEST['send']) ){ $u = self::inc_login_site($_REQUEST['login'],$_REQUEST['pass']); // данные верны, редирект на главную админки if (false!==$u ){ include_once(MAIN_SOURCE_PATH.'/modules/admin/inc/url.php'); if ( $MAIN_PAGE -> config('sys_admin_mainpage') !='' ){ sys_redirect( sys_url($MAIN_PAGE -> config('sys_admin_mainpage')) ); }else{ sys_redirect( MAIN_URL.'?p_name=admin_main'); } } $this -> error = 'Логин или пароль указаны неверно'; } // выводим форму для авторизации админа $t = new PHPTAL( M_PATH.'/tmpl/admin_index/form.html' ); $t -> login_url = URL_USERS_ADMIN_LOGIN; $t -> error = $this -> error; return $t -> execute(); } private function inc_login_site($l,$p,$save){ $u = users::load_login($l); if ( $u===false ){ return false; } if ( $u -> pass()!=users::make_pass($p) ){ return false; } $u -> user_session($save); return $u; } } // end class ?>