<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Cauan Cabral &#187; oop</title>
	<atom:link href="http://cauancabral.net/tag/oop/feed/" rel="self" type="application/rss+xml" />
	<link>http://cauancabral.net</link>
	<description>Geek, nerd e apaixonado por tecnologia</description>
	<lastBuildDate>Sun, 06 May 2012 23:53:19 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>E os posts?</title>
		<link>http://cauancabral.net/2008/01/21/e-os-posts/</link>
		<comments>http://cauancabral.net/2008/01/21/e-os-posts/#comments</comments>
		<pubDate>Mon, 21 Jan 2008 20:43:04 +0000</pubDate>
		<dc:creator>Cauan Cabral</dc:creator>
				<category><![CDATA[Programação]]></category>
		<category><![CDATA[Sem categoria]]></category>
		<category><![CDATA[oop]]></category>

		<guid isPermaLink="false">http://geek.cauancabral.net/2008/01/21/e-os-posts/</guid>
		<description><![CDATA[Calma, tudo ao seu tempo. Já falei aqui que quero postar sobre Orientação a Objetos, sobre os livros que comprei recentemente, sobre o Joomla! e claro, continuar os artigos sobre validação ( afinal, temos de concluir o que iniciamos, não &#8230; <a href="http://cauancabral.net/2008/01/21/e-os-posts/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Calma, tudo ao seu tempo.</p>
<p>Já falei aqui que quero postar sobre Orientação a Objetos, sobre os livros que comprei recentemente, sobre o Joomla! e claro, continuar os artigos sobre validação ( afinal, temos de concluir o que iniciamos, não é? ). Meu próximo post será a continuação dos posts sobre validação. Não, eu ainda não o escrevi, mas o farei ainda hoje, mais tardar amanhã. Mas apesar de não ter escrito, já sei o que farei.</p>
<p>Em seguida, devo escrever um post sobre o Joomla! ( estou fazendo aquele componente que comentei anteriormente ), e está sendo uma experiência legal.</p>
<p>Neste meio tempo, provavelmente haverão alguns posts menos nerds, ou geek como preferirem. Minha vida acadêmica está voltando ao normal e com ela minhas responsabilidades com o Movimento Estudantil ( não, eu não fiquei a toa minhas férias e deixei tudo parado, não totalmente ). E com maior vivencia do assunto, as idéias, conflitos e reflexões vão &#8220;aflorando&#8221; e pretendo usar este espaço como válvula de escape, afinal, ninguém é de ferro &#8211; eu muito menos.</p>
<p>Está chegando a era da filosofia nerd <a href="http://politeia.cauancabral.net" onclick="pageTracker._trackPageview('/outgoing/politeia.cauancabral.net?referer=');">neste blog</a> ( não precisam se assustar, não serei tão incisivo, não no começo ), mas o mundo nerd não perderá mais um espaço, continuarei falando MUITO sobre programação, tecnologia ( que não comentei ainda ) e afins.</p>
<p>Até breve.</p>
<div id="crp_related"><h3>Outros posts que podem interessar:</h3><ul><li><a href="http://cauancabral.net/2008/01/17/sentiram-falta/" rel="bookmark" class="crp_title">Sentiram falta?</a></li><li><a href="http://cauancabral.net/2008/02/25/falta-de-tempo/" rel="bookmark" class="crp_title">Falta de tempo&#8230;</a></li><li><a href="http://cauancabral.net/2008/05/08/voltando-a-ativa-no-bom-sentido/" rel="bookmark" class="crp_title">Voltando a ativa ( no bom sentido )</a></li><li><a href="http://cauancabral.net/2008/01/06/sem-assunto-parte-3/" rel="bookmark" class="crp_title">Sem assunto &#8211; parte 3</a></li><li><a href="http://cauancabral.net/2008/01/03/sem-assunto/" rel="bookmark" class="crp_title">Sem assunto</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://cauancabral.net/2008/01/21/e-os-posts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Validação de dados em PHP5 &#8211; Parte 2</title>
		<link>http://cauancabral.net/2008/01/03/validacao-de-dados-em-php5-parte-2/</link>
		<comments>http://cauancabral.net/2008/01/03/validacao-de-dados-em-php5-parte-2/#comments</comments>
		<pubDate>Thu, 03 Jan 2008 22:59:33 +0000</pubDate>
		<dc:creator>Cauan Cabral</dc:creator>
				<category><![CDATA[Desenvolvimento Web]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[er]]></category>
		<category><![CDATA[oop]]></category>
		<category><![CDATA[php5]]></category>
		<category><![CDATA[segurança]]></category>
		<category><![CDATA[validação]]></category>

		<guid isPermaLink="false">http://geek.cauancabral.net/2008/01/03/validacao-de-dados-em-php5-parte-2/</guid>
		<description><![CDATA[Continuando a série de artigos sobre validação de dados ( veja a primeira parte ) com PHP5. Nota: usarei “cliente” para me referir a um usuário do sistema, ou mesmo outro sistema que interaja conosco. Usarei também ER para designar &#8230; <a href="http://cauancabral.net/2008/01/03/validacao-de-dados-em-php5-parte-2/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal">Continuando a série de artigos sobre validação de dados ( veja a primeira parte ) com PHP5.</p>
<p class="MsoNormal"><em>Nota: usarei “cliente” para me referir a um usuário do sistema, ou mesmo outro sistema que interaja conosco. Usarei também ER para designar expressão regular, que é o assunto base <a href="http://cauancabral.wordpress.com/2008/01/02/validacao-de-dados-em-php5-parte-1/" title="Validação de Dados em PHP5 - Parte 1" onclick="pageTracker._trackPageview('/outgoing/cauancabral.wordpress.com/2008/01/02/validacao-de-dados-em-php5-parte-1/?referer=');">deste post</a>.</em></p>
<p class="MsoNormal"><a href="http://cauancabral.wordpress.com/2008/01/02/validacao-de-dados-em-php5-parte-1/" title="Validação de Dados em PHP5 - Parte 1" onclick="pageTracker._trackPageview('/outgoing/cauancabral.wordpress.com/2008/01/02/validacao-de-dados-em-php5-parte-1/?referer=');">Anteriormente</a>, havíamos abordado uma validação mais geral, onde tínhamos de aceitar vários tipos de dados.</p>
<p class="MsoNormal">Agora, vamos abordar uma situação onde esperamos um dado específico vindo do cliente &#8211; usarei “cliente” para referir tanto ao usuário do sistema quanto outros sistemas &#8211; por exemplo, em um campo de formulário, onde esperamos um nome ou um email.</p>
<p>Um dos recursos mais eficientes em se tratando de validação é o uso de <em>expressões regulares</em>. E é com isto que iremos trabalhar.</p>
<p class="MsoNormal">Vamos a uma definição:</p>
<p class="MsoNormal">“Uma <strong>expressão regular</strong>, na <a href="http://pt.wikipedia.org/wiki/Inform%C3%A1tica" title="Informática" onclick="pageTracker._trackPageview('/outgoing/pt.wikipedia.org/wiki/Inform_C3_A1tica?referer=');">Informática</a>, define um padrão a ser usado para procurar ou substituir palavras ou grupos de palavras. É um meio preciso de se fazer buscas de determinadas porções de texto.” Fonte: <a href="http://pt.wikipedia.org/wiki/Express%C3%A3o_regular" title="Enciclopédia Livre - Expressões Regulares" onclick="pageTracker._trackPageview('/outgoing/pt.wikipedia.org/wiki/Express_C3_A3o_regular?referer=');">Wikipédia.</a></p>
<p class="MsoNormal">Então uma <em>expressão regular</em> é um padrão. Por isso não podemos utilizar uma expressão regular para validar algo que desconhecemos, porque seria muito difícil ou mesmo impossível encontrar um padrão para tudo.</p>
<p class="MsoNormal">Não pretendo explicar os fundamentos de uma expressão regular, se desejar alguma referência, recomendo o site: <a href="http://guia-er.sourceforge.net/" title="Guia de Expressões Regulares" onclick="pageTracker._trackPageview('/outgoing/guia-er.sourceforge.net/?referer=');">http://guia-er.sourceforge.net</a></p>
<p class="MsoNormal">Como podemos utilizar uma expressão regular para validar um campo de um formulário?<span>  </span>Precisamos de uma função do PHP que faça esta verificação para a gente, uma função que compare nossa expressão regular com o valor a ser testado.</p>
<p class="MsoNormal">O PHP oferece algumas funções para isso, vejamos duas delas:</p>
<p class="MsoNormal">&nbsp;</p>
<p class="MsoNormal"><strong>ereg</strong>( string $expressão<span>  </span>, string $variável<span>  </span>[, array $registros<span>  </span>] )</p>
<p class="MsoNormal">&nbsp;</p>
<p class="MsoNormal">Retorna <tt><strong><span style="font-family: 'Times New Roman'">TRUE</span></strong></tt> se <tt><em><span style="font-family: 'Times New Roman'">$variável</span></em></tt> “bater” com <tt><em><span style="font-family: 'Times New Roman'">$expressão</span></em></tt>, e <tt><strong><span style="font-family: 'Times New Roman'">FALSE</span></strong></tt> se a expressão não casar ou se acontecer algum erro. <a href="http://br.php.net/manual/pt_BR/function.ereg.php" title="Referência da função em Português" target="_blank" onclick="pageTracker._trackPageview('/outgoing/br.php.net/manual/pt_BR/function.ereg.php?referer=');">referência</a></p>
<blockquote><p> //nossa ER, um padrão para CEP<br />
$cepER = &#8216;^[0-9]{5}\-[0-9]{3}$&#8217;;<br />
//vamos supor que temos a variável $_POST['cep'] vinda de um formulário</p>
<p>//fazemos então a verificação<br />
if( ereg( $cepER, $_POST['cep'] ) )<br />
echo &#8220;Isso parece um CEP válido&#8221;;<br />
else<br />
echo &#8220;Isso não é um CEP válido&#8221;;</p></blockquote>
<p class="MsoNormal">Por que não podemos afirmar se o CEP está correto? Simplesmente porque com a ER analisamos apenas a forma da variável, ou seja, se ela tem o mesmo número de caracteres, se são do mesmo tipo e estão nas mesmas posições. Para afirmarmos com segurança que o CEP é válido, teríamos de verificar se o valor está cadastrado nos Correios ou em alguma outra fonte segura. Mas isso foge ao nosso escopo.</p>
<p class="MsoNormal">Essa função <strong>ereg </strong>permite fazer a buscar por um padrão em uma string utilizando padrão POSIX, mas o PHP fornece outra função para a mesma tarefa, com desempenho melhor, e baseado no padrão PCRE ( compatível com PERL ). Esta função é a <strong>preg_match</strong>.</p>
<p class="MsoNormal"><strong>preg_match</strong>( string $expressão , string $variável [, array &amp;$matches [, int $flags [, int $offset ]]] )</p>
<p class="MsoNormal">Retorna 1 se a $variável “bater” com a $expressão, e 0 caso contrário. <a href="http://br.php.net/manual/pt_BR/function.preg-match.php" title="Referência da função em inglês" target="_blank" onclick="pageTracker._trackPageview('/outgoing/br.php.net/manual/pt_BR/function.preg-match.php?referer=');">referência</a>.</p>
<p class="MsoNormal">Vamos ver o uso do preg_match na mesma situação do exemplo anterior:</p>
<blockquote>
<p class="MsoNormal">//nossa ER, um padrão para CEP<br />
$cepER = ‘/[0-9]{5}\-[0-9]{3}/’;</p>
<p>//vamos supor que temos a variável $_POST['cep'] vinda de um formulário<br />
//fazemos então a verificação, poderíamos omitir o &#8220;== 1&#8243;, já que o PHP converte 0 e 1 para <em>false</em> e <em>true</em> respectivamente<br />
if( preg_match ( $cepER, $_POST[‘cep’] ) == 1 )<br />
echo “Isso parece um CEP válido”;<br />
else<br />
echo “Isso não é um CEP válido”;</p></blockquote>
<p class="MsoNormal">Notem a diferença na nossa ER. Mudamos os caracteres de inicio e final, isto acontece por conta da diferença entre os padrões que as funções utilizam.</p>
<p class="MsoNormal">O artigo já está muito grande, continuarei a falar sobre ER nos próximos artigos. Vamos ver como criar ER para validar telefone, email e por último CPF ( que incluiremos outro teste de validação além da ER ).</p>
<p class="MsoNormal">Uma última dica, utilizem ER juntamente com o método do artigo anterior, para aumentar a segurança de seu sistema ( pense em outras formas para isso também ).</p>
<p class="MsoNormal">Por enquanto é só.</p>
<p class="MsoNormal">Não esqueçam de validar tudo.</p>
<div id="crp_related"><h3>Outros posts que podem interessar:</h3><ul><li><a href="http://cauancabral.net/2008/01/02/validacao-de-dados-em-php5-parte-1/" rel="bookmark" class="crp_title">Validação de dados em PHP5 &#8211; Parte 1</a></li><li><a href="http://cauancabral.net/2008/02/10/validao-de-dados-em-php5-final/" rel="bookmark" class="crp_title">Valida&#231;&#227;o de dados em PHP5 &#8211; final</a></li><li><a href="http://cauancabral.net/2008/01/23/validao-de-dados-em-php5-parte-3/" rel="bookmark" class="crp_title">Valida&#231;&#227;o de dados em PHP5 &#8211; Parte 3</a></li><li><a href="http://cauancabral.net/2008/09/21/desenvolvimento-rapido/" rel="bookmark" class="crp_title">Desenvolvimento rápido</a></li><li><a href="http://cauancabral.net/2009/02/25/cakephp-duvidas-comuns-2/" rel="bookmark" class="crp_title">CakePHP &#8211; Dúvidas Comuns #2</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://cauancabral.net/2008/01/03/validacao-de-dados-em-php5-parte-2/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Sem assunto</title>
		<link>http://cauancabral.net/2008/01/03/sem-assunto/</link>
		<comments>http://cauancabral.net/2008/01/03/sem-assunto/#comments</comments>
		<pubDate>Thu, 03 Jan 2008 17:44:29 +0000</pubDate>
		<dc:creator>Cauan Cabral</dc:creator>
				<category><![CDATA[Livros]]></category>
		<category><![CDATA[oop]]></category>

		<guid isPermaLink="false">http://geek.cauancabral.net/2008/01/03/sem-assunto/</guid>
		<description><![CDATA[Um dia quente, muito quente. Sem nada interessante pra fazer. Podia estar a beira de uma praia, rio, piscina ou qualquer fonte de água. Mas não, estou em casa, dentro de um quarto quente, em frente a um computador procurando &#8230; <a href="http://cauancabral.net/2008/01/03/sem-assunto/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Um dia quente, muito quente.</p>
<p>Sem nada interessante pra fazer. Podia estar a beira de uma praia, rio, piscina ou qualquer fonte de água. Mas não, estou em casa, dentro de um quarto quente, em frente a um computador procurando algo interessante. Sem sucesso.</p>
<p>Acaba de chegar um livro nerd que comprei: <a href="http://geek.cauancabral.net/wp-admin/PHP%20Programando%20com%20Orienta%C3%A7%C3%A3o%20a%20Objetos" title="Livro de PHP" target="_blank" onclick="pageTracker._trackPageview('/outgoing/geek.cauancabral.net/wp-admin/PHP_20Programando_20com_20Orienta_C3_A7_C3_A3o_20a_20Objetos?referer=');">PHP Programando com Orientação a Objetos</a> &#8230; me pareceu muito interessante, já dei uma folheada, mas neste calor, não tem como ficar lendo. Não tenho ar-condicionado.</p>
<p>Pelo menos uma coisa boa aconteceu hoje, entrei no internet banking e fui ver meu saldo. Adivinhem, meu pouco dinheiro não está sendo tributado pela CPMF, pois é, como é sabido pela maioria, desde o dia 1º de Janeiro de 2008 estamos livres desta extorsão, vamos ver quanto tempo isso dura. Na verdade já não dura muito, porque o IOF e outros impostos foram aumentados, nada que tenha o mesmo efeito que a CPMF tinha, mas já estão arrumando um jeito de não perder o peixe.</p>
<p>Segundo um instituto aí de estudos tributários ( não me lembro onde li, acho que no Terra ), os encargos pagos em média por uma pessoa com a CPMF era de 200 reais ao ano, sim, isso só da CPMF, fora o resto dos impostos. Agora com o IOF maior, vamos pagar em média 40 reais no ano. Melhorou, mas ainda tem muito para melhorar.</p>
<p>Falta um pouco de interesse da população, um pouco de vontade política e de cunho social. Falta vergonha na cara para exigir o que é seu.</p>
<p>Bom, falei tudo isso porque está quente. Muito quente.</p>
<div id="crp_related"><h3>Outros posts que podem interessar:</h3><ul><li><a href="http://cauancabral.net/2008/01/04/sem-assunto-2/" rel="bookmark" class="crp_title">Sem assunto &#8211; parte 2</a></li><li><a href="http://cauancabral.net/2012/04/20/pedalando-primeiras-impressoes/" rel="bookmark" class="crp_title">Pedalando: Primeiras impressões</a></li><li><a href="http://cauancabral.net/2008/01/18/novidades/" rel="bookmark" class="crp_title">Novidades&#8230;</a></li><li><a href="http://cauancabral.net/2008/01/21/e-os-posts/" rel="bookmark" class="crp_title">E os posts?</a></li><li><a href="http://cauancabral.net/2012/04/25/pedalando-segundas-impressoes/" rel="bookmark" class="crp_title">Pedalando: Segundas impressões</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://cauancabral.net/2008/01/03/sem-assunto/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

