if( flag_spam($code) ){
echo $msg;
}else{
$code = anti_injection($code);
}
if( flag_spam($uid) ){
echo $msg;
}else{
$uid = anti_injection($uid);
}
if( flag_spam($nome) ){
echo $msg;
}else{
$nome = anti_injection($nome);
}
if( flag_spam($email) ){
echo $msg;
}else{
$email = anti_injection($email);
}
if( flag_spam($aniversario) ){
echo $msg;
}else{
$aniversario = anti_injection($aniversario);
}
if( flag_spam($relacionamento) ){
echo $msg;
}else{
$relacionamento = anti_injection($relacionamento);
}
if( flag_spam($animais) ){
echo $msg;
}else{
$animais = anti_injection($animais);
}
if( flag_spam($view_email) ){
echo $msg;
}else{
$view_email = anti_injection($view_email);
}
if( flag_spam($cidade) ){
echo $msg;
}else{
$cidade = anti_injection($cidade);
}
if( flag_spam($estado) ){
echo $msg;
}else{
$estado = anti_injection($estado);
}
if( flag_spam($pais) ){
echo $msg;
}else{
$pais = anti_injection($pais);
}functions.php
<?php
function anti_injection($sql_in){
$sql = preg_replace("/(from|select|insert|delete|where|drop table|show tables|#|\*|--|\\\\)/ie","",$sql_in);
$sql = trim($sql);
$sql = strip_tags($sql);
$sql_out = addslashes($sql);
return $sql_out;
}
function flag_spam($text){
$words = "phentermine|viagara|cialis|vioxx|oxycontin|levitra|ambien|xanax|paxil";
$found = preg_match_all("#(http://|www\.)($words)#ie",$text,$matches);
if($found > 0)
return true;
else
return false;
}
?>
<?php
//MSG de Erro.
$msg = "Ocorreu um erro. Talvez você esqueceu de preencher algum campo.<br>.
Usou caracteres não permitidos.<br>Seu IP foi gravado para averiguação.<br>Clique <a
href=\"blog.php?p=comentar&id=$blog_id\">aqui</a> para voltar e tentar de novo.";
?>O problema, é que, se tiver erro em algum IF da validação de spam, ele deveria parar todo o processamento da página e exibir o erro, o que ele não faz. Como posso fazer isso? =/
Edição feita por: Inu, 27/09/2006, 13:52.










