To create a log for my system to know that it has changed information, but the way I mounted it is giving Fatal error: Call to undefined function anti_injection () in:
Can anyone help or give me some example log change logging in php / mysql?
My table:
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 ;
the file to generate 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 (mysql_query($sql)or die(mysql_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
?>
And in the pages that I want to generate the logo I put it like this:
$x = 'Logs gravados';
include 'crialog.php';
My config file that is reporting the error on lines 13 and 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;
}
?>
lines 13 to 19 are:
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;
}