HTML: Codificação diferente no envio de dados
Dezembro 3, 2008
Você já precisou enviar dados em um formulário com codificação diferente da sua página?
Como assim? Inicialmente é meio confuso, mas às vezes acontece.
Por exemplo:
No documento principal que está localizado meu <form>, utilizo o conjunto de caracteres UTF-8 (definido na meta tag)
Na página que irá processar o formulário utilizo o conjunto de caracteres iso-8859-1.
Geralmente isso acontece quando você apenas tem o poder de enviar dados, sendo que a ação do formulário é processada por outro site/servidor.
O atributo accept-charset especifica uma lista de conjuntos de caracteres para a entrada de dados que serão aceitas pelo servidor neste formulário.
Então com isso, resolvemos nosso problema.
Um pequeno exemplo:
form.php
2 <head>
3 <meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8″ />
4 </head>
5
6 <body>
7
8 <form action=”post.php” method=”post” accept-charset=”iso-8859-1″>
9 <input type=”text” name=”nome” value=”Avião faz vôo hoje às 9:30″ />
10 <input type=”submit” value=”Enviar”>
11 </form>
12
13 </body>
14 </html>
post.php
2 <head>
3 <meta http-equiv=”Content-Type” content=”text/html; charset=iso-8859-1″ />
4 </head>
5
6 <body>
7
9 echo $_POST['nome'];
10 ?>
11
12 </body>
13 </html>
Neste exemplo teremos como resposta o texto exatamente na mesma forma que foi escrito, sem nenhum erro de acentuação. Experimente remover o atributo accept-charset e veja o que acontece.
Validação de CPF
Julho 2, 2008
Eu tenho dó desta pessoa, GLEDE BERNACCI GOLLUSCIO.
Muito provavelmente esta pessoa não consegue se cadastrar na maioria dos sites que exigem CPF, mas por que?
Ele é dono do CPF 111.111.111-11
Muitos sites utilizam uma validação de CPF que restringe essas sequências de números (11111111111, 22222222222, 33333333333, etc) e muita gente não sabe que essas combinações são válidas no algoritmo do CPF.
Mas claro que nem todos estes números ainda têm um dono, porém são válidos.
Alguns outros casos:
Nº do CPF: 444.444.444-44
Nome da Pessoa Física: MARIA FERRO PERON
No do CPF: 888.888.888-88
Nome da Pessoa Física: SEBASTIAO LUIZ BATISTA
Então, tome cuidado ao validar CPF’s em formulários, você pode estar barrando algumas pessoas sem saber.