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.