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 comsiginificativas 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.
Boa noite Rodrigo, parabéns por esse tutorial, só que na linha 9 faltou dados, veja:
ResponderExcluir9 - No início de admin/includes/header.php,
depois de
inclua:
include_once("AdminNavigation.php");