<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-8693998645778381089</id><updated>2024-10-07T03:00:35.614-03:00</updated><category term="php"/><category term="HTML5"/><category term="javascript"/><category term="Internet"/><category term="CSS3"/><category term="Criar captcha"/><category term="css"/><category term="mascara"/><category term="Google"/><category term="Novidades"/><category term="ajax"/><category term="eleição 2010"/><category term="Cracker"/><category term="Hacker"/><category term="Linux"/><category term="MSIE"/><category term="Web imagem"/><category term="banco de dados"/><category term="geolocalização"/><category term="jogos HTML5"/><category term="sessões php"/><title type='text'>Diego Cipriano</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://diego-cipriano.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8693998645778381089/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://diego-cipriano.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/8693998645778381089/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>Diego Cipriano</name><uri>http://www.blogger.com/profile/04722694161845236185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5ZTH5xBau7PzLxWZtTJQQo9o8RY0hvYHV-nsoyEcIPuxuF9DYr3pxyLN1-m905CaffLbq2cdOguTEcJrlgEseCDKwawgj05TYO69quDlRHFsH0B7l94YjI501AZ7N_mk/s1600-r/perfil.JPG'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>31</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8693998645778381089.post-6815814555978197771</id><published>2012-09-25T10:15:00.000-03:00</published><updated>2012-10-23T11:43:08.075-02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="mascara"/><category scheme="http://www.blogger.com/atom/ns#" term="php"/><title type='text'>PHP - Mascara para CNPJ</title><content type='html'>&lt;div class=&quot;anuncio_post&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;
&lt;!--
google_ad_client = &quot;pub-9413301928696699&quot;;
/* 300x250, criado 25/09/10 */
google_ad_slot = &quot;2527599026&quot;;
google_ad_width = 300;
google_ad_height = 250;
//--&gt;
&lt;/script&gt;&lt;br /&gt;
&lt;script src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot; type=&quot;text/javascript&quot;&gt;
&lt;/script&gt;&lt;/div&gt;Muitas vezes por questões de&amp;nbsp;estéticas&amp;nbsp;queremos mostrar o CNPJ para o usuário na forma &quot;correta&quot; separando as casas por pontos e por&amp;nbsp;último um&amp;nbsp;hífen se você grava somente os números no banco de dados você tem que fazer um tratamento antes de&amp;nbsp;exibir para o usuário e isso pode ser feito tanto do lado servidor como do lado &lt;a href=&quot;http://diego-cipriano.blogspot.com.br/2010/09/mascaras-javascript-data-cep-cpf-cnpj.html&quot;&gt;cliente&amp;nbsp;&lt;/a&gt;&amp;nbsp;então vamos ao que interessa.
&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;function MCnpj($v1){
        // aqui nós verificamos se o número passado contem 14 dígitos se os dados estiverem armazenados como números eles não vem com os zeros a esquerda então aqui nós colocamos se for necessario 
 for($n=0; strlen($v1) &amp;lt; 14; $n++){
  $v1 = &quot;0$v1&quot;;
 }
        // aqui pecoreemos cada digito e colocamos os &quot;separadores&quot;
 for($n=0, $v2 = NULL; $n &amp;lt; 14; $n++){
  if($n == 2)
   $v2 .= &quot;.&quot;;
  else if($n == 5)
   $v2 .= &quot;.&quot;;
  else if($n == 8)
   $v2 .= &quot;/&quot;;
  else if($n == 12)
   $v2 .= &quot;-&quot;;
   
  $v2 .= $v1{$n};
 }
 return $v2;
}
&lt;/pre&gt;</content><link rel='replies' type='text/html' href='http://diego-cipriano.blogspot.com/2012/09/php-mascara-para-cnpj.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8693998645778381089/posts/default/6815814555978197771'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8693998645778381089/posts/default/6815814555978197771'/><link rel='alternate' type='text/html' href='http://diego-cipriano.blogspot.com/2012/09/php-mascara-para-cnpj.html' title='PHP - Mascara para CNPJ'/><author><name>Diego Cipriano</name><uri>http://www.blogger.com/profile/04722694161845236185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5ZTH5xBau7PzLxWZtTJQQo9o8RY0hvYHV-nsoyEcIPuxuF9DYr3pxyLN1-m905CaffLbq2cdOguTEcJrlgEseCDKwawgj05TYO69quDlRHFsH0B7l94YjI501AZ7N_mk/s1600-r/perfil.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8693998645778381089.post-1530532061769051274</id><published>2012-05-10T21:47:00.000-03:00</published><updated>2012-10-23T11:44:09.161-02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Linux"/><title type='text'>Senha Padrão dos computadores bitlinux/ubuntu</title><content type='html'>&lt;div class=&quot;anuncio_post&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;
&lt;!--
google_ad_client = &quot;pub-9413301928696699&quot;;
/* 300x250, criado 25/09/10 */
google_ad_slot = &quot;2527599026&quot;;
google_ad_width = 300;
google_ad_height = 250;
//--&gt;
&lt;/script&gt;&lt;br /&gt;
&lt;script src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot; type=&quot;text/javascript&quot;&gt;
&lt;/script&gt;&lt;/div&gt;
Bom pessoal não precisa falar muita coisa né? quem estiver com dificuldade para instalar programas as senhas padrões são essas se quiser instalar um programa sem problemas basta autenticar com o usuario root que é o &quot;superusuario&quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: lime;&quot;&gt;# su -&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
esse comando serve para autenticar pelo root &quot;super&amp;nbsp;usuário&quot;&lt;br /&gt;
&lt;br /&gt;
depois é só digitar a senha que é bitlinux&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: lime;&quot;&gt;Usuário Padrão&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
login: usuario&lt;br /&gt;
senha: usuario&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: lime;&quot;&gt;Super Usuario&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
login: root&lt;br /&gt;
senha: bitlinux</content><link rel='replies' type='text/html' href='http://diego-cipriano.blogspot.com/2012/05/senha-padrao-dos-computadores.html#comment-form' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8693998645778381089/posts/default/1530532061769051274'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8693998645778381089/posts/default/1530532061769051274'/><link rel='alternate' type='text/html' href='http://diego-cipriano.blogspot.com/2012/05/senha-padrao-dos-computadores.html' title='Senha Padrão dos computadores bitlinux/ubuntu'/><author><name>Diego Cipriano</name><uri>http://www.blogger.com/profile/04722694161845236185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5ZTH5xBau7PzLxWZtTJQQo9o8RY0hvYHV-nsoyEcIPuxuF9DYr3pxyLN1-m905CaffLbq2cdOguTEcJrlgEseCDKwawgj05TYO69quDlRHFsH0B7l94YjI501AZ7N_mk/s1600-r/perfil.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8693998645778381089.post-6323330758319022359</id><published>2012-04-01T10:57:00.000-03:00</published><updated>2012-04-01T10:57:16.976-03:00</updated><title type='text'>Engenharia de Produção</title><content type='html'>&lt;div class=&quot;anuncio_post&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;
&lt;!--
google_ad_client = &quot;pub-9413301928696699&quot;;
/* 300x250, criado 25/09/10 */
google_ad_slot = &quot;2527599026&quot;;
google_ad_width = 300;
google_ad_height = 250;
//--&gt;
&lt;/script&gt;&lt;br /&gt;
&lt;script src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot; type=&quot;text/javascript&quot;&gt;
&lt;/script&gt;&lt;/div&gt;Hoje, acordei com a missão de voltar a postar novas dicas de JAVASCRIPT, PHP, HTML5 e um assunto inédito vai começar a rolar por aqui que é &lt;u&gt;Engenharia de Produção&lt;/u&gt; curso do qual estou fazendo no momento na verdade é só mais um pretexto pra mim estudar um pouco mais. Então em breve estarei fazendo novos posts no BLOG, quem quiser enviar sugestões é só escrever nos comentários desse post. Obrigado.</content><link rel='replies' type='text/html' href='http://diego-cipriano.blogspot.com/2012/04/engenharia-de-producao.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8693998645778381089/posts/default/6323330758319022359'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8693998645778381089/posts/default/6323330758319022359'/><link rel='alternate' type='text/html' href='http://diego-cipriano.blogspot.com/2012/04/engenharia-de-producao.html' title='Engenharia de Produção'/><author><name>Diego Cipriano</name><uri>http://www.blogger.com/profile/04722694161845236185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5ZTH5xBau7PzLxWZtTJQQo9o8RY0hvYHV-nsoyEcIPuxuF9DYr3pxyLN1-m905CaffLbq2cdOguTEcJrlgEseCDKwawgj05TYO69quDlRHFsH0B7l94YjI501AZ7N_mk/s1600-r/perfil.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8693998645778381089.post-3644289634496215855</id><published>2010-11-02T15:27:00.000-02:00</published><updated>2012-10-23T11:44:30.389-02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="HTML5"/><category scheme="http://www.blogger.com/atom/ns#" term="Internet"/><category scheme="http://www.blogger.com/atom/ns#" term="Novidades"/><title type='text'>Blekko? Google killer?</title><content type='html'>&lt;div class=&quot;anuncio_post&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;
&lt;!--
google_ad_client = &quot;pub-9413301928696699&quot;;
/* 300x250, criado 25/09/10 */
google_ad_slot = &quot;2527599026&quot;;
google_ad_width = 300;
google_ad_height = 250;
//--&gt;
&lt;/script&gt;&lt;br /&gt;
&lt;script src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot; type=&quot;text/javascript&quot;&gt;
&lt;/script&gt;&lt;/div&gt;
Depois do HTML5 ter ganhado o apelido de Flash killer virou moda atribuir a&amp;nbsp;concorrentes tal denominação &quot;&lt;b&gt;killer&quot;&amp;nbsp;&lt;/b&gt;o que nesse caso é um absurdo &amp;nbsp;o Blekko&amp;nbsp;&amp;nbsp;&amp;nbsp;foi lançado hoje (11/2010) e mesmo com todo planejamento não podemos afirmar se um produto ou serviço vai da certo no mercado ainda mais lutar contra o &quot;CUSTUME&quot; as pessoas as vezes utiliza um serviço por impulso ou rotina é um mecanismo automático, mas vamos falar do &lt;b&gt;blekko &lt;/b&gt;e porque ele traz grandes&amp;nbsp;expectativas, mas ainda esta longe de ser um &amp;nbsp;&lt;b&gt;Google killer &lt;/b&gt;a proposta do novo serviço é filtrar o conteúdo da web bem mas o que é isso? quantas vezes você já&amp;nbsp;procurou&amp;nbsp;por algo no google e acabou caindo em sites que nem se quer tinha o&amp;nbsp;mínimo&amp;nbsp;de&amp;nbsp;relevância&amp;nbsp;sobre o que você buscava? Então o Blekko promete retirar esses sites (&amp;nbsp;que contem muito mais&amp;nbsp;conteúdo&amp;nbsp;marqueteiro do que informações relevantes sobre o que&amp;nbsp;procura) dos resultados. O que ele faz é exibir sites pre aprovados pelos usuários, resta saber se é de fato eficiente esse sistema de busca e qual a sua&amp;nbsp;eficácia para indexar a web, até o dado momento a base de dados do blekko esta voltada na sua maioria para sites americanos.&lt;br /&gt;
&lt;br /&gt;
A google tambem fornece várias formas de &amp;nbsp;filtrar as buscas e não deve ficar parada diante desse&amp;nbsp;cenário ao menos alguma manifestação deverá ser feita em breve.</content><link rel='replies' type='text/html' href='http://diego-cipriano.blogspot.com/2010/11/blekko-google-killer.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8693998645778381089/posts/default/3644289634496215855'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8693998645778381089/posts/default/3644289634496215855'/><link rel='alternate' type='text/html' href='http://diego-cipriano.blogspot.com/2010/11/blekko-google-killer.html' title='Blekko? Google killer?'/><author><name>Diego Cipriano</name><uri>http://www.blogger.com/profile/04722694161845236185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5ZTH5xBau7PzLxWZtTJQQo9o8RY0hvYHV-nsoyEcIPuxuF9DYr3pxyLN1-m905CaffLbq2cdOguTEcJrlgEseCDKwawgj05TYO69quDlRHFsH0B7l94YjI501AZ7N_mk/s1600-r/perfil.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8693998645778381089.post-209918216943990252</id><published>2010-11-02T10:59:00.000-02:00</published><updated>2010-11-02T10:59:57.048-02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="HTML5"/><category scheme="http://www.blogger.com/atom/ns#" term="Internet"/><title type='text'>HTML 5 - Como nem tudo é um mar de rosas</title><content type='html'>&lt;div class=&quot;anuncio_post&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;
&lt;!--
google_ad_client = &quot;pub-9413301928696699&quot;;
/* 300x250, criado 25/09/10 */
google_ad_slot = &quot;2527599026&quot;;
google_ad_width = 300;
google_ad_height = 250;
//--&gt;
&lt;/script&gt;&lt;br /&gt;
&lt;script src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot; type=&quot;text/javascript&quot;&gt;
&lt;/script&gt;&lt;/div&gt;Ouvimos muito os elogios ao HTML 5 mas vale lembrar que ele tambem tem seus pontos negativos e um deles é que os dados armazenados durante a navegação pode ser analisados (históricos de acesso e localização) isso pode parecer insignificante porem vai ser um prato cheio para empresas de marketing e para os&amp;nbsp;espíritos&amp;nbsp;de porcos mais uma brecha, pois quando bem trabalhadas e&amp;nbsp;analisadas&amp;nbsp;essas informações as empresas de marketing podem usar para fazer uma diferenciada a cada perfil, para alguns isso não tem nenhum problema mas tenha certeza que tem muita gente que se incomoda com a captura dessas informações sem a prévia autorização, não tiro a razão dessas pessoas pois da mesma forma que as empresas de marketing podem utilizar essas informações os cracker podem usar para a pratica da engenharia social e obter mais dados ainda sobre você, não sei ainda se utilizadas bem trabalhadas as ferramentas (HTML5) pode se obter dados mais sigilosos como senhas email&#39;s entre outros dados.</content><link rel='replies' type='text/html' href='http://diego-cipriano.blogspot.com/2010/11/html-5-como-nem-tudo-e-um-mar-de-rosas.html#comment-form' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8693998645778381089/posts/default/209918216943990252'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8693998645778381089/posts/default/209918216943990252'/><link rel='alternate' type='text/html' href='http://diego-cipriano.blogspot.com/2010/11/html-5-como-nem-tudo-e-um-mar-de-rosas.html' title='HTML 5 - Como nem tudo é um mar de rosas'/><author><name>Diego Cipriano</name><uri>http://www.blogger.com/profile/04722694161845236185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5ZTH5xBau7PzLxWZtTJQQo9o8RY0hvYHV-nsoyEcIPuxuF9DYr3pxyLN1-m905CaffLbq2cdOguTEcJrlgEseCDKwawgj05TYO69quDlRHFsH0B7l94YjI501AZ7N_mk/s1600-r/perfil.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8693998645778381089.post-753901337792965272</id><published>2010-10-29T13:19:00.004-02:00</published><updated>2010-10-29T13:37:10.731-02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="HTML5"/><category scheme="http://www.blogger.com/atom/ns#" term="javascript"/><category scheme="http://www.blogger.com/atom/ns#" term="jogos HTML5"/><title type='text'>HTML 5 - Uma demonstração prática do novo ambiente - Criando um jogo</title><content type='html'>&lt;div class=&quot;anuncio_post&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;
&lt;!--
google_ad_client = &quot;pub-9413301928696699&quot;;
/* 300x250, criado 25/09/10 */
google_ad_slot = &quot;2527599026&quot;;
google_ad_width = 300;
google_ad_height = 250;
//--&gt;
&lt;/script&gt;&lt;br /&gt;
&lt;script src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot; type=&quot;text/javascript&quot;&gt;
&lt;/script&gt;&lt;/div&gt;&lt;br /&gt;
ja mostrei aqui alguns exemplos de como o HTML5 vai revolucionar a WEB mas nada com a tag canvas ja tem um tempo que não posto nada devido ao tempo reduzido que estou tendo esses últimos dias então vou somente disponibilizar o código aqui e semana que vem vou fazer um novo post comentando o código eu peguei o mesmo semi pronto o que eu implementei foi apenas algumas outras funcionalidades. segue o link de onde retirei o script original&amp;nbsp;&lt;a href=&quot;http://info.abril.com.br/dicas/sites/desenvolvimento/como-montar-um-jogo-em-html-5.shtml&quot;&gt;como montar um jogo em HTML5&lt;/a&gt;. veja o jogo aqui &amp;gt;&amp;gt;&lt;input onclick=&quot;newWindow=window.open(&#39;http://diegocipriano.com/blog/jogo.html&#39;,&#39;Jogo&#39;,&#39;toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=1,width=550,height=450&#39;); if(newWindow){newWindow.focus(); newWindow.opener=window;} return false;&quot; title=&quot;Jogar&quot; type=&quot;button&quot; value=&quot;Jogar&quot; /&gt;&lt;br /&gt;
para visualizar o código basta pedir para o browser exibir o código fonte porem o mesmo esta logo abaixo&lt;br /&gt;
&lt;b&gt;Seu HTML&lt;/b&gt;&lt;br /&gt;
&lt;pre&gt;&amp;lt;div style=&quot;width:500px; height:20px; font-size:15px; padding:5px; overflow:hidden;&quot; class=&quot;redondo gradienteL&quot;&amp;gt;
    &amp;lt;strong&amp;gt;Level: &amp;lt;/strong&amp;gt;&amp;lt;samp id=&quot;level&quot;&amp;gt;1&amp;lt;/samp&amp;gt; 
    &amp;lt;strong&amp;gt;Barras restantes: &amp;lt;/strong&amp;gt;&amp;lt;samp id=&quot;barras&quot;&amp;gt;0&amp;lt;/samp&amp;gt; 
    &amp;lt;strong&amp;gt;Pontos: &amp;lt;/strong&amp;gt;&amp;lt;samp id=&quot;pontos&quot;&amp;gt;0&amp;lt;/samp&amp;gt;
       &amp;lt;samp id=&quot;pontos&quot;&amp;gt;&amp;lt;input style=&quot;float:right; font-size:15px; font:Verdana, Geneva, sans-serif; padding:0;&quot; type=&quot;button&quot; id=&quot;ST&quot; value=&quot;PLAY&quot; onClick=&quot;status(this)&quot;&amp;gt;&amp;lt;/samp&amp;gt;
   &amp;lt;/div&amp;gt;
   &amp;lt;div style=&quot; width:500px; height:400px;&quot;&amp;gt;
    &amp;lt;canvas style=&quot;border:#CCC double;&quot; id=&quot;canvas&quot; width=&quot;500&quot; height=&quot;400&quot;&amp;gt;&amp;lt;/canvas&amp;gt; 
    &amp;lt;div id=&quot;result&quot; style=&quot;position:relative;left:50%; top:-50%; margin-left:-100px; margin-top:-50px; height:100px; width:200px; border:#CCC double; text-align:center; display:none;&quot;&amp;gt;&amp;lt;/div&amp;gt;
    &amp;lt;div id=&quot;XxX&quot;&amp;gt;&amp;lt;/div&amp;gt;
    &amp;lt;div id=&quot;resultado2&quot;&amp;gt;&amp;lt;/div&amp;gt;
   &amp;lt;/div&amp;gt;
   &amp;lt;script src=&quot;jogo.js&quot; type=&quot;application/x-javascript&quot;&amp;gt;&amp;lt;/script&amp;gt;
&lt;/pre&gt;Seu código javascript &quot;jogo.js&quot;&lt;br /&gt;
&lt;pre&gt;var x = 150;
var y = 280;
var dx = 3;
var dy = 5;
var IncrementoDx = dx;
var  NROWS = 5; // total de linhas
var  NCOLS = 3; // total de colunas
var xb = 150; // tamanho horizontal da barra
var yb = 10; // tamanho vertical da barra
var St = document.getElementById(&quot;ST&quot;);
var level = document.getElementById(&quot;level&quot;);
var result = document.getElementById(&quot;result&quot;);
var canvas = document.getElementById(&quot;canvas&quot;);
var pontos = document.getElementById(&quot;pontos&quot;);
var Pontos = 0;
var n = 0;
var barras;
var WIDTH;
var HEIGHT;
var ctx;
var paddlex;
var paddleh;
var paddlew;
rightDown = false;
leftDown = false;
var bricks;
var NROWS;
var NCOLS;
var BRICKWIDTH;
var BRICKHEIGHT;
var PADDING;
var intervalo;
function initbricks() {
  BRICKWIDTH = (WIDTH/NCOLS) - 1;
  BRICKHEIGHT = 15;
  PADDING = 1;

  bricks = new Array(NROWS);
  for (i=0; i &amp;lt; NROWS; i++) {
    bricks[i] = new Array(NCOLS);
    for (j=0; j &amp;lt; NCOLS; j++) {
      bricks[i][j] = 1;
    }
  }
}



