Problema ao criar log no sistema
To criando um log para meu sistema pra saber que fez alteração na informações, só que o jeito que montei está dando Fatal error: Call to undefined function anti_injection() in:
alguém pode ajudar ou me dar algum exemplo de log de alteração de registro em php/mysql?
minha tabela:
CREATE TABLE IF NOT EXISTS `LOGS` (
LOGID int(10) unsigned NOT NULL AUTO_INCREMENT,
HORA datetime NOT NULL,
IP varchar(15) NOT NULL,
MENSAGEM text COLLATE latin1_general_ci NOT NULL,
PRIMARY KEY (LOGID),
KEY HORA (HORA )
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=1 ;
o arquivo para gerar log:
<?php
include 'adm/config.php';
//ABAIXO CRIAMOS A FUNÇÃO QUE IRÁ AUTOMATIZAR A CRIAÇÃO DOS LOGS NO BANCO
function logs($x){ // RECEBE POR PARAMETRO A VARIÁVEL $x QUE SERÁ A MENSAGEM A SER GRAVADA NO BANCO DE DADOS.
$IP = $_SERVER['REMOTE_ADDR']; // SALVA O IP DO VISITANTE
$HORA = date('Y-m-d H:i:s'); // SALVA A DATA E HORA ATUAL (formato MySQL)
// MONTANDO A QUERY PARA INSERIR NO BANCO DE DADOS
$sql = "INSERT INTO `LOGS` (HORA,IP,MENSAGEM) VALUES ('$HORA', '$IP', '$x')"; //ONDE "$x" É A VARIÁVEL QUE ARMAZENA A MENSAGEM QUE VOCÊ QUER INSERIR NO BANCO
if (mysqli_query($sql)or die(mysqli_error())){ // EXECUTA A QUERY OU MOSTRA O ERRO, CASO OCORRA.
return true; //VERIFICA SE DEU CERTO, SE SIM RETORNA TRUE
}
else{
return false; // VERIFICA SE DEU ERRADO, SE SIM, RETORNA FALSE
}
}
logs($x); // AQUI CHAMAMOS A FUNÇÃO QUE CRIAMOS PARA EXECUTAR A INSERÇÃO NO BANCO DE DADOS
//SE REMOVER O COMENTÁRIO DO CÓDIGO ABAIXO, PODERÁ IMPRIMIR A MENSAGEM DIRETAMENTE NO NAVEGADOR E CONFERIR SE O PROCESSO FOI REALIZADO COM SUCESSO OU NÃO
/* << INÍCIO DO COMENTÁRIO
if(logs($x)){ // VERIFICA O RETORNO DA FUNÇÃO, SE DEU CERTO OU ERRADO
echo "Logs inseridos no banco"; // EM CASO DE TER REALIZADO FUNÇÃO CORRETAMENTE, MOSTRA NO NAVEGADOR "Logs inseridos no banco"
}
else{
echo "Logs não inseridos no banco"; // EM CASO DE NÃO TER REALIZADO FUNÇÃO CORRETAMENTE, MOSTRA NO NAVEGADOR "Logs não inseridos no banco""
}
*/ //FIM DO COMENTÁRIO
mysql_close(); // FECHA A CONEXÃO COM O MySQL
?>
e nas paginas que quero q gere o logo coloco assim:
$x = 'Logs gravados';
include 'crialog.php';
Meu arquivo config que está acusando o erro nas linhas 13 e 19
<?php
$lc_titulo="World Trotter Com Imp e Exp Ltda";
$dbhost="localhost"; / servidor /
$dbuser="root"; / usuário do banco de dados /
$dbpasswd="rc010368"; / senha do banco de dados /
$dbname="estoqueprod"; / nome do banco de dados /
$conexao = mysqli_connect($dbhost, $dbuser, $dbpasswd,$dbname) or die ("não foi possível a conexão, verifique os dados $dbname.");
//mysql_select_db($dbname) or die ("não foi possível o acesso ao banco de dados $dbname.");
// ANTI-INJECTION
function anti_injection($sql){
$sql = preg_replace("/( from |select|insert|delete|where|drop table|show tables|#|\*|--|\\\\)/", "" ,$sql);
$sql = trim($sql);
$sql = strip_tags($sql);
$sql = (get_magic_quotes_gpc()) ? $sql : addslashes($sql);
return $sql;
}
?>
as linhas 13 a 19 são:
function anti_injection($sql){
$sql = preg_replace("/( from |select|insert|delete|where|drop table|show tables|#|\*|--|\\\\)/", "" ,$sql);
$sql = trim($sql);
$sql = strip_tags($sql);
$sql = (get_magic_quotes_gpc()) ? $sql : addslashes($sql);
return $sql;
}Discussão (1)
Carregando comentários...