Saudações, amigos do Zoom Digital.
Hoje vou passar um pequeno tutorial de como efetuar inserção de dados numa base de dados MYSQL. Crie uma base de dados com a seguinte instrução MYSQL:
CREATE TABLE `fgts_convoca` (
`id` int(11) NOT NULL auto_increment,
`nome` text collate latin1_general_ci NOT NULL,
`funcao` text collate latin1_general_ci NOT NULL,
`email` text collate latin1_general_ci NOT NULL,
`ip` text collate latin1_general_ci NOT NULL,
`dataaabertura` date NOT NULL default '0000-00-00',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
A seguir elabore uma página HTML chamada ‘index.php’ que contenha um formulário com os campos NOME, FUNÇÃO e E-MAIL. Direcione o action desse formulário para uma página chamada ‘processa.php’.
Agora iniciaremos nosso script de inserção propriamente dito.
//Configuro os dados para conexão ao BD
$tabela = "Sua tabela";
$endereco = "Endereço da BD";
$usuario = "Usuario";
$senha = "Senha";
//Estabelece Conexão com a Base de Dados
mysql_connect($endereço, $usuario, $senha);
mysql_select_db($tabela);
Este é o começo do código. Iniciamos com a configuração de acesso a sua base de dados. Basta preencher os valores das variaveis $tabela, $endereco, $usuario e $senha de acordo com as configurações de acesso ao seu Banco de dados MYSQL.
function protecao($string){
$string = str_replace(" or ", "", $string);
$string = str_replace("select ", "", $string);
$string = str_replace("delete ", "", $string);
$string = str_replace("create ", "", $string);
$string = str_replace("drop ", "", $string);
$string = str_replace("update ", "", $string);
$string = str_replace("drop table", "", $string);
$string = str_replace("show table", "", $string);
$string = str_replace("applet", "", $string);
$string = str_replace("object", "", $string);
$string = str_replace("'", "", $string);
$string = str_replace("#", "", $string);
$string = str_replace("=", "", $string);
$string = str_replace("--", "", $string);
$string = str_replace("-", "", $string);
$string = str_replace(";", "", $string);
$string = str_replace("*", "", $string);
$string = strip_tags($string);
return $string;
}
A seguir você deve declarar está função, cuja finalidade é proteger os dados contra inserção de informações maliciosas. Esta função poderá ser chamada em qualquer trecho deste código após esta declaração.
//Recebo as variaveis
$nome = trim($_POST['nome']);
$nome = addslashes($nome);
$nome = protecao($nome);
$funcao = trim($_POST['funcao']);
$funcao = addslashes($funcao);
$funcao = protecao($funcao);
$email = trim($_POST['email']);
$email = addslashes($email);
$email = protecao($email);
Neste trecho recebemos as informações provenientes do formulário e fazemos uma verificação com nossa função ‘protecao’. Também utilizamos a função TRIM para limpar espaços em branco e ADDSLASHES para adicionar barras invertidas as informações. Tomando esses cuidados as chances de inserirem informações maliciosas sem permissão são quase nulas.
//Seleciono o IP
$ip = $_SERVER['REMOTE_ADDR'];
//Gero a data e hora de cadastro
$dataabertura = date("Y-m-d H:i:s");
Agora selecionamos algumas informações de controle opcionais. O IP da pessoa que está inserindo as informações e a data e hora da inserção.
$sql = mysql_query("INSERT INTO $tabela (nome, funcao, email, dataabertura, ip) VALUES ('".$nome."', '".$funcao."', '".$email."', '".$dataabertura."', '".$ip."')");
Neste trecho realizamos a inserção de dados propriamente dita utilizando a instrução INSERT INTO. Você pode obter mais informações sobre manipulação de dados no manual de referência MYSQL (http://dev.mysql.com/doc/refman/4.1/pt/insert.html).
if(!$sql){
echo "Erro na Inserção: ".mysql_error();
}else{
print ""; //Retorna Alerta de sucesso no processo
print ""; //Aqui indico a página do formulário para o script retornar a ela
}
Aqui fazemos uma verificação de condição. Se houver falha na inserção, todo o processo é interrompido e é exibida na tela uma mensagem de erro informando por que a inserção falhou. Caso contrário, retornamos um alert avisando do sucesso no processo e redirecionamos o usuário para a página do formulário.
Pronto. Agora vocês sabem o básico de inserção de dados com PHP. Não sou o melhor professor do mundo, mas espero que vocês consigam tirar algum proveito dessas informações.
Nós vemos em breve.
Que a Força esteja com vocês.
Uma função bacana para usar contra Injeção SQL
function AntInjection($fields){
return trim(strip_tags(addslashes($fields)));
}
dai é so chamar a função
$nome = AntInjection($_POST[‘nome’])
ou jogar o $_POST em um foreach e dentro dele chamar a função para tratar todos os valores do array
Para combater Sql Injection eu uso a seguinte função:
function AntiInjection($Param){
$Param = strip_tags($Param); // Retira tags HTML
$Param = addslashes($Param); // Acrescenta barra invertida (“\”) caso insira aspas simples (“‘”) escapando o caracter
$Param = mysql_escape_string($Param); //Retira todas as tags mysql, como por exemplo, SELECT, DROP TABLE, ALTER TABLE, e assim vai.
$Param = strtolower($Param); // Deixa os caracteres em caixa baixa.
return $Param;
}
Belo tutorial, sempre é bom pegar ip como você fez no registro para ter um controle melhor sobre o sistema.
Parabéns
Muito bom, gostei de ter notícias sobre PHP no Zoom Digital.
Boas funções as de vocês, Rafael e Alexandre.
Existem dezenas de funções para proteção contra SQL Injection. Temos sempre que ficar atentos a proteção de nossos projetos.
E breve teremos mais dicas de PHP.
Boa noite amigo, gostaria de saber se vc da aula de php, mas preciso aprender já fazendo um projeto que tenho aqui em mente.
C Price of co-diovan E
E http://fccan.org/buy-zyprexa-online-no-prescription-can-you-get-high-zyprexa-zydis How long does it take to wean off zyprexa G
Q http://geoaqua.itc.nl W
L How much does a month supply of valtrex cost A
W http://antutulabs.com/node/171 Cost of lamictal 100 mg E S Zyprexa 20 mg cost R
K http://mobi.com.na/node/49 Risperdal buy F U Discount on singulair prescription A
K http://mobi.com.na/node/617 Levitra for sale usa B