Função contra SQL Injection
Olá amigos, quero tentar usar a função contra sql injection que tenho, porém como o codigo onde quero testar ela foi feito pelo dreamweaver não estou conseguindo adaptar, alguém pode me ajudar? Segue abaixo a função:
<?php
function anti_sql_injection($str) {
if (!is_numeric($str)) {
$str = get_magic_quotes_gpc() ? stripslashes($str) : $str;
$str = function_exists('mysql_real_escape_string') ? mysql_real_escape_string($str) : mysql_escape_string($str);
}
return $str;
}
?>
E aqui segue os 2 blocos de código onde quero adaptar ela.
/******* BUSCA NO SITE *********/
$colname_Pesquisa = “-1″;
if (isset($_GET['txtBusca'])) {
$colname_Pesquisa = (get_magic_quotes_gpc()) ? $_GET['txtBusca'] : addslashes($_GET['txtBusca']);
}
mysql_select_db($database_conn, $conn);
$query_Pesquisa = sprintf(“SELECT idMateria, titulo2, status, dataMateria FROM tb_materias WHERE status = ‘on’ AND titulo2 LIKE ‘%%%s%%’ ORDER BY dataMateria DESC”, $colname_Pesquisa);
$Pesquisa = mysql_query($query_Pesquisa, $conn) or die(mysql_error());
$row_Pesquisa = mysql_fetch_assoc($Pesquisa);
$totalRows_Pesquisa = mysql_num_rows($Pesquisa);
/******** LER MATERIA ***************/
$colname_LerMateria = “-1″;
if (isset($_GET['id'])) {
$colname_LerMateria = (get_magic_quotes_gpc()) ? $_GET['id'] : addslashes($_GET['id']);
}
mysql_select_db($database_conn, $conn);
$query_LerMateria = sprintf(“SELECT * FROM tb_materias WHERE idMateria = %s”, $colname_LerMateria);
$LerMateria = mysql_query($query_LerMateria, $conn) or die(mysql_error());
$row_LerMateria = mysql_fetch_assoc($LerMateria);
$totalRows_LerMateria = mysql_num_rows($LerMateria);
/******************* Aqui o exemplo de como usar a função*******************/
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$usuario = trim($_POST['usuario']);
$senha = trim($_POST['senha']);
$sql = 'SELECT COUNT(id_usuario) ';
$sql .= 'FROM usuarios ';
$sql .= 'WHERE usuario = \'' . anti_sql_injection($usuario) . '\' ';
$sql .= 'AND senha = \'' . anti_sql_injection($senha) . '\' ';
$query = mysql_query($sql) or die('Erro na consulta: ' . mysql_error());
$total = mysql_result($query, 0);
if ($total > 0) {
echo 'Usuário e senha corretos.';} else {
echo 'Usuário e/ou senha inválidos.';
}
}
Se alguém puder me ajudar agradeço, já tentei de várias formas e não consegui, pois sempre me retorna um erro
Discussão (2)
Carregando comentários...