Gravar comandos em uma tabela
Estou com muita dificuldade para resolver essa questão abaixo:
Como gravar os comandos digitados pelo usuário em uma tabela, ou seja, desde a hora que ele digita o login e a senha até a hora que ele sai do sistema.
Pode me ajudar nao sei nem começar rsrs..
Como gravar os comandos digitados pelo usuário em uma tabela, ou seja, desde a hora que ele digita o login e a senha até a hora que ele sai do sistema.
Pode me ajudar nao sei nem começar rsrs..
Francielle Oliveira
Curtidas 0
Respostas
Claudio Lopes
13/11/2013
Franciele, não entendi, tem como explicar na pratica? tipo quem faz o que?
GOSTEI 0
Francielle Oliveira
13/11/2013
Estou criando um sistema de consulta ao banco de dados,
onde o usuário do sistema deverá logar no sistema(usuário e senha).
*sistema deverá registrar data e hora dos logons.
*sistema deverá registrar todos os comandos efetivados
Com isso estou com dificuldades para gravar os comandos que o usuário for fazendo no sistema numa outra tabela.
Ex: Quando ele logar no sistema, automaticamente já grava numa outra tabela que o usuário Fulano logou as 09:45.
Ai ele entrou para fazer um cadastro, ai automaticamente já grava na tabela que o usuário Fulano cadastrou no sistema e assim por diante.
onde o usuário do sistema deverá logar no sistema(usuário e senha).
*sistema deverá registrar data e hora dos logons.
*sistema deverá registrar todos os comandos efetivados
Com isso estou com dificuldades para gravar os comandos que o usuário for fazendo no sistema numa outra tabela.
Ex: Quando ele logar no sistema, automaticamente já grava numa outra tabela que o usuário Fulano logou as 09:45.
Ai ele entrou para fazer um cadastro, ai automaticamente já grava na tabela que o usuário Fulano cadastrou no sistema e assim por diante.
GOSTEI 0
Claudio Lopes
13/11/2013
Entendi, o que você quer é gattilho (trigger), assim, quando o cara logar (consutlar a tabela de usuarios) dispara um evento que faz um insert na tabela de log
outra forma de vc fazer isso e que vai demandar mais linhas de códigos é fazer isso no seu sistema, ex:
chamou a função que verifica os dados do usuário e senha -> insere na tabela de log
qualquer dúvida posta ai
outra forma de vc fazer isso e que vai demandar mais linhas de códigos é fazer isso no seu sistema, ex:
chamou a função que verifica os dados do usuário e senha -> insere na tabela de log
qualquer dúvida posta ai
GOSTEI 0
Francielle Oliveira
13/11/2013
Estou tentando fazer assim mais ta dando erro, que não tenho privilégios para fazer. O que pode ser?
CREATE TABLE vigia
(registra VARCHAR2(100));
CREATE OR REPLACE TRIGGER registra_logon
AFTER LOGON ON DATABASE
BEGIN
INSERT INTO sys.vigia VALUES (USER || " entrou no sistema em " || TO_CHAR(sysdate, "DD-MM-YYYY HH24:MI:SS"));
COMMIT;
END; /
CREATE TABLE vigia
(registra VARCHAR2(100));
CREATE OR REPLACE TRIGGER registra_logon
AFTER LOGON ON DATABASE
BEGIN
INSERT INTO sys.vigia VALUES (USER || " entrou no sistema em " || TO_CHAR(sysdate, "DD-MM-YYYY HH24:MI:SS"));
COMMIT;
END; /
GOSTEI 0
Claudio Lopes
13/11/2013
seu usuario é admin?
GOSTEI 0
Francielle Oliveira
13/11/2013
Sim, fiz abaixo e nao ta dando certo.
CREATE TABLE registro(
Nome VARCHAR2(30),
dat date
);
CREATE TABLE client(
Nome VARCHAR2(30)
);
CREATE OR REPLACE TRIGGER marca_logonn
BEFORE INSERT OR DELETE OR UPDATE
ON registro
REFERENCING NEW AS NEW OLD AS OLD
BEGIN
INSERT INTO client VALUES (USER || 'entrou no sistema em' || TO_CHAR(sysdate, 'DD-MM-YYYY, HH24:MI:SS'));
END;
/
CREATE TABLE registro(
Nome VARCHAR2(30),
dat date
);
CREATE TABLE client(
Nome VARCHAR2(30)
);
CREATE OR REPLACE TRIGGER marca_logonn
BEFORE INSERT OR DELETE OR UPDATE
ON registro
REFERENCING NEW AS NEW OLD AS OLD
BEGIN
INSERT INTO client VALUES (USER || 'entrou no sistema em' || TO_CHAR(sysdate, 'DD-MM-YYYY, HH24:MI:SS'));
END;
/
GOSTEI 0
Claudio Lopes
13/11/2013
bom poe a mensagem de erro ai, outra coisa, sei pouco sobre o assunto porem o que sei é os insert estarão na tabela inserted e os replace ou delete na tabela deleted...
GOSTEI 0
Adilson Rumao
13/11/2013
Estou fazendo algo parecido assim:
Veja se lhe ajuda de alguma forma ou lhe dá uma ideia para onde seguir.
Veja se lhe ajuda de alguma forma ou lhe dá uma ideia para onde seguir.
<?php function gravarLogin($admin) { /* Altera a data e hora do Localhost */ date_default_timezone_set('America/Sao_Paulo'); $pdo = conectar(); try { $gravarLogin = $pdo->prepare("INSERT INTO dados_login_admin (dados_login_admin, dados_login_data) VALUES (:admin, :data)"); $gravarLogin->bindValue(":admin", $admin); $gravarLogin->bindValue(":data", date("Y/m/d h:i:s")); $gravarLogin->execute(); //Se cadastrou no banco o login do Administrador if ($gravarLogin->rowCount() == 1): return true; else: return false; endif; } catch (PDOException $e) { echo '<div class="msg_erro">Erro ao gravar dados de Login. </div>'.$e->getMessage(); } } function gravarDados($arquivo) { /* Altera a data e hora do Localhost */ date_default_timezone_set('America/Sao_Paulo'); /* Verifica o tipo de arquivo para gravar as mensagens */ if ($arquivo == "functions/login/sucesso_login.txt"): $str = "O Administrador " . $_SESSION['cliente'] . " logou com sucesso. IP: " . $_SERVER['REMOTE_ADDR'] . " na Data: " . date("Y/m/d h:i:s") . "\n"; else: $str = "Erro ao logar com o IP: " . $_SERVER['REMOTE_ADDR'] . " na Data: " . date("d/m/Y h:i:s") . "\n"; endif; /* Grava os dados em arquivo .txt */ if (file_exists($arquivo)): $file = fopen($arquivo, "a"); if ($file): fputs($file, $str); endif; endif; } function logar($login, $senha) { $pdo = conectar(); try { $logar = $pdo->prepare("SELECT * FROM admin WHERE admin_login = :login AND admin_senha = :senha LIMIT 1"); $logar->bindValue(":login", $login); $logar->bindValue(":senha", $senha); $logar->execute(); $dadosLogin = $logar->fetch(PDO::FETCH_ASSOC); if ($logar->rowCount() == 1): //Se logou cria a Sessão $_SESSION['admin'] = $dadosLogin['admin_nome']; $_SESSION['responsavel'] = $dadosLogin['admin_login']; $_SESSION['logado_admin'] = true; //Grava no banco de dados if (gravarLogin($dadosLogin['admin_id'])): //Grava em arquivo .txt gravarDados("functions/login/sucesso_login.txt"); return true; endif; else: //Se não logou grava em arquivo .txt gravarDados("functions/login/erro_login.txt"); return false; endif; } catch (PDOException $e) { echo '<div class="msg_erro">Erro ao tentar logar no Sistema. </div>'.$e->getMessage(); } } function verificaLogado($sessao){ if(!isset($_SESSION[$sessao])): header("Location: ../index.php"); endif; } function pegaIdAdmin($nome = null){ $pdo = conectar(); try{ $pegaId = $pdo->prepare("SELECT * FROM admin WHERE admin_nome = :admin"); $pegaId->bindValue(":admin", $nome); $pegaId->execute(); $dados = $pegaId->fetch(PDO::FETCH_ASSOC); return $dados['admin_id']; }catch(PDOException $e){ echo "Erro ao pegar ID do admin. ".$e->getMessage(); } } function ultimoLogin($id){ $pdo = conectar(); try{ $ultimaVisita = $pdo->prepare("SELECT * FROM dados_login_admin WHERE dados_login_admin = :dados_login ORDER BY dados_login_data DESC LIMIT 1,1"); $ultimaVisita->bindValue(":dados_login", $id); $ultimaVisita->execute(); $dados = $ultimaVisita->fetch(PDO::FETCH_ASSOC); return $dados['dados_login_data']; }catch(PDOException $e){ echo "Erro ao pegar último login do admin. ".$e->getMessage(); } }
GOSTEI 0