function keyDown (evt) {
 key = evt;
  if (evt.keyCode == 13) status(St);
  else if (evt.keyCode == 39) rightDown = true;
  else if (evt.keyCode == 37) leftDown = true;
}

function keyUp(evt) {
 key = null;
  if (evt.keyCode == 39) rightDown = false;
  else if (evt.keyCode == 37) leftDown = false;
}

document.onkeydown=function(event){keyDown(event);}
document.onkeyup=function(event){keyUp(event);}



function init_paddle() {
 posX = (WIDTH/2)-(xb/2);
   paddlex = posX;
   paddleh = yb;
   paddlew = xb;
}


function circle(x,y,r) {
  ctx.beginPath();
  ctx.arc(x, y, r, 0, Math.PI*2, true);
  ctx.closePath();
  ctx.fill();
}

function rect(x,y,w,h) {
  ctx.beginPath();
  ctx.rect(x,y,w,h);
  ctx.closePath();
  ctx.fill();
}


function clear() {
  ctx.clearRect(0, 0, WIDTH, HEIGHT);
}

function init() {
barras = NCOLS*NROWS // total é igaul a colunas x linhas
if (canvas.getContext) {
  ctx = canvas.getContext(&quot;2d&quot;);
  WIDTH = canvas.width;
  HEIGHT = canvas.height;
  init_paddle();
  initbricks();
  intervalo = setInterval(draw, 10);
}
}
function perdeu(){
 var canvas = null;
 clearInterval(intervalo)
 init();
}

function ganhou(){
 var canvas = null;
 clearInterval(intervalo)
 NROWS =  NROWS+1;
 NCOLS =  NCOLS+1;
 barras = NCOLS*NROWS
 init();
 levelAt = level.innerHTML;
 level.innerHTML = eval(levelAt)+eval(1);
}
function pontuacao(){
 Pontos = eval(Pontos)+(50*level.innerHTML)/3;
 pontos.innerHTML = Pontos.toFixed(0);
}
function draw() {
  clear();
  circle(x, y, 10);
  if (rightDown){
   if (paddlex &amp;lt; WIDTH-57)
   paddlex += 5;
  }
  else if (leftDown)
  {
   if (paddlex &amp;gt; -5)
   paddlex -= 5;
  }
  rect(paddlex, HEIGHT-paddleh, paddlew, paddleh);

  //draw bricks
  for (i=0; i &amp;lt; NROWS; i++) {
    for (j=0; j &amp;lt; NCOLS; j++) {
      if (bricks[i][j] == 1) {
        rect((j * (BRICKWIDTH + PADDING)) + PADDING, 
             (i * (BRICKHEIGHT + PADDING)) + PADDING,
             BRICKWIDTH, BRICKHEIGHT);
      }
    }
  }

  //have we hit a brick?
  rowheight = BRICKHEIGHT + PADDING;
  colwidth = BRICKWIDTH + PADDING;
  row = Math.floor(y/rowheight);
  col = Math.floor(x/colwidth);
  //if so, reverse the ball and mark the brick as broken
  if (y &amp;lt; NROWS * rowheight &amp;amp;&amp;amp; row &amp;gt;= 0 &amp;amp;&amp;amp; col &amp;gt;= 0 &amp;amp;&amp;amp; bricks[row][col] == 1) {
    dy = -dy;
    bricks[row][col] = 0;
 pontuacao();
 barras -= 1
 if(barras == 0){
  St.value = &quot;PLAY&quot;;
  i = 0
  j = 0
  x = 150;
  y = 280;
  result.innerHTML = &quot;&amp;lt;h1&amp;gt;Você Ganhou&amp;lt;/h1&amp;gt; Pressione &amp;lt;b&amp;gt;enter&amp;lt;/b&amp;gt; para comtinuar&quot;;
  result.style.display = &quot;block&quot;;
  ganhou();
 }
  }

  if (x + dx &amp;gt; WIDTH || x + dx &amp;lt; 0)
    dx = -dx;
  if (y + dy &amp;lt; 0)
    dy = -dy;
  else if (y + dy &amp;gt; HEIGHT-10) {
    if (x &amp;gt; paddlex-10 &amp;amp;&amp;amp; x &amp;lt; paddlex + paddlew-10)
 {
  dy = -dy;
  if(key.keyCode == 37)
  {
   if(dx &amp;gt; 0 )dx = -dx;
  }
  else if(key.keyCode == 39){
   
   if(dx &amp;lt; 0 )dx = (dx*-1);
 
  }
 }
    else{
    var i = 0
    var j = 0
        for (i=0; i &amp;lt; NROWS; i++) {
      for (j=0; j &amp;lt; NCOLS; j++) {
          if (bricks[i][j] == 1) {
     bricks[i][j] = 0
    }
   }
  }
 St.value = &quot;PLAY&quot;;
 i = 0
 j = 0
 x = 150;
 y = 280;
 result.innerHTML = &quot;&amp;lt;h1&amp;gt;Você Perdeu&amp;lt;/h1&amp;gt; Pressione &amp;lt;b&amp;gt;enter&amp;lt;/b&amp;gt; reiniciar&quot;;
 result.style.display = &quot;block&quot;;
 perdeu();
    clearInterval(intervalId);
 }
  }
  if(St.value == &quot;STOP&quot;){
   x += dx;
   y += dy;
  }
  document.getElementById(&quot;barras&quot;).innerHTML = barras;
}
function status(el){
 if(el.value == &quot;PLAY&quot;)
 {
  result.style.display = &quot;none&quot;;
  el.value = &#39;STOP&#39;
  if(dx &amp;lt; 0) dx = dx*-1;
 }
 else el.value = &#39;PLAY&#39;
}
&lt;/pre&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
Então até o próximo post onde vou comentar esse código abraço e obrigado!&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: x-large;&quot;&gt;OBs&lt;/span&gt;: ainda falta muitos detalhes para ficar perfeito mas isso é apenas uma&amp;nbsp;demonstração sinta se a vontade apara usar o código e melhora-lo</content><link rel='replies' type='text/html' href='http://diego-cipriano.blogspot.com/2010/10/html-5-uma-demonstracao-pratica-do-novo.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8693998645778381089/posts/default/753901337792965272'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8693998645778381089/posts/default/753901337792965272'/><link rel='alternate' type='text/html' href='http://diego-cipriano.blogspot.com/2010/10/html-5-uma-demonstracao-pratica-do-novo.html' title='HTML 5 - Uma demonstração prática do novo ambiente - Criando um jogo'/><author><name>Diego Cipriano</name><uri>http://www.blogger.com/profile/04722694161845236185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5ZTH5xBau7PzLxWZtTJQQo9o8RY0hvYHV-nsoyEcIPuxuF9DYr3pxyLN1-m905CaffLbq2cdOguTEcJrlgEseCDKwawgj05TYO69quDlRHFsH0B7l94YjI501AZ7N_mk/s1600-r/perfil.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8693998645778381089.post-3188797396721570747</id><published>2010-10-18T20:56:00.001-02:00</published><updated>2010-10-20T11:11:56.480-02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="css"/><category scheme="http://www.blogger.com/atom/ns#" term="CSS3"/><category scheme="http://www.blogger.com/atom/ns#" term="HTML5"/><title type='text'>HTML 5 CSS 3 - Animação com Quadros(keyframes) e transition</title><content type='html'>&lt;div class=&quot;anuncio_post&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;
&lt;!--
google_ad_client = &quot;pub-9413301928696699&quot;;
/* 300x250, criado 25/09/10 */
google_ad_slot = &quot;2527599026&quot;;
google_ad_width = 300;
google_ad_height = 250;
//--&gt;
&lt;/script&gt;&lt;br /&gt;
&lt;script src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot; type=&quot;text/javascript&quot;&gt;
&lt;/script&gt;&lt;/div&gt;&lt;style&gt;
.bordaredonda{
        -moz-border-radius: 200px 0;
        -khtml-border-radius: 200px 0;
        border-radius: 200px 0; /* includes Opera 10.5+ */
        -webkit-border-radius: 200px;
        -webkit-border-radius: 200px;
  
  /* modelo de bordas top
  -webkit-border-top-left-radius: 20px;
        -webkit-border-bottom-right-radius: 20px;
  */
}
@-webkit-keyframes apresentacao {
 from {
   -webkit-transform: rotateY(-180deg) rotateX(-180deg);
   margin-top:170px;
 }
 20%{
         opacity: 0;
  margin-top:-500px;
  -webkit-transform: rotateY(-180deg) rotateX(-180deg);
 }
 25%{
  margin-top:-2000px;
 }
 40%{
opacity: 0.5;
  margin-top:-500px;
 }
 100% {
opacity: 1;
   margin-left:0px;
   margin-top:0px;
   -webkit-transform: rotateZ(0deg);
 }
}

.apresentacao{
  -webkit-animation-name: apresentacao;
  -webkit-animation-duration: 10s;
  -webkit-animation-iteration-count: 1;
  -webkit-animation-timing-function: ease-in-out;
  -webkit-animation-direction: alternate;
}
   
.EsconderTexto{
   opacity: 1;
 -webkit-transition-property: width, height;
  -webkit-transition-duration: 0.5s;
  -webkit-transition-timing-function: ease-out;
  border: 2px solid #000;
  width: 170px;
  height:20px;
  overflow:hidden;
}
.desbotar {
  opacity: 1;
  -webkit-transition: opacity 0.5s linear;
  -webkit-animation-direction: alternate;
}

.desbotar:hover {
  opacity: 0.2;
}
&lt;/style&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;&lt;div class=&quot;apresentacao&quot;&gt;Olá mais uma vez o assunto é HTML5 gostaria de apresentar algo mais complexo mas assim como muitos ou todos estou em fase de aprendizado e devido a escassês de informações consegui somente alguns efetos basicos utilizando HTML5, CSS3 e um pouco de javascript para produzir o efeito desse texto eu utilizei o seguinte &lt;strong&gt;CSS&lt;/strong&gt;&lt;br /&gt;
&lt;pre&gt;/*Aqui nós criamos a animação com o nome &lt;strong&gt; apresentacao&lt;/strong&gt; vale lembrar que os quadros da função keyframes é definido pelo tempo primeiro nós declaramos quais os atributos iniciais do frame logo depois definimos os atributos que o elemento deve conter ao chegar a certa percentagem(de tempo). Exemplo: se a animação durar 10 segundos quando tivermos em 30% logicamente vamos estar em 3 segundos*/
@-webkit-keyframes apresentacao {
 from {
   -webkit-transform: rotateY(-180deg) rotateX(-180deg);
   margin-top:170px;
 }
 30%{
  margin-top:-300px;
  -webkit-transform: rotateY(-180deg) rotateX(-180deg);
 }
 50%{
  margin-top:-300px;
 }
 100% {
   margin-left:0px;
   margin-top:0px;
   -webkit-transform: rotateZ(0deg);
 }
}
&lt;/pre&gt;Agora só falta criar uma forma de chamar a apresentação então criei uma classe CSS&lt;br /&gt;
&lt;pre&gt;.apresentacao{
  -webkit-animation-name: apresentacao; /*Declaro qual apresentação vou chamar ao utilizar a classe */
  -webkit-animation-duration: 8s;/*quanto tempo ela deve durar */
  -webkit-animation-iteration-count: 1; /* quantidade de loops(repetições) */
  -webkit-animation-timing-function: ease-in-out; /*&lt;a target=&quot;_blank&quot; href=&quot;http://css-infos.net/property/-webkit-animation-timing-function&quot;&gt;Mais detalhes&lt;/a&gt; */
  -webkit-animation-direction: alternate; /*&lt;a target=&quot;_blank&quot; href=&quot;http://css-infos.net/property/-webkit-animation-direction&quot;&gt;Mais detalhes&lt;/a&gt; */
}
&lt;/pre&gt;Coloquei somente os dois link&#39;s porque acho que são os unicos precise de &lt;strong&gt;Mais detalhes&lt;/strong&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/div&gt;&lt;strong&gt;Abaixo mais alguns efeitos =D&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div id=&quot;texto&quot; class=&quot;EsconderTexto&quot; &gt;&lt;strong&gt;Click aqui para ver tudo.&lt;/strong&gt;&lt;br /&gt;
Para produzir esse efeito basta utilizar esta CSS &lt;pre&gt;.EsconderTexto{
   opacity: 1;
 -webkit-transition-property: width,
  height;
  -webkit-transition-duration: 0.5s;
  -webkit-transition-timing-function: ease-out;
  border: 2px solid #000;
  width: 170px;
  height:20px;
  overflow:hidden;
}&lt;/pre&gt;e esse script &lt;pre&gt;&amp;lt;script&amp;gt;if(addEventListener){
 ob = document.querySelector(&#39;#texto&#39;);
 ob.addEventListener(&#39;click&#39;, function () {
  if(ob.style.width != &quot;500px&quot;){
   ob.style.width=&quot;500px&quot;;
   ob.style.height=&quot;550px&quot;;
  }
  else{
   ob.style.width=&quot;170px&quot;;
   ob.style.height=&quot;20px&quot;;   
  }
  }, true);
}
&amp;lt;/script&amp;gt;&lt;/pre&gt;Forma de Uso&lt;br /&gt;
&lt;pre&gt;&amp;lt;div id=&quot;texto&quot; class=&quot;EsconderTexto&quot; &amp;gt;
 escrever aqui o seu texto
    &amp;lt;/div&amp;gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;border:#000 solid;&quot; class=&quot;desbotar&quot;&gt;Passe o mouse para desbotar o elemento &lt;br /&gt;
&lt;strong&gt;CSS&lt;/strong&gt;&lt;pre&gt;.desbotar {
  opacity: 1;
  -webkit-transition: opacity 2s linear;
}

.desbotar:hover {
  opacity: 0.2;
}&lt;/pre&gt;&lt;/div&gt;&lt;strong&gt;Bom com isso ja da pra se ter uma noção do que esta por vir&lt;/strong&gt;&lt;br /&gt;
&lt;script&gt;
if(addEventListener){
 ob = document.querySelector(&#39;#texto&#39;);
 ob.addEventListener(&#39;click&#39;, function () {
  if(ob.style.width != &quot;500px&quot;){
   ob.style.width=&quot;500px&quot;;
   ob.style.height=&quot;550px&quot;;
  }
  else{
   ob.style.width=&quot;170px&quot;;
   ob.style.height=&quot;20px&quot;;   
  }
  }, true);
}
&lt;/script&gt;</content><link rel='replies' type='text/html' href='http://diego-cipriano.blogspot.com/2010/10/html-5-css-3-animacao-com.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8693998645778381089/posts/default/3188797396721570747'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8693998645778381089/posts/default/3188797396721570747'/><link rel='alternate' type='text/html' href='http://diego-cipriano.blogspot.com/2010/10/html-5-css-3-animacao-com.html' title='HTML 5 CSS 3 - Animação com Quadros(keyframes) e transition'/><author><name>Diego Cipriano</name><uri>http://www.blogger.com/profile/04722694161845236185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5ZTH5xBau7PzLxWZtTJQQo9o8RY0hvYHV-nsoyEcIPuxuF9DYr3pxyLN1-m905CaffLbq2cdOguTEcJrlgEseCDKwawgj05TYO69quDlRHFsH0B7l94YjI501AZ7N_mk/s1600-r/perfil.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8693998645778381089.post-1871062358360628150</id><published>2010-10-18T11:12:00.001-02:00</published><updated>2010-10-18T11:13:27.086-02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="CSS3"/><category scheme="http://www.blogger.com/atom/ns#" term="HTML5"/><title type='text'>HTML 5 CSS3 - Marcadores de texto!</title><content type='html'>&lt;div class=&quot;anuncio_post&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;
&lt;!--
google_ad_client = &quot;pub-9413301928696699&quot;;
/* 300x250, criado 25/09/10 */
google_ad_slot = &quot;2527599026&quot;;
google_ad_width = 300;
google_ad_height = 250;
//--&gt;
&lt;/script&gt;&lt;br /&gt;
&lt;script src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot; type=&quot;text/javascript&quot;&gt;
&lt;/script&gt;&lt;/div&gt;Bom pessoal trago aqui mais uma de muitas funcionalidades do HTML5 que é fazer marcadores veja como é simples a &lt;b&gt;source&lt;/b&gt; do CSS &lt;br /&gt;
&lt;pre&gt;&amp;lt;style&amp;gt;
.row:nth-child(even) {
  background: #AB9DF9;
}
.row:nth-child(odd) {
  background: #B9FFC7;
}
&amp;lt;/style&amp;gt;
  &amp;lt;div class=&quot;row&quot;&amp;gt;
