Vilela Postado Agosto 18, 2003 Denunciar Share Postado Agosto 18, 2003 Como faço para não aceitar caracteres tipo < > " ' ; e etc. vindos de um formulário? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 David Elias Postado Agosto 18, 2003 Denunciar Share Postado Agosto 18, 2003 Podes transformá-los em entidades html ou eliminá-los.transformar:$texto = htmlentities($texto); eliminar$texto = str_replace('<', '', $texto); $texto = str_replace('>', '', $texto); $texto = str_replace('"', '', $texto); $texto = str_replace('\'', '', $texto);É isto? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Gladisson Postado Agosto 18, 2003 Denunciar Share Postado Agosto 18, 2003 David Elias:$texto = htmlentities($texto);Esse código é bom... mais será quem algum código que não apareça o resultado assim:Ex:Caso alguém digitar algo assim: <TABLE BORDER="0"></TABLE>O resultado da isso:<TABLE BORDER=\"0\"></TABLE>Porque isso acontece????já tentei usar isso...$texto = str_replace('\'', '', $texto);...mais não adianta. :D Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 David Elias Postado Agosto 18, 2003 Denunciar Share Postado Agosto 18, 2003 humm...isso vem de um formulário?Normalmente faz-se istoif (get_magic_quotes_gpc()) { foreach ($_POST as $key => $val) { $_POST[$key] = str_replace('\\\'', '\'', $_POST[$key]); $_POST[$key] = str_replace('\"', '"', $_POST[$key]); $_POST[$key] = str_replace('\\\\', '\\', $_POST[$key]); } } vê se é isto ;) Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Gladisson Postado Agosto 18, 2003 Denunciar Share Postado Agosto 18, 2003 Não deu certo. :( Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 David Elias Postado Agosto 18, 2003 Denunciar Share Postado Agosto 18, 2003 Mostra-me o teu código para ver mais ou menos o que queres fazer. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Gladisson Postado Agosto 19, 2003 Denunciar Share Postado Agosto 19, 2003 Veja não é esse o meu código, fiz esse só para você ter uma idéia do quero.<?PHP IF($MANDA=="MENSAGEM"){ ECHO ("$MSG"); } ELSE { ?> <FORM METHOD="post" ACTION="./"> <INPUT NAME="MSG" TYPE="text"> <INPUT TYPE="submit" VALUE="ENVIAR"> <INPUT NAME="MANDA" TYPE="hidden" VALUE="MENSAGEM"> </FORM> <?PHP } ?>Brigadu por tá respondendo minhas perguntas. :) Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 David Elias Postado Agosto 19, 2003 Denunciar Share Postado Agosto 19, 2003 Penos que não funcionou por causa que tu deves estar a utilizar register_globals on, então aqui vaiif (get_magic_quotes_gpc()) { foreach ($_POST as $key => $val) { $$key = str_replace('\\\'', '\'', $_POST[$key]); $$key = str_replace('\"', '"', $_POST[$key]); $$key = str_replace('\\\\', '\\', $_POST[$key]); } } penso que assim deve dar. :)Brigadu por tá respondendo minhas perguntas.Ora essa, não precisa de agradecer ;) Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kbalera Postado Agosto 19, 2003 Denunciar Share Postado Agosto 19, 2003 você ta kerendo substuir isso. ow você ta kerendo eliminar as tags html? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Vilela Postado Agosto 20, 2003 Autor Denunciar Share Postado Agosto 20, 2003 Eu queria o seguinte... se no campo do formulário aparecer nome e o cara digitar qualquer caractere inválido, ele retorna uma mensagem dando erro!Mas aí eu precisaria quebrar o $_POST['nome'] em pedaços p/ comparar cada parte, né???? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Gladisson Postado Agosto 20, 2003 Denunciar Share Postado Agosto 20, 2003 David:Veja essa função (Foreach) tá dando erro. :( :huh: Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Vilela Postado Agosto 20, 2003 Autor Denunciar Share Postado Agosto 20, 2003 Tive uma idéia melhor...estaria certo fazer isso?if (strspn($_POST['username'], "abcdefghijklmnopqrstuvxwyzABCDEFGHIJKLMNOPQRSTUVXWYZ") != strlen($username) echo "Você não digitou caracteres válidos!";tá certo??? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Vilela Postado Agosto 20, 2003 Autor Denunciar Share Postado Agosto 20, 2003 Se eu ainda quisesse banir palavras maldosas, poderia fazer isso?if (eregi("^((root) | (bin) | (mail) | (mysql) | (http) | (www) | (shell))", $_POST['username'])){ echo "Você digitou nomes proibidos!"; } Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Gladisson Postado Agosto 20, 2003 Denunciar Share Postado Agosto 20, 2003 Muito boa intenção sua. isso pode ser útil pra mim tb, e com certeza pra um bucado de pessoa que já procurou algo igual a isso. ;) No fórum que estou fazendo quero que só tenha letras. B) Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Gladisson Postado Agosto 20, 2003 Denunciar Share Postado Agosto 20, 2003 Mais ainda quero como fazer sem o resltado de um formulário POST, retorne:sem a barra: \Ficando igual ao escrito. :D Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Vilela Postado Agosto 21, 2003 Autor Denunciar Share Postado Agosto 21, 2003 :D :lol: heheheheh... de nada então! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 André Gusmão Postado Agosto 21, 2003 Denunciar Share Postado Agosto 21, 2003 Se o problema são as barras antes das apas (/")...Procure sobre as funções stripslashes() e addslashes() Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Vilela
Como faço para não aceitar caracteres tipo < > " ' ; e etc. vindos de um formulário?
Link para o comentário
Compartilhar em outros sites
16 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.