ADMIN SEGURO COM SENHA, TECLADO VIRTUAL E MULTI-USUÁRIO
Autor: Rodrigo Thomaz | Publicado: 2010-08-12T19:21:00-03:00

 					ADMIN SEGURO COM SENHA, TECLADO VIRTUAL E MULTI-USUÁRIO 				 				   						 							 							 						 						 				 					 						 							Esta contribuição é uma versão melhorada da que fiz anteriormente para colocar senha e login no admin, porém com  siginificativas mudanças: * Possibilidade de cadastrar administradores com senha e login individuais.  * Teclado Virtual estilo Caixa Econômica Fedreal para digitação dos dados com segurança. * Logout seguro, apaga a sessão, evitando que alguém entre na  administração logo após você sair sem precisar digitar login e senha. * Desloga automaticamente após inatividade, diminuindo a possibilidade  de aguém entrar no sistema se após você ter logado vier a se  ausentar da frente do computador. PARA BAIXAR O PACOTE COMPLETO COM INSTRUÇÕES E SCREEN SHOTS acessse   http://addons.oscommerce.com/info/5656 INSTRUÇÕES PARA A INSTALAÇÃO:      /////////////////////////////////////////////////////////////////////     1- Sempre Faça backup de seus arquivos e banco de dados antes. /////////////////////////////////////////////////////////////////////    2-Execute no PHPMyAdmin ou correspondente o conteúdo do arquivo "tabelaadmin.txt"/////////////////////////////////////////////////////////////////////    3- Copie para dentro do diretório admin todo o conteúdo da pasta "admin" desta contribuição  (fique tranquilo,pois não irá não irá sobrescrever nada). /////////////////////////////////////////////////////////////////////    4- no arquivo admin/includes/filename.php inclua:     define('FILENAME_ADMINISTRATORS', 'administrators.php');      define('FILENAME_LOGIN', 'login.php');/////////////////////////////////////////////////////////////////////     5- no arquivo admin/includes/database_tables.php inclua:     define('TABLE_ADMINISTRATORS', 'administrators'); /////////////////////////////////////////////////////////////////////     6- no arquivo admin/includes/application_top.php:logo após:        $language = $lng->language['directory'];      $languages_id = $lng->language['id'];   }  inclua:     // redirecionamento para apágina de login se o administrador estiver deslogado      if (!tep_session_is_registered('admin')) {     $redirect = false;     $current_page = basename($PHP_SELF);      if ($current_page != FILENAME_LOGIN) {        if (!tep_session_is_registered('redirect_origin')) {         tep_session_register('redirect_origin');         $redirect_origin = array('page' => $current_page,                                   'get' => $HTTP_GET_VARS);       }       $redirect = true;      }     if ($redirect == true) {        tep_redirect(tep_href_link(FILENAME_LOGIN));     }     unset($redirect); /////////////////////////////////////////////////////////////////////   7 - no arquivo admin/includes/functions/general.php: Logo após:    function tep_redirect($url) {        global $logger; inclua:       if ( (strstr($url, "\n") != false) || (strstr($url, "\r") != false) ) {         tep_redirect(tep_href_link(FILENAME_DEFAULT, '', 'NONSSL', false));     } /////////////////////////////////////////////////////////////////////    8 - no arquivo admin/includes/functions/sessions.php: Logo após:        if ($total['total'] > 0) { inclua:       global $HTTP_GET_VARS, $HTTP_POST_VARS, $HTTP_COOKIE_VARS;       $sane_session_id = true;      if (isset($HTTP_GET_VARS[tep_session_name()])) {        if (preg_match('/^[a-zA-Z0-9]+$/', $HTTP_GET_VARS[tep_session_name()]) == false) {         unset($HTTP_GET_VARS[tep_session_name()]);         $sane_session_id = false;        }     } elseif (isset($HTTP_POST_VARS[tep_session_name()])) {       if (preg_match('/^[a-zA-Z0-9]+$/', $HTTP_POST_VARS[tep_session_name()]) == false) {         unset($HTTP_POST_VARS[tep_session_name()]);         $sane_session_id = false;        }     } elseif (isset($HTTP_COOKIE_VARS[tep_session_name()])) {       if (preg_match('/^[a-zA-Z0-9]+$/', $HTTP_COOKIE_VARS[tep_session_name()]) == false) {         $session_data = session_get_cookie_params();         setcookie(tep_session_name(), '', time()-42000, $session_data['path'], $session_data['domain']);          $sane_session_id = false;        }     }     if ($sane_session_id == false) {        tep_redirect(tep_href_link(FILENAME_DEFAULT, '', 'NONSSL', false));     } /////////////////////////////////////////////////////////////////////   9 - No início de admin/includes/header.php, depois de  <?   inclua:   include_once("AdminNavigation.php");    ++++++++++++++++++++++++++++++++++++++++++++++++++  ++++++++++++++++++++++++   PRONTO, SE FEZ TUDO DIREITINHO ATÉ AQUI DEVE FUNCIONAR... NOTA: Pode ser que haja alguma pequena diferença entre as linhas citadas  nas instruções e a que você vai encontrar na sua loja, fique atento á  isto.  NOTA2: O CÓDIGO DO TECLADO ESTÁ CRIPTOGRAFADO POR QUESTÕES DE SEGURANÇA.