Linha 0&amp;lt;/div&amp;gt;
&amp;lt;div class=&quot;row&quot;&amp;gt;
Linha 1&amp;lt;/div&amp;gt;
&amp;lt;div class=&quot;row&quot;&amp;gt;
Linha 2&amp;lt;/div&amp;gt;
&amp;lt;div class=&quot;row&quot;&amp;gt;
Linha 3&amp;lt;/div&amp;gt;
&amp;lt;div class=&quot;row&quot;&amp;gt;
Linha 4&amp;lt;/div&amp;gt;
&amp;lt;div class=&quot;row&quot;&amp;gt;
Linha 5&amp;lt;/div&amp;gt;
&amp;lt;div class=&quot;row&quot;&amp;gt;
Linha 6&amp;lt;/div&amp;gt;
&amp;lt;div class=&quot;row&quot;&amp;gt;
Linha 7&amp;lt;/div&amp;gt;
&amp;lt;div class=&quot;row&quot;&amp;gt;
Linha 8&amp;lt;/div&amp;gt;
&amp;lt;div class=&quot;row&quot;&amp;gt;
Linha 9&amp;lt;/div&amp;gt;
&lt;/pre&gt;Como podem ver é muito simples basta declarar a classe em qual quer tag que o CSS se responsabiliza em realizar o restante da tarefa!&lt;br /&gt;
&lt;style&gt;
.row:nth-child(even) {
  background: #AB9DF9;
}
.row:nth-child(odd) {
  background: #B9FFC7;
}
&lt;/style&gt;&lt;br /&gt;
&lt;div class=&quot;row&quot;&gt;Linha 0&lt;/div&gt;&lt;div class=&quot;row&quot;&gt;Linha 1&lt;/div&gt;&lt;div class=&quot;row&quot;&gt;Linha 2&lt;/div&gt;&lt;div class=&quot;row&quot;&gt;Linha 3&lt;/div&gt;&lt;div class=&quot;row&quot;&gt;Linha 4&lt;/div&gt;&lt;div class=&quot;row&quot;&gt;Linha 5&lt;/div&gt;&lt;div class=&quot;row&quot;&gt;Linha 6&lt;/div&gt;&lt;div class=&quot;row&quot;&gt;Linha 7&lt;/div&gt;&lt;div class=&quot;row&quot;&gt;Linha 8&lt;/div&gt;&lt;div class=&quot;row&quot;&gt;Linha 9&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://diego-cipriano.blogspot.com/2010/10/html-5-css3-marcadores-de-texto.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8693998645778381089/posts/default/1871062358360628150'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8693998645778381089/posts/default/1871062358360628150'/><link rel='alternate' type='text/html' href='http://diego-cipriano.blogspot.com/2010/10/html-5-css3-marcadores-de-texto.html' title='HTML 5 CSS3 - Marcadores de texto!'/><author><name>Diego Cipriano</name><uri>http://www.blogger.com/profile/04722694161845236185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5ZTH5xBau7PzLxWZtTJQQo9o8RY0hvYHV-nsoyEcIPuxuF9DYr3pxyLN1-m905CaffLbq2cdOguTEcJrlgEseCDKwawgj05TYO69quDlRHFsH0B7l94YjI501AZ7N_mk/s1600-r/perfil.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8693998645778381089.post-6881455432303486878</id><published>2010-10-12T15:39:00.001-03:00</published><updated>2012-10-23T11:45:33.623-02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Google"/><category scheme="http://www.blogger.com/atom/ns#" term="Internet"/><category scheme="http://www.blogger.com/atom/ns#" term="Web imagem"/><title type='text'>WebP: novo formato de imagens do Google quer matar o JPEG</title><content type='html'>&lt;div class=&quot;anuncio_post&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;
&lt;!--
google_ad_client = &quot;pub-9413301928696699&quot;;
/* 300x250, criado 25/09/10 */
google_ad_slot = &quot;2527599026&quot;;
google_ad_width = 300;
google_ad_height = 250;
//--&gt;
&lt;/script&gt;&lt;br /&gt;
&lt;script src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot; type=&quot;text/javascript&quot;&gt;
&lt;/script&gt;&lt;/div&gt;
Além do HTML5 temos uma nova ferramenta para descarregar os servidores, eu gostei muito da iniciativa e vou apoiar o seu uso devo fazer alguns estudos a mais sobre o assunto e estarei compartilhando em breve com vocês&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #cccccc;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #cccccc;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: 16px;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: x-large;&quot;&gt;O que é WebP?&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: x-large;&quot;&gt;&lt;/span&gt;Desenvolvido totalmente com base nas pesquisas realizadas com relação à navegação, a empresa (GOOGLE) criou seu próprio formato de imagens comprimidas, chamado WebP. Ele possui dois métodos de compressão um com perda e outro sem perda a compressão com perda é de 25% a 34% menor que o&amp;nbsp;&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;color: #333333; font-family: Open Sans;&quot;&gt;&lt;span style=&quot;line-height: 16px;&quot;&gt;JPEG com relação ao seu tamanho em bytes e com&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;line-height: 15.981481552124023px;&quot;&gt;índices&lt;/span&gt;&lt;span style=&quot;line-height: 16px;&quot;&gt;&amp;nbsp;de qualidade equivalente já o a a compressão sem perda é 25% menor que o formato PNG e além de tudo o WebP suporta transparência coisa que o JPEG não faz&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;.&lt;br /&gt;
&lt;div style=&quot;font-size: 15px; line-height: 1.5em; margin-bottom: 20px; margin-left: 0px; margin-right: 0px; margin-top: 20px; text-align: justify;&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #cccccc;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-size: 15px; line-height: 1.5em; margin-bottom: 20px; margin-left: 0px; margin-right: 0px; margin-top: 20px; text-align: justify;&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #cccccc;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px; line-height: normal;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: x-large;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: x-large;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: x-large;&quot;&gt;As vantagens e desvantagens do formato&lt;/span&gt;&lt;br /&gt;
Como dito acima, a grande vantagem do WebP é o fato de ser uma maneira de comprimir as imagens ainda mais do que antes e, mesmo assim, manter uma qualidade muito boa. O lançamento é totalmente em código aberto, para que todos os que quiserem contribuir consigam fazê-lo com facilidade.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para saber mais acesse&amp;nbsp;&lt;a href=&quot;https://developers.google.com/speed/webp/?hl=pt-BR&quot;&gt;https://developers.google.com/speed/webp/?hl=pt-BR&lt;/a&gt;&lt;br /&gt;
Exemplos de imagens em WebP&amp;nbsp;&lt;a href=&quot;https://developers.google.com/speed/webp/gallery?hl=pt-BR&quot;&gt;https://developers.google.com/speed/webp/gallery?hl=pt-BR&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://diego-cipriano.blogspot.com/2010/10/webp-novo-formato-de-imagens-do-google.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8693998645778381089/posts/default/6881455432303486878'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8693998645778381089/posts/default/6881455432303486878'/><link rel='alternate' type='text/html' href='http://diego-cipriano.blogspot.com/2010/10/webp-novo-formato-de-imagens-do-google.html' title='WebP: novo formato de imagens do Google quer matar o JPEG'/><author><name>Diego Cipriano</name><uri>http://www.blogger.com/profile/04722694161845236185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5ZTH5xBau7PzLxWZtTJQQo9o8RY0hvYHV-nsoyEcIPuxuF9DYr3pxyLN1-m905CaffLbq2cdOguTEcJrlgEseCDKwawgj05TYO69quDlRHFsH0B7l94YjI501AZ7N_mk/s1600-r/perfil.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8693998645778381089.post-9221934429389317005</id><published>2010-10-11T14:04:00.000-03:00</published><updated>2010-10-11T14:04:02.019-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Internet"/><category scheme="http://www.blogger.com/atom/ns#" term="MSIE"/><title type='text'>Link adicionar contato msn direto do site com um click</title><content type='html'>&lt;div class=&quot;anuncio_post&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;
&lt;!--
google_ad_client = &quot;pub-9413301928696699&quot;;
/* 300x250, criado 25/09/10 */
google_ad_slot = &quot;2527599026&quot;;
google_ad_width = 300;
google_ad_height = 250;
//--&gt;
&lt;/script&gt;&lt;br /&gt;
&lt;script src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot; type=&quot;text/javascript&quot;&gt;
&lt;/script&gt;&lt;/div&gt;Link para adicionar contato no msn&amp;nbsp;&amp;lt;a href=&quot;msnim:add?contact=&lt;b&gt;seu email&lt;/b&gt;&quot; title=&quot;&lt;b&gt;Add Msn&lt;/b&gt;&quot;&amp;gt;&lt;b&gt;TEXTO PARA LINK&lt;/b&gt;&amp;lt;/a&amp;gt; &lt;i&gt;&lt;u&gt;Atenção&lt;/u&gt;&lt;/i&gt; só funcionar no &lt;b&gt;MSIE&lt;/b&gt; pelo menos por enquanto&lt;br /&gt;
&lt;br /&gt;
teste o link&lt;br /&gt;
&lt;a href=&quot;msnim:add?contact=exemplo@hotmail.com&quot; title=&quot;Add Msn&quot;&gt;TEXTO PARA LINK&lt;/a&gt;</content><link rel='replies' type='text/html' href='http://diego-cipriano.blogspot.com/2010/10/link-adicionar-contato-msn-direto-do.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8693998645778381089/posts/default/9221934429389317005'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8693998645778381089/posts/default/9221934429389317005'/><link rel='alternate' type='text/html' href='http://diego-cipriano.blogspot.com/2010/10/link-adicionar-contato-msn-direto-do.html' title='Link adicionar contato msn direto do site com um click'/><author><name>Diego Cipriano</name><uri>http://www.blogger.com/profile/04722694161845236185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5ZTH5xBau7PzLxWZtTJQQo9o8RY0hvYHV-nsoyEcIPuxuF9DYr3pxyLN1-m905CaffLbq2cdOguTEcJrlgEseCDKwawgj05TYO69quDlRHFsH0B7l94YjI501AZ7N_mk/s1600-r/perfil.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8693998645778381089.post-5788306870957927980</id><published>2010-10-09T22:14:00.000-03:00</published><updated>2010-10-09T22:14:17.624-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="CSS3"/><category scheme="http://www.blogger.com/atom/ns#" term="HTML5"/><title type='text'>HTML5 - Onde encontrar materiais para estudo da nova e mais esperada versão do HTML</title><content type='html'>&lt;div class=&quot;anuncio_post&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;
&lt;!--
google_ad_client = &quot;pub-9413301928696699&quot;;
/* 300x250, criado 25/09/10 */
google_ad_slot = &quot;2527599026&quot;;
google_ad_width = 300;
google_ad_height = 250;
//--&gt;
&lt;/script&gt;&lt;br /&gt;
&lt;script src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot; type=&quot;text/javascript&quot;&gt;
&lt;/script&gt;&lt;/div&gt;A nova versão do HTML5 faz muitas pessoas darem o sangue para encontrar materiais para estudo na internet e outros roerem unhas a espera do dia em que vão poder utilizar essa nova versão que ainda não é recomendada pelo W3C mas que ja vem sendo usada por diversas empresas como &lt;b&gt;Apple, Google, Almeida Sports &lt;/b&gt;entre outras bom como prometi no post anterior aqui esta os links com ótimos materiais para estudo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://slides.html5rocks.com/&quot;&gt;Apresentação interativa&lt;/a&gt;&lt;br /&gt;
&lt;div&gt;&lt;a href=&quot;http://slides.html5rocks.com/&quot;&gt;&lt;/a&gt;Aqui você encontra uma boa introdução com códigos fontes de HTML, CSS e JAVASCRIPT vale apena conferir&lt;br /&gt;
&lt;a href=&quot;http://playground.html5rocks.com/&quot;&gt;HTML5 Playground&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;http://playground.html5rocks.com/&quot;&gt;&lt;/a&gt;Aqui você tem um editor e depurador para avaliar o seu código (tem vários códigos prontos).&lt;br /&gt;
&lt;a href=&quot;http://www.html5rocks.com/tutorials/&quot;&gt;Tutoriais&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;http://www.html5rocks.com/tutorials/&quot;&gt;&lt;/a&gt;Aqui todos já sabem, explicação de forma detalhada sobre várias&amp;nbsp;funcionalidades&amp;nbsp;do HTML5.&lt;br /&gt;
&lt;a href=&quot;http://www.html5rocks.com/resources.html&quot;&gt;Exemplos de utilização.&lt;/a&gt;&lt;br /&gt;
aqui só uma observação não se espante tudo é real da pra fazer mesmo com a nova versão do HTML5.&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;http://studio.html5rocks.com/&quot;&gt;Studio&lt;/a&gt;&lt;/div&gt;&lt;div&gt;Aqui você tem belos exemplos&amp;nbsp;também&amp;nbsp;e mais uma vez podem acreditar e utilizar em suas aplicações os códigos &amp;nbsp;=D&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://diego-cipriano.blogspot.com/2010/10/html5-onde-encontrar-materiais-para.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8693998645778381089/posts/default/5788306870957927980'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8693998645778381089/posts/default/5788306870957927980'/><link rel='alternate' type='text/html' href='http://diego-cipriano.blogspot.com/2010/10/html5-onde-encontrar-materiais-para.html' title='HTML5 - Onde encontrar materiais para estudo da nova e mais esperada versão do HTML'/><author><name>Diego Cipriano</name><uri>http://www.blogger.com/profile/04722694161845236185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5ZTH5xBau7PzLxWZtTJQQo9o8RY0hvYHV-nsoyEcIPuxuF9DYr3pxyLN1-m905CaffLbq2cdOguTEcJrlgEseCDKwawgj05TYO69quDlRHFsH0B7l94YjI501AZ7N_mk/s1600-r/perfil.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8693998645778381089.post-3110158003462901090</id><published>2010-10-09T21:54:00.001-03:00</published><updated>2010-10-09T22:14:34.649-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="HTML5"/><category scheme="http://www.blogger.com/atom/ns#" term="javascript"/><title type='text'>HTML5 - drag and drop (arrastar e soltar) do desktop</title><content type='html'>&lt;div class=&quot;anuncio_post&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;
&lt;!--
google_ad_client = &quot;pub-9413301928696699&quot;;
/* 300x250, criado 25/09/10 */
google_ad_slot = &quot;2527599026&quot;;
google_ad_width = 300;
google_ad_height = 250;
//--&gt;
&lt;/script&gt;&lt;br /&gt;
&lt;script src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot; type=&quot;text/javascript&quot;&gt;
&lt;/script&gt;&lt;/div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial; font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 13px;&quot;&gt;Vo compartilhar com vocês o script que permite com que o usuário araste um arquivo diretamente para página para fazer o upload sem precisar de selecionar peguei esse script na área de playground do HTML5 vou postar logo depois desse post um outro disponibilizando o link onde peguei esse que serve para estudos e tem outros scripts interessantes para serem estudados e mais 2 links que&amp;nbsp;também&amp;nbsp;serve para estudos.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial; font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 13px;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial; font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 13px;&quot;&gt;veja o exemplo&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;&lt;/div&gt;&lt;/div&gt;  &lt;div id=&quot;content&quot;&gt;&lt;/div&gt;    &lt;p id=&quot;log&quot; style=&quot;color: gray&quot;&gt;&lt;/p&gt;    &lt;script&gt; 
      // Content section used alot
      var content = document.getElementById(&#39;content&#39;);
      
      if (!window.FileReader) {
        content.innerHTML = &quot;&lt;p&gt;Seu navegador não da suporte ao arrastar e soltar do HTML5&lt;/p&gt;&quot;;
      } else {
        // Layout da Página
        content.innerHTML =
          &#39;&lt;p&gt;Escolha um arquivo clicando abaixo ou araste do seu desktop para ca&lt;br&gt; &lt;input type=&quot;file&quot; id=&quot;file&quot; /&gt;&lt;/p&gt;&#39; +
          &#39;&lt;p&gt;&lt;b&gt;Nome:&lt;/b&gt; &lt;span id=&quot;name&quot;&gt;&lt;/span&gt;&lt;br&gt;&#39; +
          &#39;&lt;b&gt;Tamanho do arquivo:&lt;/b&gt; &lt;span id=&quot;size&quot;&gt;&lt;/span&gt;&lt;br&gt;&#39; +
          &#39;&lt;b&gt;Conteudo:&lt;/b&gt; &lt;br&gt;&lt;br&gt; &lt;span id=&quot;file-content&quot;&gt;&lt;/span&gt;&#39; +
          &#39;&lt;/p&gt;&#39;;
      
        // Imprime as propiedades do arquivo
        function displayFile(file) {
          document.getElementById(&#39;name&#39;).textContent = file.fileName;
          document.getElementById(&#39;size&#39;).textContent = file.fileSize;
      
          var reader = new FileReader();
      
          reader.onload = function(event) {
            document.getElementById(&#39;file-content&#39;).innerHTML = 
              event.target.result.replace(/&lt;/g, &#39;&amp;lt;&#39;).replace(/&gt;/g, &#39;&amp;gt;&#39;).replace(/\n|\r/g, &#39;&lt;br&gt;&#39;);
          };
      
          reader.onerror = function() {
            document.getElementById(&#39;file-content&#39;).innerHTML = &#39;Não é possivel ler arquivo &#39; + file.fileName;
          };
      
          reader.readAsBinaryString(file);
        }
      
        // Inserir arquivos
        document.getElementById(&#39;file&#39;).onchange = function() {
          displayFile(this.files[0]);
        };
      
        // esconde a borda de destaque ao soltar o arquivo
        content.style.border = &#39;10px solid transparent&#39;;
      
        // Adiciona borda se existir evento arrastar
        content.ondragenter = function() {
          content.style.border = &#39;10px solid #b1ecb3&#39;;
          return false;
        };
      
        content.ondragover = function() {
          return false;
        };
      
        content.ondragleave = function() {
          return false;
        };
        // esconde a borda de destaque ao soltar o arquivo
        content.ondrop = function(event) {
          content.style.border = &#39;10px solid transparent&#39;;
          displayFile(event.dataTransfer.files[0]);
          return false;
        };
      }
    &lt;/script&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;&amp;lt;div id=&quot;content&quot;&amp;gt;&amp;lt;/div&amp;gt; 
    &amp;lt;p id=&quot;log&quot; style=&quot;color: gray&quot;&amp;gt;&amp;lt;/p&amp;gt; 
    &amp;lt;script&amp;gt; 
      // Content section used alot
      var content = document.getElementById(&#39;content&#39;);
      
      if (!window.FileReader) {
        content.innerHTML = &quot;&amp;lt;p&amp;gt;Seu navegador não da suporte ao arrastar e soltar do HTML5&amp;lt;/p&amp;gt;&quot;;
      } else {
        // Layout da Página
        content.innerHTML =
          &#39;&amp;lt;p&amp;gt;Escolha um arquivo clicando abaixo ou araste do seu desktop para ca&amp;lt;br&amp;gt; &amp;lt;input type=&quot;file&quot; id=&quot;file&quot; /&amp;gt;&amp;lt;/p&amp;gt;&#39; +
          &#39;&amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Nome:&amp;lt;/b&amp;gt; &amp;lt;span id=&quot;name&quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&#39; +
          &#39;&amp;lt;b&amp;gt;Tamanho do arquivo:&amp;lt;/b&amp;gt; &amp;lt;span id=&quot;size&quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&#39; +
          &#39;&amp;lt;b&amp;gt;Conteudo:&amp;lt;/b&amp;gt; &amp;lt;br&amp;gt;&amp;lt;br&amp;gt; &amp;lt;span id=&quot;file-content&quot;&amp;gt;&amp;lt;/span&amp;gt;&#39; +
          &#39;&amp;lt;/p&amp;gt;&#39;;
      
        // Imprime as propiedades do arquivo
        function displayFile(file) {
          document.getElementById(&#39;name&#39;).textContent = file.fileName;
          document.getElementById(&#39;size&#39;).textContent = file.fileSize;
      
          var reader = new FileReader();
      
          reader.onload = function(event) {
            document.getElementById(&#39;file-content&#39;).innerHTML = 
              event.target.result.replace(/&amp;lt;/g, &#39;&amp;amp;lt;&#39;).replace(/&amp;gt;/g, &#39;&amp;amp;gt;&#39;).replace(/\n|\r/g, &#39;&amp;lt;br&amp;gt;&#39;);
          };
      
          reader.onerror = function() {
            document.getElementById(&#39;file-content&#39;).innerHTML = &#39;Não é possivel ler arquivo &#39; + file.fileName;
          };
      
          reader.readAsBinaryString(file);
        }
      
        // Inserir arquivos
        document.getElementById(&#39;file&#39;).onchange = function() {
          displayFile(this.files[0]);
        };
      
        // esconde a borda de destaque ao soltar o arquivo
        content.style.border = &#39;10px solid transparent&#39;;
      
        // Adiciona borda se existir evento arrastar
        content.ondragenter = function() {
          content.style.border = &#39;10px solid #b1ecb3&#39;;
          return false;
        };
      
        content.ondragover = function() {
          return false;
        };
      
        content.ondragleave = function() {
          return false;
        };
        // esconde a borda de destaque ao soltar o arquivo
        content.ondrop = function(event) {
          content.style.border = &#39;10px solid transparent&#39;;
          displayFile(event.dataTransfer.files[0]);
          return false;
        };
      }
    &amp;lt;/script&amp;gt; &lt;/pre&gt;</content><link rel='replies' type='text/html' href='http://diego-cipriano.blogspot.com/2010/10/html5-drag-and-drop-arrastar-e-soltar.html#comment-form' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8693998645778381089/posts/default/3110158003462901090'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8693998645778381089/posts/default/3110158003462901090'/><link rel='alternate' type='text/html' href='http://diego-cipriano.blogspot.com/2010/10/html5-drag-and-drop-arrastar-e-soltar.html' title='HTML5 - drag and drop (arrastar e soltar) do desktop'/><author><name>Diego Cipriano</name><uri>http://www.blogger.com/profile/04722694161845236185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5ZTH5xBau7PzLxWZtTJQQo9o8RY0hvYHV-nsoyEcIPuxuF9DYr3pxyLN1-m905CaffLbq2cdOguTEcJrlgEseCDKwawgj05TYO69quDlRHFsH0B7l94YjI501AZ7N_mk/s1600-r/perfil.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8693998645778381089.post-2195961900793869984</id><published>2010-10-06T15:30:00.006-03:00</published><updated>2010-10-06T15:54:07.586-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="css"/><category scheme="http://www.blogger.com/atom/ns#" term="CSS3"/><category scheme="http://www.blogger.com/atom/ns#" term="HTML5"/><title type='text'>HTML 5 CSS 3 - Eliminando imagens para fazer layout sem perder a impressão visual.</title><content type='html'>&lt;div class=&quot;anuncio_post&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;
&lt;!--
google_ad_client = &quot;pub-9413301928696699&quot;;
/* 300x250, criado 25/09/10 */
google_ad_slot = &quot;2527599026&quot;;
google_ad_width = 300;
google_ad_height = 250;
//--&gt;
&lt;/script&gt;&lt;br /&gt;
&lt;script src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot; type=&quot;text/javascript&quot;&gt;
&lt;/script&gt;&lt;/div&gt;&lt;b&gt;Primeiro Post sobre HTML 5.&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Esta chegando a hora de dizer bay bay as páginas pesadas na WEB com a chegada do html5 não precisamos mais de usar imagens para fazer layout, com CSS3 e HTML 5 resolvemos o problema de uma só vez veja neste post como é simples fazer um layout(desenho de uma página WEB) com html5 segue abaixo o&amp;nbsp;código&amp;nbsp;e logo depois o exemplo, é uma pena ainda não podermos aderi a essas tecnicas de forma global devido a incompatibilidade de certos navegadores principalmente do MSIE(Microsoft internet explorer) que sempre foi um pé no &lt;s&gt;saco&lt;/s&gt;&amp;nbsp;para qual quer desenvolvedor web, pra mim esse navegador tinha que ser exonerado da WEB falou em incompatibilidade falou em MSIE ou ele muda(muda não nasce de novo) ou ele vai sumir essa é a&amp;nbsp;tendência.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A &amp;nbsp;W3C prevê a publicação oficial do html5 para 2012 mas esta fazendo de tudo para adiantar o cronograma bom aproveitem!&lt;br /&gt;
&lt;style&gt;
/* nenhuma novidade*/
.bodyY{
border:1px #CCC solid;
width:500px;
color:#000;
}
.estremos{
 padding:4px;
 width:480px;
 margin:5px;
}
.conteudo{
 width:295px;
 margin-right:5px;
 padding:5px
}
.ColAuxiliar{
 width:155px;
 float:right;
 padding:5px; 
}
/* Novidades */
.bordaredonda{
/*arredondar as bordas*/
-moz-border-radius:20px;  /* mozila */
border-radius: 20px;  /* outros */
/* nos dois vc pode atribuir diferentes aredondamentos para cada canto a sintax é a segunte
border-radius: top left top right bottom right bottom left;
exemplo
border-radius: 20px 30px 40px 50px.
*/
}
@-webkit-keyframes pulse {
 from {
   opacity: 0.0;
   font-size: 100%;
 }
 to {
   opacity: 1.0;
   font-size: 200%;
 }
}
#pusar{
  -webkit-animation-name: pulse;
  -webkit-animation-duration: 2s;
  -webkit-animation-iteration-count: infinite;
  -webkit-animation-timing-function: ease-in-out;
  -webkit-animation-direction: alternate;
}
.gradienteL{
  background-image: -moz-linear-gradient(top, #999, #FFF);
  background-image: -webkit-gradient(linear, left top, left bottom, from(#999), to(#FFF));
  filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#999,endColorstr=#FFF);
  -ms-filter: &quot;progid:DXImageTransform.Microsoft.gradient(startColorstr=#999,endColorstr=#FFF)&quot;;
}
.gradienteLF{background-image: -moz-linear-gradient(top, #CCC, #FFF);
  background-image: -webkit-gradient(linear, left top, left bottom, from(#CCC), to(#FFF));
  filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#CCC,endColorstr=#FFF);
  -ms-filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#CCC,endColorstr=#FFF);
}
.sombra{
  -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.5);
  -moz-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.5);
  box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.5);
}
.reflexo{
-webkit-box-reflect: below 10px -webkit-gradient(linear, 0% 0%, 0% 100%, from(transparent), to(rgba(255, 255, 255, 0.25))) 0 0 0 0 stretch stretch;
}
h4{
 margin:0;
}
&lt;/style&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;&amp;lt;style&amp;gt;
/* nenhuma novidade*/
.bodyY{
border:1px #CCC solid;
width:500px; 
}
.estremos{
padding:4px;
width:480px;
margin:5px;
}
.conteudo{
width:295px;
margin-right:5px;
padding:5px
}
.ColAuxiliar{
width:155px;
float:right;
padding:5px; 
}
/* Novidades */
.bordaredonda{
-moz-border-radius:20px;  /* mozila */
border-radius: 20px;  /* outros */
exemplo
border-radius: 20px 30px 40px 50px.
*/
}
.gradienteL{
background-image: -moz-linear-gradient(top, #999, #FFF);
background-image: -webkit-gradient(linear, left top, left bottom, from(#999), to(#FFF));
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#999,endColorstr=#FFF);
-ms-filter: &quot;progid:DXImageTransform.Microsoft.gradient(startColorstr=#999,endColorstr=#FFF)&quot;;
}
.gradienteLF{background-image: -moz-linear-gradient(top, #CCC, #FFF);
background-image: -webkit-gradient(linear, left top, left bottom, from(#CCC), to(#FFF));
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#CCC,endColorstr=#FFF);
-ms-filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#CCC,endColorstr=#FFF);
}
.sombra{
-webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.5);
-moz-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.5);
box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.5);
}
.reflexo{
-webkit-box-reflect: below 10px -webkit-gradient(linear, 0% 0%, 0% 100%, from(transparent), to(rgba(255, 255, 255, 0.25))) 0 0 0 0 stretch stretch;
}
h4{
margin:0;
}
&amp;lt;/style&amp;gt;
&amp;lt;div class=&quot;gradienteLF reflexo bodyY&quot;&amp;gt;
&amp;lt;div class=&quot;gradienteL sombra bordaredonda estremos&quot; &amp;gt;&amp;lt;h4&amp;gt;Eliminando imagens para criar layout com CSS3 e HTML5&amp;lt;/h4&amp;gt;&amp;lt;/div&amp;gt;
&amp;lt;div style=&quot;height:350px; margin:10px;&quot;&amp;gt;
&amp;lt;div class=&quot;gradienteL sombra bordaredonda ColAuxiliar&quot;&amp;gt;Coluna Auxiliar para colocarmos propagandas, links, seguidores, enquetes entre outros gadgets........&amp;lt;/div&amp;gt;
&amp;lt;div class=&quot;gradienteL sombra bordaredonda conteudo&quot;&amp;gt;Aqui viria o conteudo do su site. bom é isso ai a unica conclusão que eu consigo tirar disso tudo é que HTML5 é uma maravilha vamos poder eliminar muitos dos aplicativos para criar nossos web sites e o usuário uma exeperiencia ja mais vista antes com tanta leveza e rapidez viva ao HTML5. &amp;lt;br /&amp;gt;
&amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;
&amp;lt;div class=&quot;gradienteL sombra bordaredonda estremos&quot;&amp;gt;CSS3 HTML5&amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;&lt;/pre&gt;&lt;strong&gt;Pontos a serem observados&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;*Sintaxe:&lt;/strong&gt; &lt;em&gt;border-radius:&lt;/em&gt; top left top right bottom right bottom left;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Exemplo&lt;/strong&gt;: &lt;em&gt;border-radius:&lt;/em&gt; 20px 30px 40px 50px.&lt;br /&gt;
&lt;br /&gt;
isso vale tambem para seus derivados como por exemplo -moz-&lt;strong&gt;border-radius:&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;*Sintaxe&lt;/strong&gt;: &lt;em&gt;background-image:&lt;/em&gt; -moz-linear-gradient(sentido do gradiente top-bottom-left-rigth, cor inicial, cor final);&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Exemplo&lt;/strong&gt;: &lt;em&gt;background-image:&lt;/em&gt; -moz-linear-gradient(left, #999, #FFF);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;*Sintaxe&lt;/strong&gt;: &lt;em&gt;background-image:&lt;/em&gt; -webkit-gradient sintax(tipo de gradiente linear - radial, sentido inicial do gradiente, sentido final do gradiente, from(cor inicial), to(cor final));&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Exemplo&lt;/strong&gt;: &lt;em&gt;background-image:&lt;/em&gt; -webkit-gradient(linear, left top, left bottom, from(#999), to(#FFF));&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;*Sintaxe&lt;/strong&gt;:box-shadow: bottom rigth extrusão cor da sombra formato (rgba(x, x, x, x));&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Exemplo&lt;/strong&gt;: sombra vermelha &lt;em&gt;box-shadow:&lt;/em&gt;5px 5px 5px rgba(255, 0, 0, 100)&lt;br /&gt;
&lt;br /&gt;
isso vale tambem para seus derivados como por exemplo -webkit-&lt;strong&gt;box-shadow&lt;/strong&gt;: 5px 5px 5px rgba(255, 0, 0, 100);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para vizualizar corretamente esse exemplo use o &lt;a href=&quot;https://dl-ssl.google.com/tag/s/appguid%3D%7B8A69D345-D564-463C-AFF1-A69D9E530F96%7D%26iid%3D%7B5D3D92F6-DB7E-3994-5985-A8089DC70568%7D%26lang%3Dpt-BR%26browser%3D4%26usagestats%3D0%26appname%3DGoogle%2520Chrome%26needsadmin%3Dfalse%26brand%3DCHMB%26installdataindex%3Dhomepagepromo-defaultbrowser/update2/installers/ChromeSetup.exe&quot; target=&quot;_blank&quot;&gt;&lt;img alt=&quot;Google Chrome&quot; height=&quot;20&quot; src=&quot;http://www.google.com/intl/pt-BR/images/logos/chrome_logo.gif&quot; style=&quot;border: none;&quot; width=&quot;100&quot; /&gt;&lt;/a&gt; ou&lt;a href=&quot;http://download.mozilla.org/?os=win&amp;amp;lang=pt-BR&amp;amp;product=firefox-3.6.10&quot; target=&quot;_blank&quot;&gt;&lt;img alt=&quot;Firefox&quot; height=&quot;15&quot; src=&quot;http://sfx-images.mozilla.org/firefox/3.6/80x15_green.png&quot; style=&quot;border-style: none;&quot; title=&quot;Mozilla Firefox&quot; width=&quot;80&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
Até a data em que foi postado essa matéria o Mozila não dava suporte para &lt;strong&gt;animation pulse&lt;/strong&gt;&lt;br /&gt;
&lt;div class=&quot;gradienteLF reflexo bodyY&quot;&gt;&lt;font style=&quot;position:absolute;margin-top:205px; margin-left:200px;&quot; id=&quot;pusar&quot;&gt;&lt;h4&gt;body&lt;/h4&gt;&lt;/font&gt;&lt;div class=&quot;gradienteL sombra bordaredonda estremos&quot;&gt;&lt;h4&gt;Eliminando imagens para criar layout com CSS3 e HTML5&lt;/h4&gt;&lt;/div&gt;&lt;div style=&quot;height: 350px; margin: 10px;&quot;&gt;&lt;div class=&quot;gradienteL sombra bordaredonda ColAuxiliar&quot;&gt;Coluna Auxiliar para colocarmos propagandas, links, seguidores, enquetes entre outros gadgets........&lt;/div&gt;&lt;div class=&quot;gradienteL sombra bordaredonda conteudo&quot;&gt;Aqui viria o conteudo do su site. bom é isso ai a unica conclusão que eu consigo tirar disso tudo é que HTML5 é uma maravilha vamos poder eliminar muitos dos aplicativos para criar nossos web sites e o usuário uma exeperiencia ja mais vista antes com tanta leveza e rapidez viva ao HTML5.&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;gradienteL sombra bordaredonda estremos&quot;&gt;CSS3 HTML5&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://diego-cipriano.blogspot.com/2010/10/nenhuma-novidade.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8693998645778381089/posts/default/2195961900793869984'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8693998645778381089/posts/default/2195961900793869984'/><link rel='alternate' type='text/html' href='http://diego-cipriano.blogspot.com/2010/10/nenhuma-novidade.html' title='HTML 5 CSS 3 - Eliminando imagens para fazer layout sem perder a impressão visual.'/><author><name>Diego Cipriano</name><uri>http://www.blogger.com/profile/04722694161845236185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5ZTH5xBau7PzLxWZtTJQQo9o8RY0hvYHV-nsoyEcIPuxuF9DYr3pxyLN1-m905CaffLbq2cdOguTEcJrlgEseCDKwawgj05TYO69quDlRHFsH0B7l94YjI501AZ7N_mk/s1600-r/perfil.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8693998645778381089.post-6892374302171662184</id><published>2010-10-05T19:26:00.003-03:00</published><updated>2010-10-05T23:59:17.432-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="css"/><title type='text'>CSS - Texto em volta da imagem e zoom ao passar o mouse</title><content type='html'>&lt;div class=&quot;anuncio_post&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;
&lt;!--
google_ad_client = &quot;pub-9413301928696699&quot;;
/* 300x250, criado 25/09/10 */
google_ad_slot = &quot;2527599026&quot;;
google_ad_width = 300;
google_ad_height = 250;
//--&gt;
&lt;/script&gt;&lt;br /&gt;
&lt;script src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot; type=&quot;text/javascript&quot;&gt;
&lt;/script&gt;&lt;/div&gt;&lt;style&gt;
/* tira as margens do paragrafo*/
p{
 margin:1em 0;
}
/* define o tamanho do texto*/
p.text{
 width:500px;
}
/* define o tamanho da imagem, borda e como o texto se comporta ao redor dela */
.img img{
 width:120px;
 height:100px;
 border:5px #999 double;
 clear: left;
 float: left;
 margin-bottom: 1em;
 margin-right: 1em; 
}
/* aqui é onde alteramos o tamanho da imagem*/
a.img:hover img{
 position:absolute; /* para ficar por cima do texto se retirada funciona tambem porem vai empurar o texto quando for redimencionada*/
 width:300px; /* largura */
 height:250px; /* altura */
}
&lt;/style&gt;&lt;br /&gt;
Hoje trago uma funcionalidade simples mas útil e bem mais simples do que uma solução javascript a algum tempo ja podemos descartar javascript para fazer muitas coisas graças ao CSS e em breve com o novo HTML e CSS vamos poder incrementar ainda mais o CSS, javascript, e eliminar flash silverligth entre outros agora deixa de bla,bla,bla e vamos ao que enteressa bom&amp;nbsp;o resultado do script abaixo vocês podem ver na imagem do carro logo abaixo basta passar o mouse na mesma e através deste código css vocês podem fazer adaptações da forma que vocês quiserem qual quer duvida pode postar que estarei respondendo o mais breve&amp;nbsp;possível em breve vou começar uma seção de Post sobre HTML5 aguardem!&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;text&quot;&gt;&lt;i&gt;&lt;a class=&quot;img&quot; href=&quot;http://www.blogger.com/post-create.g?blogID=8693998645778381089#&quot;&gt;&lt;img src=&quot;http://images.paraorkut.com/img/papeldeparede/1024x768/c/carro-4039.jpg&quot; /&gt;&lt;/a&gt;&lt;b&gt;(Vou colocar varias palavras aqui só para simular um texto para vocês verem como a imagem se comporta)&lt;strike&gt; SOLUÇÔES SCRIPT CSS PHP JAVASCRIPT SOLUÇÔES SCRIPT CSS PHP JAVASCRIPT SOLUÇÔES SCRIPT CSS PHP JAVASCRIPT SOLUÇÔES SCRIPT CSS PHP JAVASCRIPT SOLUÇÔES SCRIPT CSS PHP JAVASCRIPT SOLUÇÔES SCRIPT CSS PHP JAVASCRIPT SOLUÇÔES SCRIPT CSS PHP JAVASCRIPT SOLUÇÔES SCRIPT CSS PHP JAVASCRIPT SOLUÇÔES SCRIPT CSS PHP JAVASCRIPT SOLUÇÔES SCRIPT CSS PHP JAVASCRIPT SOLUÇÔES SCRIPT CSS PHP JAVASCRIPT SOLUÇÔES SCRIPT CSS PHP JAVASCRIPT SOLUÇÔES SCRIPT CSS PHP JAVASCRIPT SOLUÇÔES SCRIPT CSS PHP JAVASCRIPT SOLUÇÔES SCRIPT CSS PHP JAVASCRIPT SOLUÇÔES SCRIPT CSS PHP JAVASCRIPT SOLUÇÔES SCRIPT CSS PHP JAVASCRIPT&lt;/b&gt;&lt;/i&gt;&lt;/strike&gt;&lt;br /&gt;
&lt;/div&gt;Segue o Código abaixo.&lt;br /&gt;
&lt;pre&gt;&amp;lt;style&amp;gt;
/* tira as margens do paragrafo*/
p{
 margin:1em 0;
}
/* define o tamanho do texto*/
p.text{
 width:500px;
}
/* define o tamanho da imagem, borda e como o texto se comporta ao redor dela */
.img img{
 width:120px;
 height:100px;
 border:5px #999 double;
 clear: left;
 float: left;
 margin-bottom: 1em;
 margin-right: 1em; 
}
/* aqui é onde alteramos o tamanho da imagem*/
a.img:hover img{
 position:absolute; /* para ficar por cima do texto se retirada funciona tambem porem vai empurar o texto quando for redimencionada*/
 width:300px; /* largura */
 height:250px; /* altura */
}
&amp;lt;/style&amp;gt;
&amp;lt;p class=&quot;text&quot;&amp;gt;
&amp;lt;a class=&quot;img&quot; href=&quot;#&quot;&amp;gt;&amp;lt;img src=&quot;http://images.paraorkut.com/img/papeldeparede/1024x768/c/carro-4039.jpg&quot; /&amp;gt;&amp;lt;/a&amp;gt;
xxxxxxxxx &amp;lt;/p&amp;gt;
&lt;/pre&gt;</content><link rel='replies' type='text/html' href='http://diego-cipriano.blogspot.com/2010/10/css-texto-em-volta-da-imagem-e-zoom-ao.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8693998645778381089/posts/default/6892374302171662184'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8693998645778381089/posts/default/6892374302171662184'/><link rel='alternate' type='text/html' href='http://diego-cipriano.blogspot.com/2010/10/css-texto-em-volta-da-imagem-e-zoom-ao.html' title='CSS - Texto em volta da imagem e zoom ao passar o mouse'/><author><name>Diego Cipriano</name><uri>http://www.blogger.com/profile/04722694161845236185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5ZTH5xBau7PzLxWZtTJQQo9o8RY0hvYHV-nsoyEcIPuxuF9DYr3pxyLN1-m905CaffLbq2cdOguTEcJrlgEseCDKwawgj05TYO69quDlRHFsH0B7l94YjI501AZ7N_mk/s1600-r/perfil.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8693998645778381089.post-5687760163402584359</id><published>2010-10-01T12:45:00.003-03:00</published><updated>2010-10-04T15:06:36.763-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="javascript"/><category scheme="http://www.blogger.com/atom/ns#" term="mascara"/><title type='text'>Mascara Javascript - Moeda (Monetário)</title><content type='html'>&lt;div class=&quot;anuncio_post&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;
&lt;!--
google_ad_client = &quot;pub-9413301928696699&quot;;
/* 300x250, criado 25/09/10 */
google_ad_slot = &quot;2527599026&quot;;
google_ad_width = 300;
google_ad_height = 250;
//--&gt;
&lt;/script&gt;&lt;br /&gt;
&lt;script src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot; type=&quot;text/javascript&quot;&gt;
&lt;/script&gt;&lt;/div&gt;Outro dia estava atrás de um script para mascara de moeda e não achava de forma alguma dai um amigo meu disponibilizo esse script o qual eu ainda não parei para fazer uma análise mas ele sempre funcionou perfeitamente.&#39;&lt;br /&gt;
&lt;br /&gt;
Até onde eu sei o Autor do script é Gabriel Fróes&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;&amp;lt;script language=&quot;javascript&quot;&amp;gt;
function MascaraMoeda(objTextBox, SeparadorMilesimo, SeparadorDecimal, e){
    var sep = 0;
    var key = &quot;&quot;;
    var i = j = 0;
    var len = len2 = 0;
    var strCheck = &#39;0123456789&#39;;
    var aux = aux2 = &#39;&#39;;
    var whichCode = (window.Event) ? e.which : e.keyCode;
    if (whichCode == 13) return true;
    key = String.fromCharCode(whichCode); // Valor para o código da Chave
    if (strCheck.indexOf(key) == -1) return false; // Chave inválida
    len = objTextBox.value.length;
    for(i = 0; i &amp;lt; len; i++)
        if ((objTextBox.value.charAt(i) != &#39;0&#39;) &amp;amp;&amp;amp; (objTextBox.value.charAt(i) != SeparadorDecimal)) break;
    aux = &#39;&#39;;
    for(; i &amp;lt; len; i++)
        if (strCheck.indexOf(objTextBox.value.charAt(i))!=-1) aux += objTextBox.value.charAt(i);
    aux += key;
    len = aux.length;
    if (len == 0) objTextBox.value = &quot;&quot;;
    if (len == 1) objTextBox.value = &quot;0&quot;+ SeparadorDecimal + &quot;0&quot; + aux;
    if (len == 2) objTextBox.value = &quot;0&quot;+ SeparadorDecimal + aux;
    if (len &amp;gt; 2) {
        aux2 = &quot;&quot;;
        for (j = 0, i = len - 3; i &amp;gt;= 0; i--) {
            if (j == 3) {
                aux2 += SeparadorMilesimo;
                j = 0;
            }
            aux2 += aux.charAt(i);
            j++;
        }
        objTextBox.value = &quot;&quot;;
        len2 = aux2.length;
        for (i = len2 - 1; i &amp;gt;= 0; i--)
        objTextBox.value += aux2.charAt(i);
        objTextBox.value += SeparadorDecimal + aux.substr(len - 2, len);
    }
    return false;
}
&amp;lt;/script&amp;gt;
&amp;lt;form&amp;gt;
Valor R$: &amp;lt;input type=&quot;text&quot; name=&quot;valor&quot;  onKeyPress=&quot;return(MascaraMoeda(this,&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;&#39;&lt;/span&gt;.&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;&#39;&lt;/span&gt;,&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;&#39;&lt;/span&gt;,&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;&#39;&lt;/span&gt;,event))&quot;&amp;gt;
&amp;lt;/form&amp;gt;
&lt;/pre&gt;&lt;br /&gt;
Veja o exemplo&lt;br /&gt;
&lt;br /&gt;
&lt;script language=&quot;javascript&quot;&gt;
function MascaraMoeda(objTextBox, SeparadorMilesimo, SeparadorDecimal, e){
    var sep = 0;
    var key = &#39;&#39;;
    var i = j = 0;
    var len = len2 = 0;
    var strCheck = &#39;0123456789&#39;;
    var aux = aux2 = &#39;&#39;;
    var whichCode = (window.Event) ? e.which : e.keyCode;
    if (whichCode == 13) return true;
    key = String.fromCharCode(whichCode); // Valor para o código da Chave
    if (strCheck.indexOf(key) == -1) return false; // Chave inválida
    len = objTextBox.value.length;
    for(i = 0; i &lt; len; i++)
        if ((objTextBox.value.charAt(i) != &#39;0&#39;) &amp;&amp; (objTextBox.value.charAt(i) != SeparadorDecimal)) break;
    aux = &#39;&#39;;
    for(; i &lt; len; i++)
        if (strCheck.indexOf(objTextBox.value.charAt(i))!=-1) aux += objTextBox.value.charAt(i);
    aux += key;
    len = aux.length;
    if (len == 0) objTextBox.value = &#39;&#39;;
    if (len == 1) objTextBox.value = &#39;0&#39;+ SeparadorDecimal + &#39;0&#39; + aux;
    if (len == 2) objTextBox.value = &#39;0&#39;+ SeparadorDecimal + aux;
    if (len &gt; 2) {
        aux2 = &#39;&#39;;
        for (j = 0, i = len - 3; i &gt;= 0; i--) {
            if (j == 3) {
                aux2 += SeparadorMilesimo;
                j = 0;
            }
            aux2 += aux.charAt(i);
            j++;
        }
        objTextBox.value = &#39;&#39;;
        len2 = aux2.length;
        for (i = len2 - 1; i &gt;= 0; i--)
        objTextBox.value += aux2.charAt(i);
        objTextBox.value += SeparadorDecimal + aux.substr(len - 2, len);
    }
    return false;
}
&lt;/script&gt;&lt;br /&gt;
&lt;form&gt;Valor R$: &lt;input type=&quot;text&quot; name=&quot;valor&quot;  onKeyPress=&quot;return(MascaraMoeda(this,&#39;.&#39;,&#39;,&#39;,event))&quot;&gt;&lt;br /&gt;
&lt;/form&gt;</content><link rel='replies' type='text/html' href='http://diego-cipriano.blogspot.com/2010/10/mascara-javascript-moeda-monetario.html#comment-form' title='8 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8693998645778381089/posts/default/5687760163402584359'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8693998645778381089/posts/default/5687760163402584359'/><link rel='alternate' type='text/html' href='http://diego-cipriano.blogspot.com/2010/10/mascara-javascript-moeda-monetario.html' title='Mascara Javascript - Moeda (Monetário)'/><author><name>Diego Cipriano</name><uri>http://www.blogger.com/profile/04722694161845236185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5ZTH5xBau7PzLxWZtTJQQo9o8RY0hvYHV-nsoyEcIPuxuF9DYr3pxyLN1-m905CaffLbq2cdOguTEcJrlgEseCDKwawgj05TYO69quDlRHFsH0B7l94YjI501AZ7N_mk/s1600-r/perfil.JPG'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8693998645778381089.post-4309836096529008444</id><published>2010-09-30T16:05:00.000-03:00</published><updated>2012-10-23T11:48:42.081-02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="eleição 2010"/><title type='text'>G1 - Eleitor terá que levar documento de identificação com foto para votar - notícias em Eleições 2010</title><content type='html'>&lt;div class=&quot;anuncio_post&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;
&lt;!--
google_ad_client = &quot;pub-9413301928696699&quot;;
/* 300x250, criado 25/09/10 */
google_ad_slot = &quot;2527599026&quot;;
google_ad_width = 300;
google_ad_height = 250;
//--&gt;
&lt;/script&gt;&lt;br /&gt;
&lt;script src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot; type=&quot;text/javascript&quot;&gt;
&lt;/script&gt;&lt;/div&gt;Fique ligado para evitar transtornos

&quot;Os documentos oficiais para comprovação de identidade que serão aceitos, segundo o Tribunal Superior Eleitoral (TSE), são carteira de identidade ou documento de valor legal equivalente (identidades funcionais), certificado de reservista, carteira de trabalho e carteira nacional de habilitação, com foto.&quot;


&quot;O uso de telefones celulares, máquinas fotográficas e filmadoras dentro da cabine de votação também foi proibido pela minirreforma eleitoral.

leia toda reportagem no G1 &lt;a href=&quot;http://g1.globo.com/especiais/eleicoes-2010/noticia/2010/07/eleitor-tera-que-levar-documento-de-identificacao-com-foto-para-votar.html&quot;&gt;G1 - Eleitor terá que levar documento de identificação com foto para votar - notícias em Eleições 2010&lt;/a&gt;</content><link rel='replies' type='text/html' href='http://diego-cipriano.blogspot.com/2010/09/g1-eleitor-tera-que-levar-documento-de.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8693998645778381089/posts/default/4309836096529008444'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8693998645778381089/posts/default/4309836096529008444'/><link rel='alternate' type='text/html' href='http://diego-cipriano.blogspot.com/2010/09/g1-eleitor-tera-que-levar-documento-de.html' title='G1 - Eleitor terá que levar documento de identificação com foto para votar - notícias em Eleições 2010'/><author><name>Diego Cipriano</name><uri>http://www.blogger.com/profile/04722694161845236185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5ZTH5xBau7PzLxWZtTJQQo9o8RY0hvYHV-nsoyEcIPuxuF9DYr3pxyLN1-m905CaffLbq2cdOguTEcJrlgEseCDKwawgj05TYO69quDlRHFsH0B7l94YjI501AZ7N_mk/s1600-r/perfil.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8693998645778381089.post-6797780831708816969</id><published>2010-09-29T21:58:00.000-03:00</published><updated>2010-09-29T21:58:18.839-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="eleição 2010"/><title type='text'>Globo - Ibope divulga o que os brasileiros pensam das eleições 2010</title><content type='html'>&lt;div class=&quot;anuncio_post&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;
&lt;!--
google_ad_client = &quot;pub-9413301928696699&quot;;
/* 300x250, criado 25/09/10 */
google_ad_slot = &quot;2527599026&quot;;
google_ad_width = 300;
google_ad_height = 250;
//--&gt;
&lt;/script&gt;&lt;br /&gt;
&lt;script src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot; type=&quot;text/javascript&quot;&gt;
&lt;/script&gt;&lt;/div&gt;&lt;a href=&quot;http://video.globo.com/Videos/Player/Noticias/0,,GIM1341756-7823-IBOPE+DIVULGA+O+QUE+OS+BRASILEIROS+PENSAM+DAS+ELEICOES,00.html&quot;&gt;Link para ver o video na globo&lt;/a&gt;&lt;br /&gt;&lt;br /&gt; E enquanto continuar assim vamos continuar no mesmo caminho...&lt;br /&gt;&lt;br /&gt; &lt;object width=&quot;480&quot; height=&quot;392&quot;&gt;&lt;param value=&quot;http://video.globo.com/Portal/videos/cda/player/player.swf&quot; name=&quot;movie&quot; /&gt;&lt;param value=&quot;high&quot; name=&quot;quality&quot; /&gt;&lt;param value=&quot;midiaId=1341756&amp;autoStart=false&amp;width=480&amp;height=392&quot; name=&quot;FlashVars&quot; /&gt;&lt;embed width=&quot;480&quot; height=&quot;392&quot; flashvars=&quot;midiaId=1341756&amp;autoStart=false&amp;width=480&amp;height=392&quot; type=&quot;application/x-shockwave-flash&quot; quality=&quot;high&quot; src=&quot;http://video.globo.com/Portal/videos/cda/player/player.swf&quot;&gt;&lt;/embed&gt;&lt;/object&gt;</content><link rel='replies' type='text/html' href='http://diego-cipriano.blogspot.com/2010/09/globo-ibope-divulga-o-que-os.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8693998645778381089/posts/default/6797780831708816969'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8693998645778381089/posts/default/6797780831708816969'/><link rel='alternate' type='text/html' href='http://diego-cipriano.blogspot.com/2010/09/globo-ibope-divulga-o-que-os.html' title='Globo - Ibope divulga o que os brasileiros pensam das eleições 2010'/><author><name>Diego Cipriano</name><uri>http://www.blogger.com/profile/04722694161845236185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5ZTH5xBau7PzLxWZtTJQQo9o8RY0hvYHV-nsoyEcIPuxuF9DYr3pxyLN1-m905CaffLbq2cdOguTEcJrlgEseCDKwawgj05TYO69quDlRHFsH0B7l94YjI501AZ7N_mk/s1600-r/perfil.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8693998645778381089.post-8119153186538431341</id><published>2010-09-29T13:36:00.016-03:00</published><updated>2010-09-30T15:21:04.564-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="geolocalização"/><category scheme="http://www.blogger.com/atom/ns#" term="javascript"/><category scheme="http://www.blogger.com/atom/ns#" term="php"/><title type='text'>Geolocalização com google Maps</title><content type='html'>&lt;div class=&quot;anuncio_post&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;
&lt;!--
google_ad_client = &quot;pub-9413301928696699&quot;;
/* 300x250, criado 25/09/10 */
google_ad_slot = &quot;2527599026&quot;;
google_ad_width = 300;
google_ad_height = 250;
//--&gt;
&lt;/script&gt;&lt;br /&gt;
&lt;script src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot; type=&quot;text/javascript&quot;&gt;
&lt;/script&gt;&lt;/div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Olá pessoa hoje venho apresentar a vocês uma forma de geolocalização com o Google Maps é extremamente fácil de utilizar nesse exemplo estarei usando a API V3 o primeiro exemplo que vou mostrar tem as seguintes características ele tenta determinar o local do usuário por meio da propriedade &lt;b&gt;navigator.geolocation&lt;/b&gt; do W3C primeiro e depois tenta o método do &lt;b&gt;Google Gears&lt;/b&gt; e suspende a operação se nenhum dos métodos funcionar exibindo assim uma localização predeterminada.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Segue o script.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;&amp;lt;script type=&quot;text/javascript&quot; src=&quot;http://maps.google.com/maps/api/js?sensor=true&quot;&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;script&amp;gt;
var initialLocation;
var brasilia = new google.maps.LatLng(-15.780111,-47.9291899);
var browserSupportFlag =  new Boolean();

function initialize() {
  var myOptions = {
    zoom: 15,
    mapTypeId: google.maps.MapTypeId.HYBRID
  };
  var map = new google.maps.Map(document.getElementById(&quot;map_canvas&quot;), myOptions);
  
  // Try W3C Geolocation (Preferred)a
  if(navigator.geolocation) {
    browserSupportFlag = true;
    navigator.geolocation.getCurrentPosition(function(position) {
      initialLocation = new google.maps.LatLng(position.coords.latitude,position.coords.longitude);
      map.setCenter(initialLocation);
    }, function() {
      handleNoGeolocation(browserSupportFlag);
    });
  // Try Google Gears Geolocation
  } else if (google.gears) {
    browserSupportFlag = true;
    var geo = google.gears.factory.create(&#39;beta.geolocation&#39;);
    geo.getCurrentPosition(function(position) {
      initialLocation = new google.maps.LatLng(position.latitude,position.longitude);
      map.setCenter(initialLocation);
    }, function() {
      handleNoGeoLocation(browserSupportFlag);
    });
  // Browser doesn&#39;t support Geolocation
  } else {
    browserSupportFlag = false;
    handleNoGeolocation(browserSupportFlag);
  }
  
  function handleNoGeolocation(errorFlag) {
    if (errorFlag == true) {
      alert(&quot;O serviço de geolocalização falhou.&quot;);
      initialLocation = brasilia;
    } else {
      alert(&quot;Seu browser não suporta geolocalização. Você verá Brasília.&quot;);
      initialLocation = brasilia;
    }
    map.setCenter(initialLocation);
  }
}
window.onload = function(){
                initialize();
}
&amp;lt;/script&amp;gt;
&amp;lt;div id=&quot;map_canvas&quot; style=&quot;width:600px; height:400px&quot;&amp;gt;&amp;lt;/div&amp;gt;
&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Na terceira linha do segundo script vocês podem ver que eu coloquei uma latitude e uma longetude a qual leva até Brasília então caso o script não consiga pegar a localização do usuário ele determinará esse ponto como padrão na linha 5 depois da&amp;nbsp;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: monospace; white-space: pre;&quot;&gt;&lt;b&gt;function initialize()&lt;/b&gt;&lt;/span&gt;&amp;nbsp;eu indiquei o ID da div que vai receber as imagens do Google que no caso foi &lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: monospace; white-space: pre;&quot;&gt;&lt;b&gt;map_canvas&lt;/b&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;esse é um padrão utilizado pelo Google.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Esse é o resultado produzido por esse script:&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;script src=&quot;http://maps.google.com/maps/api/js?sensor=true&quot; type=&quot;text/javascript&quot;&gt;
&lt;/script&gt;&lt;br /&gt;
&lt;script&gt;
var initialLocation;
var brasilia = new google.maps.LatLng(-15.780111,-47.9291899);
var browserSupportFlag =  new Boolean();

function initialize() {
  var myOptions = {
    zoom: 15,
    mapTypeId: google.maps.MapTypeId.HYBRID
  };
  var map = new google.maps.Map(document.getElementById(&quot;map_canvas2&quot;), myOptions);
  
  // Try W3C Geolocation (Preferred)a
  if(navigator.geolocation) {
    browserSupportFlag = true;
    navigator.geolocation.getCurrentPosition(function(position) {
      initialLocation = new google.maps.LatLng(position.coords.latitude,position.coords.longitude);
      map.setCenter(initialLocation);
    }, function() {
      handleNoGeolocation(browserSupportFlag);
    });
  // Try Google Gears Geolocation
  } else if (google.gears) {
    browserSupportFlag = true;
    var geo = google.gears.factory.create(&#39;beta.geolocation&#39;);
    geo.getCurrentPosition(function(position) {
      initialLocation = new google.maps.LatLng(position.latitude,position.longitude);
      map.setCenter(initialLocation);
    }, function() {
      handleNoGeoLocation(browserSupportFlag);
    });
  // Browser doesn&#39;t support Geolocation
  } else {
    browserSupportFlag = false;
    handleNoGeolocation(browserSupportFlag);
  }
  
  function handleNoGeolocation(errorFlag) {
    if (errorFlag == true) {
      alert(&quot;O serviço de geolocalização falhou.&quot;);
      initialLocation = brasilia;
    } else {
      alert(&quot;Seu browser não suporta geolocalização. Você verá Brasília.&quot;);
      initialLocation = brasilia;
    }
    map.setCenter(initialLocation);
  }
}
window.onload = function(){
                initialize();
}
&lt;/script&gt;&lt;br /&gt;
&lt;div id=&quot;map_canvas2&quot; style=&quot;height: 400px; width: 500px;&quot;&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Vamos para o Segundo exemplo.&lt;/b&gt;&lt;br /&gt;
O segundo exemplo é basicamente o mesmo do primeiro &amp;nbsp;porem vamos ter identificar o endereço de ip do usuário enviar par o &lt;b&gt;geoplugin&lt;/b&gt; e como retorno receberemos os dados do ip disponibilizado pelo mesmo segue o script.&lt;br /&gt;
&lt;b&gt;Segue o Script.&lt;/b&gt;&lt;br /&gt;
&lt;pre&gt;&amp;lt;?php
$ip = $_SERVER[&#39;REMOTE_ADDR&#39;]; // pego o endereço de IP
ini_set(&quot;allow_url_fopen&quot;, 1);
$response = file_get_contents(&quot;http://www.geoplugin.net/php.gp?ip=$ip&quot;);
ini_set(&quot;allow_url_fopen&quot;, 0);
$array = var_export( unserialize ( $response  ), 1);
eval( &#39;$array = &#39;. $array .&#39;;&#39;);
$data  = new stdClass();
// latitude e longitude
$lt = $data-&amp;gt;lat         = $array[&#39;geoplugin_latitude&#39;];
$lg = $data-&amp;gt;long        = $array[&#39;geoplugin_longitude&#39;];
?&amp;gt;
&amp;lt;br&amp;gt;
&amp;lt;br&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
&amp;lt;meta name=&quot;viewport&quot; content=&quot;initial-scale=1.0, user-scalable=no&quot; /&amp;gt;
&amp;lt;script type=&quot;text/javascript&quot; src=&quot;http://maps.google.com/maps/api/js?sensor=false&quot;&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;script type=&quot;text/javascript&quot;&amp;gt;
  function initialize() {
    var latlng = new google.maps.LatLng(&amp;lt;?php echo $lt; ?&amp;gt;, &amp;lt;?php echo $lg; ?&amp;gt;);
    var myOptions = {
      zoom: 11,
      center: latlng,
      mapTypeId: google.maps.MapTypeId.HYBRID
    };
    var map = new google.maps.Map(document.getElementById(&quot;map_canvas&quot;), myOptions);
  }

&amp;lt;/script&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
&amp;lt;?php
echo &quot;Você esta em :&quot;;
echo $data-&amp;gt;city   = $array[&#39;geoplugin_city&#39;];
echo &quot;, &quot;;
echo $data-&amp;gt;region = $array[&#39;geoplugin_region&#39;];
echo &quot;, &quot;;
echo $data-&amp;gt;country     = $array[&#39;geoplugin_countryName&#39;];
echo &quot; - &quot;;
echo $data-&amp;gt;countrycode = $array[&#39;geoplugin_countryCode&#39;];
?&amp;gt;

&amp;lt;/body&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body onLoad=&quot;initialize()&quot;&amp;gt;
 &amp;lt;div id=&quot;map_canvas&quot; style=&quot;width:30%; height:30%&quot;&amp;gt;&amp;lt;/div&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Esse é o resultado produzido por esse script&lt;/b&gt;&lt;br /&gt;
&lt;iframe frameborder=&quot;0&quot; height=&quot;510&quot; src=&quot;http://www.diegocipriano.com/blog/geolocalizacao.php&quot; width=&quot;510&quot;&gt;&lt;/iframe&gt;&lt;br /&gt;
&lt;br /&gt;
Bom pesso é isso ai qual quer dúvida ja sabem é so postar ai que vou estar fazendo o maximo para responder!</content><link rel='replies' type='text/html' href='http://diego-cipriano.blogspot.com/2010/09/geolocalizacao-com-google-maps.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8693998645778381089/posts/default/8119153186538431341'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8693998645778381089/posts/default/8119153186538431341'/><link rel='alternate' type='text/html' href='http://diego-cipriano.blogspot.com/2010/09/geolocalizacao-com-google-maps.html' title='Geolocalização com google Maps'/><author><name>Diego Cipriano</name><uri>http://www.blogger.com/profile/04722694161845236185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5ZTH5xBau7PzLxWZtTJQQo9o8RY0hvYHV-nsoyEcIPuxuF9DYr3pxyLN1-m905CaffLbq2cdOguTEcJrlgEseCDKwawgj05TYO69quDlRHFsH0B7l94YjI501AZ7N_mk/s1600-r/perfil.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8693998645778381089.post-5596370868050083276</id><published>2010-09-28T16:19:00.007-03:00</published><updated>2010-09-30T15:17:55.459-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="javascript"/><category scheme="http://www.blogger.com/atom/ns#" term="mascara"/><title type='text'>Mascaras Javascript - DATA - CEP - CPF - CNPJ - SITE</title><content type='html'>&lt;div class=&quot;anuncio_post&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;
&lt;!--
google_ad_client = &quot;pub-9413301928696699&quot;;
/* 300x250, criado 25/09/10 */
google_ad_slot = &quot;2527599026&quot;;
google_ad_width = 300;
google_ad_height = 250;
//--&gt;
&lt;/script&gt;&lt;br /&gt;
&lt;script src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot; type=&quot;text/javascript&quot;&gt;
&lt;/script&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
Uma questão que aflige muitas pessoas que entra na área de programação é como fazer com que o usuário tenha uma visão limpa do que esta digitando.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;As expressões do javascript nos auxilia e muito para fazer isso de forma pratica e limpa.&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Veja o script das mascaras mais utilizadas&lt;br /&gt;
&lt;pre&gt;&amp;lt;script&amp;gt;
function mascara(el,masc){
el.value=masc(el.value)
}
function soNumeros(d){
 return d.replace(/\D/g,&quot;&quot;)
}
function semNumeros(d){
 return d.replace(/\d/g,&quot;&quot;)
}
function soMinusculas(d){
 return d.toLowerCase()
}
function soMaiusculas(d){
 return d.toUpperCase()
}
function cep(d){
    d = soNumeros(d)
    d=d.replace(/^(\d{5})(\d)/,&quot;$1-$2&quot;)
    return d
}
function cnpj(d){
    d = soNumeros(d)
    d=d.replace(/^(\d{2})(\d)/,&quot;$1.$2&quot;)
    d=d.replace(/^(\d{2})\.(\d{3})(\d)/,&quot;$1.$2.$3&quot;)
    d=d.replace(/\.(\d{3})(\d)/,&quot;.$1/$2&quot;)
    d=d.replace(/(\d{4})(\d)/,&quot;$1-$2&quot;)
    return d
}
function cpf(d){
    d = soNumeros(d)
    d=d.replace(/(\d{3})(\d)/,&quot;$1.$2&quot;)
    d=d.replace(/(\d{3})(\d)/,&quot;$1.$2&quot;)

    d=d.replace(/(\d{3})(\d{1,2})$/,&quot;$1-$2&quot;)
    return d
}
function url(d){
    d=d.replace(/http:\/\/?/,&quot;&quot;)
 d = soMinusculas(d)
    dominio=d
    d=&quot;http://&quot;+dominio
    return d
}
function telefone(d){
    d = soNumeros(d)
    d=d.replace(/^(\d\d)(\d)/g,&quot;($1) $2&quot;)
    d=d.replace(/(\d{4})(\d)/,&quot;$1-$2&quot;)
    return d
}
function data(d){
    d = soNumeros(d)
    d=d.replace(/(\d{2})(\d)/,&quot;$1/$2&quot;)
 d=d.replace(/(\d{2})(\d)/,&quot;$1/$2&quot;)
    return d
}
&amp;lt;/script&amp;gt;
&lt;/pre&gt;&lt;b&gt;function mascara&lt;/b&gt; ela nada mais é de quem chama a mascara a ser executada ela recebe como parâmetro o elemento que esta chamando ela e qual tipo de mascara ele deseja mas  não é obrigatório o uso dela chama-la diretamente é preciso fazer apenas algumas adaptações simples.&lt;br /&gt;
&lt;br /&gt;
Como todas as mascaras aqui tem como base uma única função eu vou dar explicação só da função caso precise de um&amp;nbsp;esclarecimento&amp;nbsp;maior sinta se a vontade para perguntar.&lt;br /&gt;
&lt;br /&gt;
a função que utilizamos para criar as mascaras é &lt;b&gt;replace&lt;/b&gt; ela simplesmente substitui os caracteres que você especificar por outro ta mas e esse monte de barra por exemplo &lt;b&gt;replace(&lt;i&gt;/\D/g,&quot;&quot;&lt;/i&gt;)&lt;/b&gt; as barras são delimitadores e nesse exemplo ele substitui tudo que não for número por &quot;&quot; (vazio) caso você passe para ela o seguinte texto (&quot;15 Dias&quot;) ela retorna 15 para entender melhor veja abaixo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;&amp;lt;script&amp;gt;
texto = &quot;ABCDE abcDe 12345 HIJKL hijkl 67890&quot;;
alert(texto.match(/\d/)); // essa expressão diz para retornar o primeiro número que ele encontrar na variável texto naturalmente ele retorna 1.

alert(texto.match(/\d/g)); // já essa expressão diz para retornar todos os números naturalmente ele  retorna 1,2,3,4,5,6,7,8,9,0.

alert(texto.match(/[d]/)); // já essa expressão diz para retornar a primeira letra d  aqui ele encontrar retorna null pois na variável &amp;lt;strong&amp;gt;texto&amp;lt;/strong&amp;gt; só existe &quot;D&quot;.

alert(texto.match(/[d]/i)); // já essa expressão diz para retornar a primeira letra d  aqui ele encontrar naturalmente ele retorna &quot;D&quot;.

alert(texto.match(/[d]/gi)); // já essa expressão diz para retornar a primeira letra d  aqui ele encontrar naturalmente ele retorna &quot;D,D&quot;.

&amp;lt;/script&amp;gt;&lt;/pre&gt;&lt;br /&gt;
Veja os exemplos&lt;br /&gt;
&lt;script&gt;
function mascara(el,masc){
el.value=masc(el.value)
}
function soNumeros(d){
 return d.replace(/\D/g,&quot;&quot;)
}
function semNumeros(d){
 return d.replace(/\d/g,&quot;&quot;)
}
function soMinusculas(d){
 return d.toLowerCase()
}
function soMaiusculas(d){
 return d.toUpperCase()
}
function cep(d){
    d = soNumeros(d)
    d=d.replace(/^(\d{5})(\d)/,&quot;$1-$2&quot;)
    return d
}
function cnpj(d){
    d = soNumeros(d)
    d=d.replace(/^(\d{2})(\d)/,&quot;$1.$2&quot;)
    d=d.replace(/^(\d{2})\.(\d{3})(\d)/,&quot;$1.$2.$3&quot;)
    d=d.replace(/\.(\d{3})(\d)/,&quot;.$1/$2&quot;)
    d=d.replace(/(\d{4})(\d)/,&quot;$1-$2&quot;)
    return d
}
function cpf(d){
    d = soNumeros(d)
    d=d.replace(/(\d{3})(\d)/,&quot;$1.$2&quot;)
    d=d.replace(/(\d{3})(\d)/,&quot;$1.$2&quot;)

    d=d.replace(/(\d{3})(\d{1,2})$/,&quot;$1-$2&quot;)
    return d
}
function url(d){
    d=d.replace(/http:\/\/?/,&quot;&quot;)
 d = soMinusculas(d)
    dominio=d
    d=&quot;http://&quot;+dominio
    return d
}
function telefone(d){
    d = soNumeros(d)
    d=d.replace(/^(\d\d)(\d)/g,&quot;($1) $2&quot;)
    d=d.replace(/(\d{4})(\d)/,&quot;$1-$2&quot;)
    return d
}
function data(d){
    d = soNumeros(d)
    d=d.replace(/(\d{2})(\d)/,&quot;$1/$2&quot;)
 d=d.replace(/(\d{2})(\d)/,&quot;$1/$2&quot;)
    return d
}
&lt;/script&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; border=&quot;1&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;Só números&lt;/td&gt;&lt;td&gt;Sem números&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;input onkeypress=&quot;mascara(this,soNumeros)&quot; onkeyup=&quot;mascara(this,soNumeros)&quot; type=&quot;text&quot; /&gt;&lt;/td&gt; &lt;td&gt;&lt;input onkeypress=&quot;mascara(this,semNumeros)&quot; onkeyup=&quot;mascara(this,semNumeros)&quot; type=&quot;text&quot; /&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Só&amp;nbsp;Minúsculas&lt;/td&gt;&lt;td&gt;Só Maiúsculas&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;input onkeypress=&quot;mascara(this,soMinusculas)&quot; onkeyup=&quot;mascara(this,soMinusculas)&quot; type=&quot;text&quot; /&gt;&lt;/td&gt;&lt;td&gt;&lt;input onkeypress=&quot;mascara(this,soMaiusculas)&quot; onkeyup=&quot;mascara(this,soMaiusculas)&quot; type=&quot;text&quot; /&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;CEP&lt;/td&gt;&lt;td&gt;CNPJ&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;input maxlength=&quot;9&quot; onkeypress=&quot;mascara(this,cep)&quot; onkeyup=&quot;mascara(this,cep)&quot; type=&quot;text&quot; /&gt;&lt;/td&gt;&lt;td&gt;&lt;input maxlength=&quot;18&quot; onkeypress=&quot;mascara(this,cnpj)&quot; onkeyup=&quot;mascara(this,cnpj)&quot; type=&quot;text&quot; /&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;CPF&lt;/td&gt;&lt;td&gt;Telefone&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;input maxlength=&quot;14&quot; onkeypress=&quot;mascara(this,cpf)&quot; onkeyup=&quot;mascara(this,cpf)&quot; type=&quot;text&quot; /&gt;&lt;/td&gt;&lt;td&gt;&lt;input maxlength=&quot;14&quot; onkeydown=&quot;mascara(this,telefone)&quot; onkeyup=&quot;mascara(this,telefone)&quot; type=&quot;text&quot; /&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Data  formato dd/mm/aaaa&lt;/td&gt;&lt;td&gt;URL&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;input maxlength=&quot;10&quot; onkeydown=&quot;mascara(this,data)&quot; onkeyup=&quot;mascara(this,data)&quot; type=&quot;text&quot; /&gt;&lt;/td&gt;&lt;td&gt;&lt;input onkeydown=&quot;mascara(this,url)&quot; onkeyup=&quot;mascara(this,url)&quot; size=&quot;30&quot; type=&quot;text&quot; value=&quot;http://&quot; /&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;</content><link rel='replies' type='text/html' href='http://diego-cipriano.blogspot.com/2010/09/mascaras-javascript-data-cep-cpf-cnpj.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8693998645778381089/posts/default/5596370868050083276'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8693998645778381089/posts/default/5596370868050083276'/><link rel='alternate' type='text/html' href='http://diego-cipriano.blogspot.com/2010/09/mascaras-javascript-data-cep-cpf-cnpj.html' title='Mascaras Javascript - DATA - CEP - CPF - CNPJ - SITE'/><author><name>Diego Cipriano</name><uri>http://www.blogger.com/profile/04722694161845236185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5ZTH5xBau7PzLxWZtTJQQo9o8RY0hvYHV-nsoyEcIPuxuF9DYr3pxyLN1-m905CaffLbq2cdOguTEcJrlgEseCDKwawgj05TYO69quDlRHFsH0B7l94YjI501AZ7N_mk/s1600-r/perfil.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8693998645778381089.post-4654792027787235284</id><published>2010-09-28T10:58:00.006-03:00</published><updated>2010-09-28T17:06:52.153-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Criar captcha"/><category scheme="http://www.blogger.com/atom/ns#" term="php"/><title type='text'>3 - CAPTCHA COM PHP - colocando em prática</title><content type='html'>&lt;div class=&quot;anuncio_post&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;
&lt;!--
google_ad_client = &quot;pub-9413301928696699&quot;;
/* 300x250, criado 25/09/10 */
google_ad_slot = &quot;2527599026&quot;;
google_ad_width = 300;
google_ad_height = 250;
//--&gt;
&lt;/script&gt;&lt;br /&gt;
&lt;script src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot; type=&quot;text/javascript&quot;&gt;
&lt;/script&gt;&lt;/div&gt;Depois de ver alguns conceitos e entender a importancia de cada função chegou a hora de montar nosso captcha então segue abaixo o script comentado, caso alguem tenha alguma dúvida poste ai.&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;&amp;lt;?php
session_start();
/* se voce quiser que ele diferencie minúsculas de maiúsculas substitua isso 
$resposta = strtolower($_POST[&quot;CAPTCHA&quot;]) != strtolower($_SESSION[&quot;CAPTCHA&quot;]) por isso
$resposta = $_POST[&quot;CAPTCHA&quot;] != $_SESSION[&quot;CAPTCHA&quot;]*/

if($_POST[&quot;CAPTCHA&quot;]) $resposta = strtolower($_POST[&quot;CAPTCHA&quot;]) != strtolower($_SESSION[&quot;CAPTCHA&quot;])? &quot;Você digitou CAPTCHA errado tente novamente&quot; : &quot;Você digito CAPTCHA corretamente&quot;;

$v = array(&quot;a&quot;,&quot;A&quot;,&quot;e&quot;,&quot;E&quot;,&quot;i&quot;,&quot;I&quot;,&quot;o&quot;,&quot;O&quot;,&quot;u&quot;,&quot;U&quot;);
$c = array(&quot;b&quot;,&quot;B&quot;,&quot;c&quot;,&quot;C&quot;,&quot;cr&quot;,&quot;CR&quot;,&quot;d&quot;,&quot;D&quot;,&quot;f&quot;,&quot;F&quot;,&quot;g&quot;,&quot;G&quot;,&quot;h&quot;,&quot;H&quot;,&quot;nh&quot;,&quot;NH&quot;,&quot;lh&quot;,&quot;LH&quot;,&quot;ch&quot;,&quot;CH&quot;,&quot;j&quot;,&quot;J&quot;,&quot;k&quot;,&quot;K&quot;,&quot;l&quot;,&quot;L&quot;,&quot;m&quot;,&quot;M&quot;,&quot;n&quot;,&quot;N&quot;,&quot;p&quot;,&quot;P&quot;,&quot;qu&quot;,&quot;QU&quot;,&quot;r&quot;,&quot;R&quot;,&quot;rr&quot;,&quot;RR&quot;,&quot;s&quot;,&quot;S&quot;,&quot;ss&quot;,&quot;SS&quot;,&quot;t&quot;,&quot;T&quot;,&quot;v&quot;,&quot;V&quot;,&quot;w&quot;,&quot;W&quot;,&quot;x&quot;,&quot;X&quot;,&quot;y&quot;,&quot;Y&quot;,&quot;z&quot;,&quot;Z&quot;,&quot;pr&quot;,&quot;PR&quot;,&quot;tr&quot;,&quot;TR&quot;);

$tamanho_palavra = rand(4,7); // defini minimo e o maximo de caracteres
$Caractere = 0;
// cria a palvra do CAPTCHA
while($Caractere &amp;lt; $tamanho_palavra){
   $V = $v[rand(0,count($v)-1)];
   $C = $c[rand(0,count($c)-1)];
   $palavra .=$C.$V;
   $Caractere = strlen($palavra);
}
$_SESSION[&quot;CAPTCHA&quot;] = $palavra; // guardo a palavra gerada na sessão
// começo a criar a imagem //
$font = imageloadfont(&quot;fontes/lizze.gdf&quot;); // carrego a fonte a ser usada 
$Nome = &quot;CAPTCHA.png&quot;; // define o nome da imagem gerada
$imagem = ImageCreate(300,100); // define os tabanhos

$branco = ImageColorAllocate($imagem, 255, 79, 79); // cor do fundo

$w = 60; // define a largura do circulo
$h= 60; // define a altura do circulo
// faço os circulos para confundir os robos a função rand determina o minimo e o maximo de circulos
for($n=0;$n&amp;lt;rand(2,4);$n++)
{
 // cor da linha do circulo aqui eu fiz uma seleção que de valores randomicos para gerar cores do tom vermelho a verde
 $cordalinha = ImageColorAllocate($imagem, rand(10,255), rand(100,255), rand(0,100)); 
 $i=0;
 $x = rand(0,285);
 $y = rand(0,85);
 $quantos = rand(10,100);
 for($i=0;$i&amp;lt;$quantos;$i++)
 {
  imagearc($imagem, $x, 20, $w-($i/5), $h-($i/5),rand(90,360),rand(90,360),$cordalinha);
        imagearc($imagem, $x, 20, $w+($i/5), $h+($i/5), rand(90,360),rand(90,360), $cordalinha);
    }
}
/// texto ///
$cordotexto = ImageColorAllocate($imagem, rand(39,0), rand(18,100), rand(55,255));
ImageString($imagem, $font, rand(20,55), rand(20,35), $palavra, $cordotexto);
// salva a imagem 
ImagePNG($imagem, $Nome );
// limpa a memória
ImageDestroy($imagem);
// coloca a imagem no diretório
$destino = &quot;./imagens/$Nome&quot;;
$copy = copy($Nome, $destino); 
?&amp;gt;
&amp;lt;table width=&quot;304&quot; height=&quot;100&quot; bgcolor=&quot;#ff4f4f&quot;&amp;gt;
 &amp;lt;tr&amp;gt;
  &amp;lt;td&amp;gt;
   &amp;lt;img style=&quot; position:absolute; width:300px; height:100px; text-align:center; z-index:1&quot; src=&quot;imagens/fundo.png&quot; /&amp;gt;
   &amp;lt;img src=&quot;imagens/CAPTCHA.png&quot; /&amp;gt;
  &amp;lt;/td&amp;gt;
 &amp;lt;/tr&amp;gt;
 &amp;lt;tr&amp;gt;
  &amp;lt;td align=&quot;center&quot;&amp;gt;
   digite o texto acima&amp;lt;br /&amp;gt;
   &amp;lt;form method=&quot;post&quot;&amp;gt;
    &amp;lt;input type=&quot;text&quot; size=&quot;30&quot; name=&quot;CAPTCHA&quot; /&amp;gt;&amp;lt;input type=&quot;submit&quot; value=&quot;Enviar&quot; /&amp;gt;&amp;lt;br /&amp;gt;
    &amp;lt;font size=&quot;-1&quot;&amp;gt;O programa não diferencia maiúsculas ou minusculas!&amp;lt;/font&amp;gt;
   &amp;lt;/form&amp;gt;
  &amp;lt;/td&amp;gt;
 &amp;lt;/tr&amp;gt;
&amp;lt;/table&amp;gt;
&amp;lt;?php
echo $resposta;
?&amp;gt;
&lt;/pre&gt;&lt;b&gt;Obs:&lt;/b&gt; Cria uma pasta chamada &lt;b&gt;imagens&lt;/b&gt; no local onde o script for executado ou altere o local para onde a imagem deve ir.&lt;br /&gt;
&lt;br /&gt;
Veja este Exemplo abaixo:&lt;br /&gt;
&lt;br /&gt;
&lt;iframe frameborder=&quot;0&quot; height=&quot;220&quot; scrolling=&quot;no&quot; src=&quot;http://diegocipriano.com/blog/captcha.php&quot; width=&quot;600&quot;&gt;&lt;/iframe&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.diegocipriano.com/blog/CAPTCHA.zip&quot;&gt;download do exemplo&lt;/a&gt;&lt;br /&gt;
Para acompanhar todos os&amp;nbsp;post relacionado a esse tema basta seguir esse link&amp;nbsp;&lt;a href=&quot;http://diego-cipriano.blogspot.com/search/label/Criar%20captcha&quot;&gt;Criar captcha&lt;/a&gt;</content><link rel='replies' type='text/html' href='http://diego-cipriano.blogspot.com/2010/09/3-captcha-com-php-colocando-em-pratica.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8693998645778381089/posts/default/4654792027787235284'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8693998645778381089/posts/default/4654792027787235284'/><link rel='alternate' type='text/html' href='http://diego-cipriano.blogspot.com/2010/09/3-captcha-com-php-colocando-em-pratica.html' title='3 - CAPTCHA COM PHP - colocando em prática'/><author><name>Diego Cipriano</name><uri>http://www.blogger.com/profile/04722694161845236185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5ZTH5xBau7PzLxWZtTJQQo9o8RY0hvYHV-nsoyEcIPuxuF9DYr3pxyLN1-m905CaffLbq2cdOguTEcJrlgEseCDKwawgj05TYO69quDlRHFsH0B7l94YjI501AZ7N_mk/s1600-r/perfil.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8693998645778381089.post-3239166755784182862</id><published>2010-09-27T16:40:00.006-03:00</published><updated>2010-09-27T18:45:53.677-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="javascript"/><title type='text'>Validar CPF</title><content type='html'>&lt;div class=&quot;anuncio_post&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;
&lt;!--
google_ad_client = &quot;pub-9413301928696699&quot;;
/* 300x250, criado 25/09/10 */
google_ad_slot = &quot;2527599026&quot;;
google_ad_width = 300;
google_ad_height = 250;
//--&gt;
&lt;/script&gt;&lt;br /&gt;
&lt;script src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot; type=&quot;text/javascript&quot;&gt;
&lt;/script&gt;&lt;/div&gt;Olá amigos.&lt;br /&gt;
&lt;br /&gt;
Vou compartilhar uma função para gerar e validar CPF.&lt;br /&gt;
&lt;br /&gt;
pra questão de entendimento vamos exemplificar como que se faz isso no papel.&lt;br /&gt;
&lt;br /&gt;
Primeiramente pegamos 9 números entre (0-9) aleatóriamente.&lt;br /&gt;
&lt;br /&gt;
Para descobrir o primeiro digito verificador é só multiplicarmos o primeiro digito por 10 o segundo por 9 de forma constante e decrescente depois somamos os resultados e dividimos por 11 pegamos o resto e arredondamos caso o resultado seja 10 o digito verificador é 0 veja no exemplo abaixo. &lt;br /&gt;
&lt;pre&gt;|-----|-----|-----|-----|-----|-----|-----|-----|-----|
|  1  |  2  |  3  |  4  |  5  |  6  |  7  |  8  |  9  |
|  x  |  x  |  x  |  x  |  x  |  x  |  x  |  x  |  x  |
|  1  |  2  |  3  |  4  |  5  |  6  |  7  |  8  |  9  |
|-----|-----|-----|-----|-----|-----|-----|-----|-----|
   1   + 4  +  9  +  16  + 25 + 36  + 49  + 64  + 81  = 285 / 11 = 25,909090... arredondamos o resto da divisão e obtemos o 10 então o nosso primeiro digito é 0
&lt;/pre&gt;&lt;br /&gt;
para descobrir o segundo digito verificador é basicamente da mesma forma.&lt;br /&gt;
veja o exemplo abaixo.&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|
|  1  |  2  |  3  |  4  |  5  |  6  |  7  |  8  |  9  |  0  |
|  x  |  x  |  x  |  x  |  x  |  x  |  x  |  x  |  x  |  x  |
|  0  |  1  |  2  |  3  |  4  |  5  |  6  |  7  |  8  |  9  |
|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|
  0   +  2  +  6  +  12  + 20 + 30  + 42  + 56  + 72  +  0  = 240 / 11 = 81,818181... arredondamos o resto da divisão e obtemos o 9 nesse caso o nosso digito é 9
&lt;/pre&gt;&lt;br /&gt;
então nosso CPF é 123.456.789-09&lt;br /&gt;
&lt;br /&gt;
segue nosso script comentado&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;&amp;lt;script&amp;gt;
function CPF (acao){
var ResponseCpf  = &quot;cpf&quot;;
var ResponseVerifica = &quot;status&quot;;
 
 if(acao == &quot;Gerar&quot;)
 {
  n=0;
  var cpf = &quot;&quot;;
  // gera os 9 digitos
  for(n==0; n&amp;lt;9; n++)
  {
   x = String(Math.round(Math.random()*9));
   cpf += x;
  }
  // faz o calculo do primeiro digito
  dg1 = (cpf.slice(0,1)*1+cpf.slice(1,2)*2+cpf.slice(2,3)*3+cpf.slice(3,4)*4+cpf.slice(4,5)*5+cpf.slice(5,6)*6+cpf.slice(6,7)*7+cpf.slice(7,8)*8+cpf.slice(8)*9)%11;
  
  // se for 10 então é = 0
  if(dg1==10) dg1=0;
  
  // acrescenta o digito no nosso cpf
  cpf +=eval(dg1);
  
  //faz o calculo do primeiro digito
  dg2 = (cpf.slice(0,1)*0+cpf.slice(1,2)*1+cpf.slice(2,3)*2+cpf.slice(3,4)*3+cpf.slice(4,5)*4+cpf.slice(5,6)*5+cpf.slice(6,7)*6+cpf.slice(7,8)*7+cpf.slice(8,9)*8+cpf.slice(9)*9)%11;
  
  // se for 10 então é = 0
  if(dg2==10) dg2=0;

  // acrescenta o digito no nosso cpf
  cpf +=eval(dg2);
  
  document.getElementById(ResponseCpf).value = cpf;
  document.getElementById(ResponseCpf).focus();
 }
 
 if(cpf == 00000000000 || cpf == 11111111111 || cpf == 22222222222 || cpf == 33333333333 || cpf == 44444444444 || cpf == 55555555555 || cpf == 66666666666 || cpf == 77777777777 || cpf == 88888888888 || cpf == 99999999999)
 {
  document.getElementById(ResponseVerifica).value = &quot;Falso&quot;;
  return false;
 }
 add = 0;
 for (i=0; i &amp;lt; 9; i ++)
 add += parseInt(cpf.charAt(i)) * (10 - i);
 rev = 11 - (add % 11);
 if (rev == 10 || rev == 11)
 rev = 0;
 if (rev != parseInt(cpf.charAt(9)))
 {
  document.getElementById(ResponseVerifica).value = &quot;Falso&quot;;
  return false;
 }
 add = 0;
 for (i = 0; i &amp;lt; 10; i ++)
 add += parseInt(cpf.charAt(i)) * (11 - i);
 rev = 11 - (add % 11);
 if (rev == 10 || rev == 11)
 rev = 0;
 if (rev != parseInt(cpf.charAt(10)))
 {
 document.getElementById(ResponseVerifica).value = &quot;Falso&quot;;
 return false;
 }
 document.getElementById(ResponseVerifica).value = &quot;Verdadeiro&quot;;
 return false;
} 
&amp;lt;/script&amp;gt;
&lt;/pre&gt;&lt;br /&gt;
Formulário para gerar e verificar CPF&lt;br /&gt;
&lt;pre&gt;&amp;lt;form name=&quot;cpf&quot;&amp;gt;
CPF:&amp;lt;input type=&quot;text&quot; id=&quot;cpf&quot; maxlength=&quot;11&quot; onkeyup=&quot;CPF(&#39;Verificar&#39;);&quot; /&amp;gt;&amp;lt;br /&amp;gt;
Status: &amp;lt;input size=&quot;6&quot; type=&quot;text&quot; disabled=&quot;disabled&quot; id=&quot;status&quot; /&amp;gt;&amp;lt;Br /&amp;gt;
&amp;lt;input type=&quot;button&quot; onclick=&quot;CPF(this.value)&quot; value=&quot;Gerar&quot; /&amp;gt;
&amp;lt;input type=&quot;button&quot; onclick=&quot;CPF(this.value)&quot;  value=&quot;Verificar&quot; /&amp;gt;&amp;lt;br /&amp;gt;
&amp;lt;/form&amp;gt;
&lt;/pre&gt;&lt;br /&gt;
&lt;script&gt;
function CPF (acao){
var ResponseCpf  = &quot;cpf&quot;;
var ResponseVerifica = &quot;status&quot;;
 
 if(acao == &quot;Gerar&quot;)
 {
  n=0;
  var cpf = &quot;&quot;;
  for(n==0; n&lt;9; n++)
  {
   x = String(Math.round(Math.random()*9));
   cpf += x;
  }
  dg1 = (cpf.slice(0,1)*1+cpf.slice(1,2)*2+cpf.slice(2,3)*3+cpf.slice(3,4)*4+cpf.slice(4,5)*5+cpf.slice(5,6)*6+cpf.slice(6,7)*7+cpf.slice(7,8)*8+cpf.slice(8)*9)%11;
  
  if(dg1==10) dg1=0;
  
  cpf +=eval(dg1);
  
  dg2 = (cpf.slice(0,1)*0+cpf.slice(1,2)*1+cpf.slice(2,3)*2+cpf.slice(3,4)*3+cpf.slice(4,5)*4+cpf.slice(5,6)*5+cpf.slice(6,7)*6+cpf.slice(7,8)*7+cpf.slice(8,9)*8+cpf.slice(9)*9)%11;
  
  
  if(dg2==10) dg2=0;
  
  cpf +=eval(dg2);
  document.getElementById(ResponseCpf).value = cpf;
  document.getElementById(ResponseCpf).focus();
 }else{
  cpf = document.getElementById(ResponseCpf).value;
  cpf = somente_numero(cpf);
 }
 
 if(cpf == 00000000000 || cpf == 11111111111 || cpf == 22222222222 || cpf == 33333333333 || cpf == 44444444444 || cpf == 55555555555 || cpf == 66666666666 || cpf == 77777777777 || cpf == 88888888888 || cpf == 99999999999)
 {
  document.getElementById(ResponseVerifica).value = &quot;Falso&quot;;
  return false;
 }
 add = 0;
 for (i=0; i &lt; 9; i ++)
 add += parseInt(cpf.charAt(i)) * (10 - i);
 rev = 11 - (add % 11);
 if (rev == 10 || rev == 11)
 rev = 0;
 if (rev != parseInt(cpf.charAt(9)))
 {
  document.getElementById(ResponseVerifica).value = &quot;Falso&quot;;
  return false;
 }
 add = 0;
 for (i = 0; i &lt; 10; i ++)
 add += parseInt(cpf.charAt(i)) * (11 - i);
 rev = 11 - (add % 11);
 if (rev == 10 || rev == 11)
 rev = 0;
 if (rev != parseInt(cpf.charAt(10)))
 {
 document.getElementById(ResponseVerifica).value = &quot;Falso&quot;;
 return false;
 }
 document.getElementById(ResponseVerifica).value = &quot;Verdadeiro&quot;;
 return false;


}
function somente_numero(n){
 n = n.replace(/\D/g,&quot;&quot;)
 return n;
}  

function Mcpf(campo,cpf){
    cpf=cpf.replace(/\D/g,&quot;&quot;)
    cpf=cpf.replace(/(\d{3})(\d)/,&quot;$1.$2&quot;)       
    cpf=cpf.replace(/(\d{3})(\d)/,&quot;$1.$2&quot;)                                         
    cpf=cpf.replace(/(\d{3})(\d{1,2})$/,&quot;$1-$2&quot;) 
 campo.value = cpf
}
&lt;/script&gt;&lt;b&gt;

Veja o Exemplo

&lt;/b&gt;

&lt;form name=&quot;cpf&quot;&gt;

CPF:&lt;input id=&quot;cpf&quot; maxlength=&quot;14&quot; onfocus=&quot;Mcpf(this,this.value);&quot; onkeypress=&quot;Mcpf(this,this.value);&quot; onkeyup=&quot;CPF(&#39;Verificar&#39;);&quot; type=&quot;text&quot; /&gt;
Status: &lt;input disabled=&quot;disabled&quot; id=&quot;status&quot; size=&quot;6&quot; type=&quot;text&quot; /&gt;
&lt;input onclick=&quot;CPF(this.value)&quot; type=&quot;button&quot; value=&quot;Gerar&quot; /&gt;
&lt;input onclick=&quot;CPF(this.value)&quot; type=&quot;button&quot; value=&quot;Verificar&quot; /&gt;
&lt;/form&gt;&lt;br /&gt;
&lt;br /&gt;
é isso ai qual quer dúvida postem ai!</content><link rel='replies' type='text/html' href='http://diego-cipriano.blogspot.com/2010/09/validar-cpf.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8693998645778381089/posts/default/3239166755784182862'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8693998645778381089/posts/default/3239166755784182862'/><link rel='alternate' type='text/html' href='http://diego-cipriano.blogspot.com/2010/09/validar-cpf.html' title='Validar CPF'/><author><name>Diego Cipriano</name><uri>http://www.blogger.com/profile/04722694161845236185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5ZTH5xBau7PzLxWZtTJQQo9o8RY0hvYHV-nsoyEcIPuxuF9DYr3pxyLN1-m905CaffLbq2cdOguTEcJrlgEseCDKwawgj05TYO69quDlRHFsH0B7l94YjI501AZ7N_mk/s1600-r/perfil.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8693998645778381089.post-4639683285381117679</id><published>2010-09-25T19:27:00.003-03:00</published><updated>2010-09-28T12:08:38.820-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Criar captcha"/><category scheme="http://www.blogger.com/atom/ns#" term="php"/><title type='text'>2 - CAPTCHA COM PHP Quais funções vamos utilizar?</title><content type='html'>&lt;div class=&quot;anuncio_post&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;
&lt;!--
google_ad_client = &quot;pub-9413301928696699&quot;;
/* 300x250, criado 25/09/10 */
google_ad_slot = &quot;2527599026&quot;;
google_ad_width = 300;
google_ad_height = 250;
//--&gt;
&lt;/script&gt;&lt;br /&gt;
&lt;script src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot; type=&quot;text/javascript&quot;&gt;
&lt;/script&gt;&lt;/div&gt;Esse é o segundo post sobre como criar um &lt;b&gt;captach&lt;/b&gt; é para esclarecer quais funções vamos usar para ficar bem claro o que estamos fazendo.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;i&gt;Essas são as funções que vamos utilizar.&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;
strtolower() ou strtoupper()&lt;br /&gt;
array()&lt;br /&gt;
rand()&lt;br /&gt;
strlen()&lt;br /&gt;
imageloadfont()&lt;br /&gt;
ImageCreate()&amp;nbsp;ou&amp;nbsp;imagecreatetruecolor()&lt;br /&gt;
ImageColorAllocate()&lt;br /&gt;
imagearc()&lt;br /&gt;
ImageString()&lt;br /&gt;
ImagePNG()&lt;br /&gt;
ImageDestroy()&lt;br /&gt;
$copy()&lt;br /&gt;
&lt;br /&gt;
O&amp;nbsp;&lt;b&gt;strtolower()&lt;/b&gt; - Converte uma string para minúsculas&amp;nbsp;&amp;nbsp;e o&amp;nbsp;&lt;b&gt;strtoupper()&lt;/b&gt;&amp;nbsp;- Converte uma string para maiúsculas.&lt;br /&gt;
&lt;br /&gt;
Exemplo&lt;br /&gt;
&lt;pre&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;echo &lt;b&gt;strtolower(&quot;CAPATCHA&quot;);&lt;/b&gt;&lt;/span&gt;&lt;/pre&gt;O exemplo acima imprime:&amp;nbsp;&lt;b&gt;captcha&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
Exemplo:&lt;br /&gt;
&lt;pre&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;echo &lt;b&gt;strtolower(&quot;captcha&quot;);&lt;/b&gt;&lt;/span&gt;&lt;/pre&gt;O exemplo acima imprime:&amp;nbsp;&lt;b&gt;CAPATCHA &lt;/b&gt;então vamos escolher uma das duas para fazer um código que não diferencie maiúsculas de minúsculas.&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;
&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal;&quot;&gt;A função &lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal;&quot;&gt;&lt;b&gt;array() &lt;/b&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal;&quot;&gt;é onde nós vamos armazenar as vogais e&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal;&quot;&gt;consoante&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal;&quot;&gt;&amp;nbsp;paga futuramente gerar uma palavra aleatória.&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Exemplo:&lt;br /&gt;
&lt;pre&gt;echo array(&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal;&quot;&gt;&#39;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;b&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal;&quot;&gt;&#39;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;,&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal;&quot;&gt;&#39;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;B&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal;&quot;&gt;&#39;,&#39;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;c&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal;&quot;&gt;&#39;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;,&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal;&quot;&gt;&#39;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;C&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal;&quot;&gt;&#39;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;,&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal;&quot;&gt;&#39;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;cr&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal;&quot;&gt;&#39;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;)&lt;/pre&gt;Esse exemplo retorna Array&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;/b&gt;A função &lt;b&gt;rand() &lt;/b&gt;gera um número&amp;nbsp;aleatório&amp;nbsp;vamos utilizar para posicionar a palavra do &lt;b&gt;captcha&lt;/b&gt;&amp;nbsp;em posições diferentes e também os&amp;nbsp;círculos como também gerar palavras e&amp;nbsp;círculos&amp;nbsp;com cores diferentes.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgapVD1I2fhdzDZfzCw6KKZhoKJVilJeeOrbPspa-07sXmbTs1KkzBqgRIefxene-ihpL1oIZm89Vo1841Hzm8RiQe38qkGEfncuZchmXNkF-RewokI2iWLUtdSir4Sa_EZWtLEQStXgMY/s1600/captcha.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgapVD1I2fhdzDZfzCw6KKZhoKJVilJeeOrbPspa-07sXmbTs1KkzBqgRIefxene-ihpL1oIZm89Vo1841Hzm8RiQe38qkGEfncuZchmXNkF-RewokI2iWLUtdSir4Sa_EZWtLEQStXgMY/s1600/captcha.jpg&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A função &lt;b&gt;count() &lt;/b&gt;auxilia a função &lt;b&gt;rand()&lt;/b&gt; a selecionar as vogais e&amp;nbsp;consoante&amp;nbsp;da &lt;b&gt;array() &lt;/b&gt;para formar nossa palavra.&lt;br /&gt;
&lt;br /&gt;
Exemplo:&lt;br /&gt;
&lt;pre&gt;echo count(array(&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal;&quot;&gt;&#39;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;b&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal;&quot;&gt;&#39;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;,&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal;&quot;&gt;&#39;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;B&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal;&quot;&gt;&#39;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;,&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal;&quot;&gt;&#39;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;c&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal;&quot;&gt;&#39;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;,&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal;&quot;&gt;&#39;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;C&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal;&quot;&gt;&#39;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;,&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal;&quot;&gt;&#39;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;cr&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal;&quot;&gt;&#39;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;));&lt;/pre&gt;O exemplo acima retorna 5 é o número de&amp;nbsp;índices do &lt;b&gt;array().&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
A função &lt;b&gt;strlen() &lt;/b&gt;é&amp;nbsp;responsável&amp;nbsp;por contar quantos caracteres tem a nossa palavra e parar a função que gera a palavra quando&amp;nbsp;atingir&amp;nbsp;o número de caracteres&amp;nbsp;especificado&amp;nbsp;ou gerado em tempo de execução.&lt;br /&gt;
&lt;br /&gt;
Exemplo:&lt;br /&gt;
&lt;pre&gt;echo strlen(&#39;captch&#39;);&lt;/pre&gt;O exemplo retorna 6 esse é o nuúmero de caracteres da palavra &lt;b&gt;captch.&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;i&gt;A partir daqui não temos mais exemplos somente uma pequena descrição das funções.&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
A função &lt;b&gt;imageloadfont() &lt;/b&gt;carrega a fonte que vamos utilizar para criar a imagem da palavra.&lt;br /&gt;
&lt;br /&gt;
A função&lt;b&gt;&amp;nbsp;ImageCreate() ou imagecreatetruecolor()&lt;/b&gt;&amp;nbsp;retorna um identificador de imagem representando uma imagem .&lt;br /&gt;
&lt;br /&gt;
A função&lt;b&gt; ImageColorAllocate() &lt;/b&gt;&amp;nbsp;aloca cores dentro da imagem no formato RGB para ser usada na imagem.&lt;br /&gt;
&lt;br /&gt;
A função&amp;nbsp;&lt;b&gt;imagearc()&lt;/b&gt; cria circulos dentro da imagem.&lt;br /&gt;
&lt;br /&gt;
A função&amp;nbsp;&lt;b&gt;ImageString() &lt;/b&gt;cria texto dentro da imagem.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A função&lt;b&gt; ImagePNG() &lt;/b&gt;é quem determina qual formato será gerada a imagem vamos &amp;nbsp;passar dois&amp;nbsp;parâmetros&amp;nbsp;a variável onde esta armazenada a imagem e o nome da imagem.&lt;br /&gt;
&lt;br /&gt;
A função &lt;b&gt;ImageDestroy() &lt;/b&gt;esvazia a memória utilizada para criar essa imagem.&lt;br /&gt;
&lt;br /&gt;
A função&amp;nbsp;&lt;b&gt;copy() &lt;/b&gt;é usada para copiar a imagem para o local desejado&lt;br /&gt;
&lt;br /&gt;
Para acompanhar todos os&amp;nbsp;post relacionado a esse tema basta seguir esse link&amp;nbsp;&lt;a href=&quot;http://diego-cipriano.blogspot.com/search/label/Criar%20captcha&quot;&gt;Criar captcha&lt;/a&gt;</content><link rel='replies' type='text/html' href='http://diego-cipriano.blogspot.com/2010/09/2-captcha-com-php-quais-funcoes-vamos.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8693998645778381089/posts/default/4639683285381117679'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8693998645778381089/posts/default/4639683285381117679'/><link rel='alternate' type='text/html' href='http://diego-cipriano.blogspot.com/2010/09/2-captcha-com-php-quais-funcoes-vamos.html' title='2 - CAPTCHA COM PHP Quais funções vamos utilizar?'/><author><name>Diego Cipriano</name><uri>http://www.blogger.com/profile/04722694161845236185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5ZTH5xBau7PzLxWZtTJQQo9o8RY0hvYHV-nsoyEcIPuxuF9DYr3pxyLN1-m905CaffLbq2cdOguTEcJrlgEseCDKwawgj05TYO69quDlRHFsH0B7l94YjI501AZ7N_mk/s1600-r/perfil.JPG'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgapVD1I2fhdzDZfzCw6KKZhoKJVilJeeOrbPspa-07sXmbTs1KkzBqgRIefxene-ihpL1oIZm89Vo1841Hzm8RiQe38qkGEfncuZchmXNkF-RewokI2iWLUtdSir4Sa_EZWtLEQStXgMY/s72-c/captcha.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8693998645778381089.post-90809839235729247</id><published>2010-09-25T09:27:00.006-03:00</published><updated>2010-09-28T12:07:44.584-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Criar captcha"/><category scheme="http://www.blogger.com/atom/ns#" term="php"/><title type='text'>1 - CAPTCHA COM PHP -  Pequena descrção de captcha</title><content type='html'>&lt;div class=&quot;anuncio_post&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;
&lt;!--
google_ad_client = &quot;pub-9413301928696699&quot;;
/* 300x250, criado 25/09/10 */
google_ad_slot = &quot;2527599026&quot;;
google_ad_width = 300;
google_ad_height = 250;
//--&gt;
&lt;/script&gt;&lt;br /&gt;
&lt;script src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot; type=&quot;text/javascript&quot;&gt;
&lt;/script&gt;&lt;/div&gt;&lt;br /&gt;
Estou iniciando hoje uma série de post sobre&amp;nbsp;CAPTCHA até o final vamos aprender fazer um.&lt;br /&gt;
&lt;br /&gt;
CAPTCHA é um acrônimo da expressão &lt;b&gt;&quot;Completely Automated Public Turing test to tell Computers and Humans Apart&quot; (teste de Turing público completamente automatizado para diferenciação entre computadores e humanos) &lt;/b&gt;em outras palavras é um sistema para evitar que spammers certas operações constantemente em um&amp;nbsp;período&amp;nbsp;curto de tempo ou até mesmo que computadores realize essa operação e é ai que o&amp;nbsp;&lt;b&gt;captcha&lt;/b&gt;&amp;nbsp;entra ele pode ser uma&amp;nbsp;seqüencia de caracteres distorcida assim como uma operação matemática onde os números também venha distorcidos ou perguntas&amp;nbsp;aleatórias lembrando que a missão não é dificultar que humanos utilize o serviço pelo contrario tem que ser de fácil entendimento para humanos mas&amp;nbsp;difícil para os computadores. Veja a foto do nosso futuro captcha.&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgapVD1I2fhdzDZfzCw6KKZhoKJVilJeeOrbPspa-07sXmbTs1KkzBqgRIefxene-ihpL1oIZm89Vo1841Hzm8RiQe38qkGEfncuZchmXNkF-RewokI2iWLUtdSir4Sa_EZWtLEQStXgMY/s1600/captcha.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgapVD1I2fhdzDZfzCw6KKZhoKJVilJeeOrbPspa-07sXmbTs1KkzBqgRIefxene-ihpL1oIZm89Vo1841Hzm8RiQe38qkGEfncuZchmXNkF-RewokI2iWLUtdSir4Sa_EZWtLEQStXgMY/s1600/captcha.jpg&quot; style=&quot;cursor: move;&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;Até o&amp;nbsp;próximo&amp;nbsp;post. para acompanhar todos os&amp;nbsp;post relacionado a esse tema basta seguir esse link&amp;nbsp;&lt;a href=&quot;http://diego-cipriano.blogspot.com/search/label/Criar%20captcha&quot;&gt;Criar captcha&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://diego-cipriano.blogspot.com/2010/09/1-captcha-sua-origem.html#comment-form' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8693998645778381089/posts/default/90809839235729247'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8693998645778381089/posts/default/90809839235729247'/><link rel='alternate' type='text/html' href='http://diego-cipriano.blogspot.com/2010/09/1-captcha-sua-origem.html' title='1 - CAPTCHA COM PHP -  Pequena descrção de captcha'/><author><name>Diego Cipriano</name><uri>http://www.blogger.com/profile/04722694161845236185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5ZTH5xBau7PzLxWZtTJQQo9o8RY0hvYHV-nsoyEcIPuxuF9DYr3pxyLN1-m905CaffLbq2cdOguTEcJrlgEseCDKwawgj05TYO69quDlRHFsH0B7l94YjI501AZ7N_mk/s1600-r/perfil.JPG'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgapVD1I2fhdzDZfzCw6KKZhoKJVilJeeOrbPspa-07sXmbTs1KkzBqgRIefxene-ihpL1oIZm89Vo1841Hzm8RiQe38qkGEfncuZchmXNkF-RewokI2iWLUtdSir4Sa_EZWtLEQStXgMY/s72-c/captcha.jpg" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8693998645778381089.post-8499365048621049530</id><published>2010-09-24T13:50:00.006-03:00</published><updated>2010-09-25T12:04:52.779-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="banco de dados"/><category scheme="http://www.blogger.com/atom/ns#" term="php"/><title type='text'>Como armazenar dados no BD sem correr o risco de sofrer sql injection inclusive aspas simples, duplas e tags?</title><content type='html'>&lt;div class=&quot;anuncio_post&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;
&lt;!--
google_ad_client = &quot;pub-9413301928696699&quot;;
/* 300x250, criado 25/09/10 */
google_ad_slot = &quot;2527599026&quot;;
google_ad_width = 300;
google_ad_height = 250;
//--&gt;
&lt;/script&gt;&lt;br /&gt;
&lt;script src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot; type=&quot;text/javascript&quot;&gt;
&lt;/script&gt;&lt;/div&gt;As vezes é preciso guardar fielmente os dados que o usuário passa para seu banco de dados para depois&amp;nbsp;devolve-lo&amp;nbsp;da forma que ele postou e se você simplesmente deixar-lo livre para inserir os dados de qual quer maneira um usuário com&amp;nbsp;espírito&amp;nbsp;de porco pode simplesmente&amp;nbsp;apagar&amp;nbsp;toda a tabela onde fica armazenado esses dados utilizando técnicas de  sql injection então&lt;br /&gt;
Para fazer tal coisa sem correr riscos é muito simples basta aplicar uma&amp;nbsp;criptografia&amp;nbsp;nos dados antes de inserir no banco de dados caso tenha alguma tag que você queira eliminar(impedir&amp;nbsp;o seu uso) basta usar as&amp;nbsp;expressões&amp;nbsp;regulares para fazer isso então vamos lá.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;O script completo no está final do post&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
Vou disponibilizar a função &lt;strong&gt;anti_sql_injection&lt;/strong&gt; de duas maneiras uma que elimina as tags&amp;nbsp;indesejáveis&amp;nbsp;e uma outra caso você queira que a tag não seja executada mas que apareça como a pessoa digitou nos 2 exemplos vou utilizar a tag &amp;lt;script&amp;gt; &amp;lt;/script&amp;gt; como indesejada mas você pode colocar quantas tags quiser como indesejada.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Primeiro temos essa que&amp;nbsp;mentem&amp;nbsp;a tag mas não a utiliza. &lt;br /&gt;
&lt;pre&gt;&amp;lt;?php
function anti_sql_injection ($str) {
 $str = preg_replace(&quot;[&amp;lt;script&amp;gt;]&quot;, &quot;&amp;amp;lt;script&amp;amp;gt;&quot;, $str);
 $str = preg_replace(&quot;[/&amp;lt;script&amp;gt;]&quot;, &quot;&amp;amp;lt;/script&amp;amp;gt;&quot;, $str);
 $str = base64_encode($str);   
 return $str;
}
?&amp;gt;
&lt;/pre&gt;No exemplo acima se você digitar &amp;lt;script&amp;gt; alert(&quot;1&quot;) &amp;lt;/script&amp;gt; &amp;lt;strong&amp;gt;O rato roeu a roupa do rei de roma&amp;lt;/strong&amp;gt; o resultado será:&lt;br /&gt;
&amp;lt;script&amp;gt; alert(&quot;1&quot;) &amp;lt;/script&amp;gt; &lt;strong&gt;O rato roeu a roupa do rei de roma&lt;/strong&gt;&lt;br /&gt;
Depois temos essa que elimina as tags indesejadas &lt;br /&gt;
&lt;pre&gt;&amp;lt;?php
function anti_sql_injection ($str) {
 $str = preg_replace(&quot;[&amp;lt;script&amp;gt;]&quot;, &quot;&quot;, $str);
 $str = preg_replace(&quot;[/&amp;lt;script&amp;gt;]&quot;, &quot;&quot;, $str);
 $str = base64_encode($str);   
 return $str;
}
?&amp;gt;
&lt;/pre&gt;No exemplo acima se você digitar &amp;lt;script&amp;gt; alert(&quot;1&quot;) &amp;lt;/script&amp;gt; &amp;lt;strong&amp;gt;O rato roeu a roupa do rei de roma&amp;lt;/strong&amp;gt; o resultado será:&lt;br /&gt;
alert(&quot;1&quot;)  &lt;strong&gt;O rato roeu a roupa do rei de roma&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
Para reverter a operação e mostrar ao usuário é so chamar a função &lt;strong&gt;TrataDados($str)&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;&amp;lt;?php
function TrataDados($str) {
  
 $str = base64_decode($str);
 return $str;
}
?&amp;gt;
&lt;/pre&gt;&lt;iframe frameborder=&quot;0&quot; height=&quot;450&quot; scrolling=&quot;no&quot; src=&quot;http://www.diegocipriano.com/blog/sqlinjection.php&quot; width=&quot;450&quot;&gt;&lt;/iframe&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.diegocipriano.com/blog/sqlinjection.zip&quot;&gt;Código completo&lt;/a&gt;</content><link rel='replies' type='text/html' href='http://diego-cipriano.blogspot.com/2010/09/como-armazenar-dados-no-bd-sem-correr-o.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8693998645778381089/posts/default/8499365048621049530'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8693998645778381089/posts/default/8499365048621049530'/><link rel='alternate' type='text/html' href='http://diego-cipriano.blogspot.com/2010/09/como-armazenar-dados-no-bd-sem-correr-o.html' title='Como armazenar dados no BD sem correr o risco de sofrer sql injection inclusive aspas simples, duplas e tags?'/><author><name>Diego Cipriano</name><uri>http://www.blogger.com/profile/04722694161845236185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5ZTH5xBau7PzLxWZtTJQQo9o8RY0hvYHV-nsoyEcIPuxuF9DYr3pxyLN1-m905CaffLbq2cdOguTEcJrlgEseCDKwawgj05TYO69quDlRHFsH0B7l94YjI501AZ7N_mk/s1600-r/perfil.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8693998645778381089.post-8279037571439625949</id><published>2010-09-23T15:46:00.001-03:00</published><updated>2010-09-25T12:06:45.153-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ajax"/><title type='text'>Ajax sem segredo</title><content type='html'>&lt;div class=&quot;anuncio_post&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;
&lt;!--
google_ad_client = &quot;pub-9413301928696699&quot;;
/* 300x250, criado 25/09/10 */
google_ad_slot = &quot;2527599026&quot;;
google_ad_width = 300;
google_ad_height = 250;
//--&gt;
&lt;/script&gt;&lt;br /&gt;
&lt;script src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot; type=&quot;text/javascript&quot;&gt;
&lt;/script&gt;&lt;/div&gt;Para compreender perfeitamente você deve atender aos requisitos abaixo.&lt;br /&gt;
&lt;strong&gt;Requisitos minimos:&lt;/strong&gt; ter noções básicas de HTML.&lt;br /&gt;
&lt;strong&gt;Requisitos recomendado:&lt;/strong&gt; ter noções básicas de HTML, saber o que é funções javascript e como&amp;nbsp;chama-las.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;&lt;em&gt;Quem não entender pode postar suas dúvidas que estarei&amp;nbsp;respondendo&amp;nbsp;às aqui mesmo.&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
Vou mostrar um exemplo onde você seleciona um estado e o ajax busca as cidades do estado.&lt;br /&gt;
&lt;br /&gt;
O que é ajax?&lt;br /&gt;
Grande parte das pessoas que iniciam a programação na web se perguntam que linguagem de programação é essa? Calma filho ajax não é uma nova linguagem de programação é apenas uma&amp;nbsp;técnica&amp;nbsp;de usar o java script para fazer páginas&amp;nbsp;dinâmicas&amp;nbsp;ou seja atualizar os dados na tela sem precisar carregar a página toda novamente então vamos lá para um exemplo simples como todos já sabem só se começa pelo começo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Primeiramente vamos criar o nosso script que pode ser criado em um arquivo .js ou declarar no cabeçalho da sua página (entre as TAG&#39;s &amp;lt;head&amp;gt;&amp;lt;script&amp;gt;...&amp;lt;/script&amp;gt;&amp;lt;/head&amp;gt; vou explicar um pouco mais logo abaixo.&lt;br /&gt;
&lt;pre&gt;&amp;lt;script&amp;gt;
var ajax;
var requeste;

function RequisicaoAjax(tipo,url,status){
 // criamos o objeto
 if(window.XMLHttpRequest){
  ajax = new XMLHttpRequest();
 }else
 {
  if(window.ActiveXObject){
   ajax = new ActiveXObject(&quot;Msxml2.XMLHTTP&quot;);
   if(!ajax){
    ajax = new ActiveXObject(&quot;Microsoft.XMLHTTP&quot;);
   }
  }
 }
 // verificamos se o objeto foi criado
 if(ajax){
  inicia(tipo,url,status); // chama a função que inicia o objeto
 }else{
  alert(&quot;Não possui suporte a AJAX&quot;);
 }
}

// inicia o objeto e envia a requisição
function inicia(tipo,url,bool){
 ajax.onreadystatechange=trataResponse;
 ajax.open(tipo,url,bool);
 ajax.setRequestHeader(&quot;Content-Type&quot;, &quot;application/x-www-form-urlencoded; charset=UTF-8&quot;); 
 ajax.send(requeste);
}
function enviaDados(url){
 criaQueryString();
 RequisicaoAjax(&quot;POST&quot;,url,true);
}

function criaQueryString(){
 requeste=&quot;&quot;;
 var frm = document.forms[0];
 var numElementos = frm.elements.length;
 for(var i=0;i &amp;lt; numElementos;i++){
  if(i&amp;lt; numElementos-1){
   requeste += frm.elements[i].name+&quot;=&quot;+
   encodeURIComponent(frm.elements[i].value)+&quot;&amp;amp;&quot;;
  }else{
    requeste += frm.elements[i].name+&quot;=&quot;+
    encodeURIComponent(frm.elements[i].value);
  }
 }
}
function trataResponse(){
 if(ajax.readyState==4){
document.getElementById(&quot;aguarde&quot;).innerHTML=&quot;aguarde...&quot;;
  if(ajax.status ==200){
   document.getElementById(&quot;aguarde&quot;).innerHTML=&quot;&quot;;
   document.getElementById(&quot;result&quot;).innerHTML = ajax.responseText;
  }else{
   document.getElementById(&quot;aguarde&quot;).innerHTML=&quot;Erro na requisição&quot;+ajax.responseText;
  }
 }
}

function CapturaDados(form)// Função que pega todos os dados do formulário
{
 var url = form.name; // pega o nome do formulário
//captura os dados dos select
 elementosForm = form.getElementsByTagName(&quot;select&quot;);
 for(i=0; i &amp;lt; elementosForm.length; i++){
  
  if(elementosForm[i].value != &quot;&quot;){
   url = url + elementosForm[i].name + &quot;=&quot; + elementosForm[i].value + &quot;&amp;amp;&quot;;
  }
 }
// chama a requisição
RequisicaoAjax(&quot;GET&quot;,url,true);
}
&amp;lt;/script&amp;gt;
&lt;/pre&gt;&lt;strong&gt;Agora&lt;/strong&gt; é só criar o formulário e pronto virão como é fácil &lt;br /&gt;
&lt;pre&gt;&amp;lt;form name=&quot;AulaAjax.php?&quot; method=&quot;post&quot; action=&quot;javascript:void%200&quot; onsubmit=&quot;return false;&quot;&amp;gt;
Estado:
&amp;lt;select onchange=&quot;CapturaDados(this.form)&quot; name=&quot;estado&quot;&amp;gt;
 &amp;lt;option value=&quot;&quot;&amp;gt;Selecione...&amp;lt;/option&amp;gt;
    &amp;lt;option value=&quot;AC&quot;&amp;gt;ACRE&amp;lt;/option&amp;gt;
    &amp;lt;option value=&quot;AL&quot;&amp;gt;ALAGOAS&amp;lt;/option&amp;gt;
    &amp;lt;option value=&quot;BA&quot;&amp;gt;BAHÍA&amp;lt;/option&amp;gt;
&amp;lt;/select&amp;gt;
Cidade:
&amp;lt;select id=&quot;result&quot;&amp;gt;
&amp;lt;/select&amp;gt;
&amp;lt;br /&amp;gt;
&amp;lt;input type=&quot;submit&quot; onclick=&quot;CapturaDados(this.form)&quot; value=&quot;Enviar&quot; /&amp;gt;
&amp;lt;/form&amp;gt;
&lt;/pre&gt;Veja exemplo funcionando&lt;br /&gt;
&lt;iframe frameborder=&quot;0&quot; src=&quot;http://www.diegocipriano.com/blog/ajax.html&quot; height=&quot;120&quot; width=&quot;280&quot;&gt;&lt;/iframe&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.diegocipriano.com/blog/Archive.zip&quot;&gt;Dowload do exemplo&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;OBS: &lt;/b&gt;essa função não permite a requisição em páginas fora do seu&amp;nbsp;domínio.&lt;br /&gt;
&lt;br /&gt;
Em breve vou estar postando como utilizar JSON com PHP e AJAX.</content><link rel='replies' type='text/html' href='http://diego-cipriano.blogspot.com/2010/09/ajax-sem-segredo.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8693998645778381089/posts/default/8279037571439625949'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8693998645778381089/posts/default/8279037571439625949'/><link rel='alternate' type='text/html' href='http://diego-cipriano.blogspot.com/2010/09/ajax-sem-segredo.html' title='Ajax sem segredo'/><author><name>Diego Cipriano</name><uri>http://www.blogger.com/profile/04722694161845236185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5ZTH5xBau7PzLxWZtTJQQo9o8RY0hvYHV-nsoyEcIPuxuF9DYr3pxyLN1-m905CaffLbq2cdOguTEcJrlgEseCDKwawgj05TYO69quDlRHFsH0B7l94YjI501AZ7N_mk/s1600-r/perfil.JPG'/></author><thr:total>0</thr:total></entry></feed>