mamotinho 0 Denunciar post Postado Setembro 11, 2014 Olá pessoal queria a ajuda de vocês si pode min ajuda ficarei grato já tentei arrumar mais ta min dando dor de cabeça só vou especificar o que eu já tentei fazer:já tenho o header("Content-Type: text/html; charset=utf-8",true) ; no conf,php e também na página da programação , também já tentei muda o charset para iso-8859-1 e não deu em nada. o campo do texto que quero coloca já tentei coloca como type=INPUT e TEXTAREA que esta atualmente. utilizo a função anti_injection($_POST) mais ela não tem nenhuma restrinção contra palavras acentuadas veja abaixo.MINHA FUNÇÃO BASICA DE INJECT function anti_injection($sql, $formUse = true) { $sql = preg_replace("/(from|select|insert|delete|where|drop table|show tables|#|\*|--|\\\\)/i","",$sql); $sql = trim($sql); $sql = strip_tags($sql); $sql = addslashes($sql); return $sql; } function clean_variable($var) { $newvar = preg_replace('/[^a-zA-Z0-9\_\-\@\ \!\>\<\#\$\%\^\.\+\-\&\*\(\)\`\:\.\}\{\]\[]/', '', $var); return $newvar; } $_REQUEST = clean_variable($_REQUEST); $_POST = clean_variable($_POST); $_GET = clean_variable($_GET); $_COOKIE = clean_variable($_COOKIE); $_SESSION = clean_variable($_SESSION); $badwords = array(";","'", "+", "--","/","|",":", "=", "%", "(", ")","DROP", "SELECT", "UPDATE", "DELETE", "drop", "select", "update", "delete", "WHERE", "where", "-1", "-2", "-3","-4", "-5", "-6", "-7", "-8", "-9",); é estranho nunca tinha aconteçido isso pra min, bom eu tou criando um sistema , para SQL SERVER, eu queria que pelo menos as palavras acentuadas fosse para o $_POST coisa que não esta indo observer a imagem abaixo. a restrinção informar que o campo requer a quantidade de palavras , então é uma conclusão de que as palavras acentuadas não estão sendo enviadas.Bom eu queria que resolver esse problema pois criei uma string para pega essas palavras e substituir pelo codigo formatado para iso-8859-1 veja abaixo a string: $texto_format = array( " " => " ", "ã" => "ã", "é" => "é", "è" => "è", "ç" => "ç", "â" => "â", "í" => "í", "ì" => "ì", "ê" => "ê", "î" => "î", "ú" => "ú", "ù" => "ù", "û" => "û", "ô" => "ô", "õ" => "õ", "ó" => "ó", "ò" => "ò", "&" => "&", ">" => ">", "<" => "<", "°" => "°"); Aqui abaixo é a parte do <form> veja como esta : <form action="_userPanel/up.atvConta.php?write=true" method="post" name="registro" id="register_form" class="submission small style"> <div style="width:100%;"> <table border="0" width="704" cellpadding="0" cellspacing="0"> <tr> <td height="50"> <div class="content" style="display: block;"> <div class="title">Sistema MegaFone</div> <div class="box-main"> <div style="background: rgba(0,0,0,0.7);width:98%;padding:5px;margin:0px 0px 5px 2px;border-radius:4px;"> <div style="float:left;"> <font color="red">*</font> É Necessario te no minimo 1,000 T-Point na conta. <br /> <font color="red">*</font> O Sistema só funciona com usuários ativos. <br /> <font color="red">*</font> O Tempo de Anúncio é de 1 Hora. <br /> <font color="red">*</font> você poderá anúncia somente si o tempo de anúncio do jogador já tiver expirado <br /> <div class="clear"></div> </div><br /><br /><br /><br /><br /> <fieldset> <legend> Digite seu anúncio baixo. </legend> <div class="stats_change_reset_result"> <div style="text-align:center;"> <textarea maxlength="30" name="MaxAnuncio" style="width:100%; height:32px;"></textarea> <br /><br /> <!--ESCOLHER CHAR--> Anúncie com:<br> <select name="MxIdxChar"> <?php $searchChar = mssql_query("SELECT * FROM ".DB_GAM.".dbo.cabal_character_table WHERE CharacterIdx/8='".$IdxAcc."'"); while($rows=mssql_fetch_object($searchChar)){ $calcPK = $rows->PKPenalty; echo '<option value="'.$rows->CharacterIdx . '"'; echo '>'.$rows->Name.' </option>'; } ?> </select> <!--END--> <input type="hidden" value="65d1qwaws" name="SerialKey" /> </div> </div> </fieldset> <div class="flabel" style="text-align: center; float:right; margin-top:12px;"> <input name="txtMegafone" id="register_submit" width="250" style="height:30px;width:120px;cusor:pointer;" type="button" value="Publica" onclick="new Ajax.Updater('checar', '_userPanel/up.MegaFone.php?write=true', {method: 'post', asynchronous:true, parameters:Form.serialize(document.registro)}); esperar('checar');"> </div> </div> </td> </tr> </table> </div> </form> AQUI ABAIXO É A PARTE DA CHAMADA DO FORM include('_funcUserPanel/funcDados.php'); date_default_timezone_set('America/Sao_Paulo'); if($_POST['txtMegafone']) { if($_GET['write'] == true){ if(preg_match("/[^0-9a-zA-Z]/i", $_GET['write'])) echo"<meta http-equiv=refresh content=\"1;URL=../index.php\">"; } $MaxAnuncio = anti_injection($_POST['MaxAnuncio']); $SerialKey = anti_injection($_POST['SerialKey']); $MxIdxChar = anti_injection($_POST['MxIdxChar']); por favor min ajude caso quera entra em contato comigo , adiciona skype: live:luis_mamot e caso o fórum não permite contatos nós post edite e retire e pesso desculpas não tive tempo de lê as regras , mais irei :) Compartilhar este post Link para o post Compartilhar em outros sites
adriano.lopes 1 Denunciar post Postado Setembro 11, 2014 Se você não passar o $_POST na função anti_injection funciona? Compartilhar este post Link para o post Compartilhar em outros sites
Vitor RC 11 Denunciar post Postado Setembro 12, 2014 Como o Adriano disse, teste retirar a função anti_injection e veja se funciona. Se funcionar, atualize a função anti_injection para mysql_real_escape_string, é mais seguro, já que esse método ja foi depreciado Compartilhar este post Link para o post Compartilhar em outros sites
mamotinho 0 Denunciar post Postado Setembro 15, 2014 eu já retirei o anti_injection , já até retirei do config.php pra ver mais sempre não vai Olá pessoal eu consegui enviar e descobrir que o problema é a function anti_injection que eu tenho. então poderia alguem min ajuda a proteger meu campo textarea de outra forma que a função não retire as palavras acentuadas; function anti_injection($sql, $formUse = true) { $sql = preg_replace("/(from|select|insert|delete|where|drop table|show tables|#|\*|--|\\\\)/i","",$sql); $sql = trim($sql); $sql = strip_tags($sql); $sql = addslashes($sql); return $sql; } function clean_variable($var) { $newvar = preg_replace('/[^a-zA-Z0-9\_\-\@\ \!\>\<\#\$\%\^\.\+\-\&\*\(\)\`\:\.\}\{\]\[]/', '', $var); return $newvar; } $_REQUEST = clean_variable($_REQUEST); $_POST = clean_variable($_POST); $_GET = clean_variable($_GET); $_COOKIE = clean_variable($_COOKIE); $_SESSION = clean_variable($_SESSION); $badwords = array(";","'", "+", "--","/","|",":", "=", "%", "(", ")","DROP", "SELECT", "UPDATE", "DELETE", "drop", "select", "update", "delete", "WHERE", "where", "-1", "-2", "-3","-4", "-5", "-6", "-7", "-8", "-9",); Outra coisa o a função "strlen" também da problema quando eu adiciono ele , então ele também era o problema , si alguém pude min arrumar uma function boa para eu implanta nesse sistema ai para eu fica protegido fico grato. pois já que as minhas funções ta tirando os acento nem é legal ter. Compartilhar este post Link para o post Compartilhar em outros sites