<?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>Como Criar Um Site, Blog ou Loja Virtual Gratis - WebMaster.pt &#187; Programação</title>
	<atom:link href="http://www.webmaster.pt/categoria/programacao/feed" rel="self" type="application/rss+xml" />
	<link>http://www.webmaster.pt</link>
	<description>Aprenda Como Criar Um Site, Blog ou Loja Virtual com WordPress e Joomla e Ganhar Dinheiro Online</description>
	<lastBuildDate>Mon, 23 Jan 2012 22:14:53 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Menu Espetacular Com Plugin jQuery MobilyBlocks</title>
		<link>http://www.webmaster.pt/menu-plugin-jquery-mobilyblocks-13247.html</link>
		<comments>http://www.webmaster.pt/menu-plugin-jquery-mobilyblocks-13247.html#comments</comments>
		<pubDate>Wed, 04 May 2011 09:16:30 +0000</pubDate>
		<dc:creator>Tárcio Zemel</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Scripts]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://www.webmaster.pt/?p=13247</guid>
		<description><![CDATA[Aprenda a apresentar listas não ordenadas através duma animação circular espetacular com o plugin para jQuery MobilyBlocks-<p><a href="http://www.webmaster.pt/menu-plugin-jquery-mobilyblocks-13247.html">Menu Espetacular Com Plugin jQuery MobilyBlocks</a> &eacute; um artigo da nossa comunidade: <a href="http://www.webmaster.pt">Webmaster.pt Marketocracia Digital</a></p>

Related posts:<ol>
<li><a href='http://www.webmaster.pt/enquete-animada-jquery-php-9574.html' rel='bookmark' title='Enquete Animada Com jQuery E PHP &#8211; Efeito Espetacular!'>Enquete Animada Com jQuery E PHP &#8211; Efeito Espetacular!</a></li>
<li><a href='http://www.webmaster.pt/notificacoes-interativas-slidenote-12003.html' rel='bookmark' title='Notificações Interativas Com SlideNote &#8211; Plugin jQuery'>Notificações Interativas Com SlideNote &#8211; Plugin jQuery</a></li>
<li><a href='http://www.webmaster.pt/avisos-personalizados-plugin-jquery-humanized-messages-12344.html' rel='bookmark' title='Avisos Personalizados Com Plugin jQuery Humanized Messages'>Avisos Personalizados Com Plugin jQuery Humanized Messages</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.webmaster.pt/wp-content/uploads/2011/04/menus-surpreendentes-mobilyblocks.jpg" alt="Menus surpreendentes com MobilyBlocks: exemplo" width="150" height="150" class="aligncenter size-full wp-image-13262" /></p>
<p>Já há alguns artigos temos falado da importância de se apresentar elementos/efeitos <strong>diferentes</strong> e <strong>interessantes</strong> nos sites. Atualmente, com, literalmente, milhões de sites semelhantes, as diferenças e detalhes positivos fazem a diferença.</p>
<p>Gostaria de apresentar uma dessas &#8220;alternativas&#8221; para se fazer algo inovador nos sites, que é apresentar listas não ordenadas de forma completamente diferente do que você já viu usando o plugin para jQuery <strong>MobilyBlocks</strong>.</p>
<p>O MobilyBlocks permite apresentar listas não-ordenadas através de uma <strong>animação circular</strong>. Seu visitante pensará que vai encontrar mais do mesmo, mas vai se surpreender bastante ao se deparar com este <strong>efeito incrível</strong>!</p>
<h2>Como usar o MobilyBlocks</h2>
<p>A primeira coisa é <a href="http://playground.mobily.pl/assets/files/demo/blocks/mobilyblocks.zip">fazer o download MobilyBlocks</a>. No arquivo compactado você encontrará algumas pastas com arquivos além dos estritamente necessários (pois vem junto um exemplo para demonstração e estudo). Na verdade, os arquivo essenciais para o funcionando do plugin são apenas 3, que devem ser inseridos nas páginas de seu site que conterão o efeito (obviamente respeito a estrutura de diretórios de seu próprio projeto):</p>
<p><pre><code><br />
&lt;link href=&quot;css/default.css&quot; rel=&quot;stylesheet&quot; type=&quot;text/css&quot; /&gt;<br />
&lt;script src=&quot;js/jquery.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;<br />
&lt;script src=&quot;js/mobilyblocks.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;<br />
</code></pre></p>
<p>A estrutura para que o script funcione é tão-somente a estrutura simples e já tradicional de uma lista não ordenada. A dica principal é usar imagens como itens dessa lista para impactar ainda mais o visitante e tornar o efeito ainda mais bonito (também fica interessante já especificar uma imagem de background para o próprio elemento &lt;ul&gt;):</p>
<p><pre><code><br />
&lt;div class=&quot;socials&quot;&gt;<br />
&nbsp;&nbsp;&lt;ul class=&quot;reset&quot;&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;li&gt;&lt;a href=&quot;#&quot;&gt;&lt;img src=&quot;img/socials/delicious.png&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;/li&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;li&gt;&lt;a href=&quot;#&quot;&gt;&lt;img src=&quot;img/socials/digg.png&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;/li&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;li&gt;&lt;a href=&quot;#&quot;&gt;&lt;img src=&quot;img/socials/google.png&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;/li&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;li&gt;&lt;a href=&quot;#&quot;&gt;&lt;img src=&quot;img/socials/stumbleupon.png&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;/li&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;li&gt;&lt;a href=&quot;#&quot;&gt;&lt;img src=&quot;img/socials/technorati.png&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;/li&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;li&gt;&lt;a href=&quot;#&quot;&gt;&lt;img src=&quot;img/socials/twitter.png&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;/li&gt;<br />
&nbsp;&nbsp;&lt;/ul&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&lt;/div&gt;&nbsp;&nbsp;<br />
</code></pre></p>
<p>Depois disso, basta apontar para a lista que se deseja aplicar o efeito do MobilyBlocks, fazendo uma chamada simples à sua inicialização:</p>
<p><pre><code><br />
$(&#039;.socials&#039;).mobilyblocks();<br />
</code></pre></p>
<p>E pronto, não é preciso mais nada! Agora você já pode conferir este incrível efeito de animação circular!</p>
<h2>Opções do MobilyBlocks</h2>
<p>O MobilyBlocks possui algumas opções simples:</p>
<div>
<ul>
<li><strong>trigger</strong> (&#8216;click&#8217; ou &#8216;hover). Em qual evento o efeito acontecerá.</li>
<li><strong>direction</strong> (&#8216;clockwise&#8217; ou &#8216;counter&#8217;). Se a animação circular será no sentido horário ou anti-horário.</li>
<li><strong>duration</strong>. Duração da animação.</li>
<li><strong>zIndex</strong>. Valor z-index dos itens da lista.</li>
<li><strong>widthMultiplier</strong>. &#8220;Expansor&#8221; dos itens em relação à &#8220;base&#8221; (a melhor forma de entender é testar diversos valores).</li>
</ul>
</div>
<p>Então, por exemplo, se quiséssemos aplicar um efeito de MobilyBlocks em uma lista de classe &#8220;<strong>special-list</strong>&#8221; com <strong>sentido anti-horário</strong> e <strong>duração de 450ms</strong>, teríamos o seguinte código:</p>
<p><pre><code><br />
$(&#039;.special-list&#039;).mobilyblocks({<br />
&nbsp;&nbsp;direction: &#039;counter&#039;,<br />
&nbsp;&nbsp;duration:450<br />
});<br />
<br />
</code></pre></p>
<h2>Conclusão sobre o MobilyBlocks</h2>
<p>Como você pode conferir na <a href="http://playground.mobily.pl/jquery/mobily-blocks/demo.html">página de exemplo</a> oficial (e no arquivo compactado que você baixou), este é um <strong>efeito totalmente inovador</strong>, que não se encontra normalmente por aí.</p>
<p>Usá-lo certamente fará com que seu site tenha um diferencial importante em relação à concorrência e, por isso, o <strong>MobilyBlocks</strong> é altamente recomendado!
<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.webmaster.pt%2Fmenu-plugin-jquery-mobilyblocks-13247.html"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.webmaster.pt%2Fmenu-plugin-jquery-mobilyblocks-13247.html&amp;source=marketocracia&amp;style=normal&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p><a href="http://www.webmaster.pt/menu-plugin-jquery-mobilyblocks-13247.html">Menu Espetacular Com Plugin jQuery MobilyBlocks</a> &eacute; um artigo da nossa comunidade: <a href="http://www.webmaster.pt">Webmaster.pt Marketocracia Digital</a></p>
<p>Related posts:<ol>
<li><a href='http://www.webmaster.pt/enquete-animada-jquery-php-9574.html' rel='bookmark' title='Enquete Animada Com jQuery E PHP &#8211; Efeito Espetacular!'>Enquete Animada Com jQuery E PHP &#8211; Efeito Espetacular!</a></li>
<li><a href='http://www.webmaster.pt/notificacoes-interativas-slidenote-12003.html' rel='bookmark' title='Notificações Interativas Com SlideNote &#8211; Plugin jQuery'>Notificações Interativas Com SlideNote &#8211; Plugin jQuery</a></li>
<li><a href='http://www.webmaster.pt/avisos-personalizados-plugin-jquery-humanized-messages-12344.html' rel='bookmark' title='Avisos Personalizados Com Plugin jQuery Humanized Messages'>Avisos Personalizados Com Plugin jQuery Humanized Messages</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.webmaster.pt/menu-plugin-jquery-mobilyblocks-13247.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Listagem Ordenada Por Letra com PHP E MySQL</title>
		<link>http://www.webmaster.pt/listagem-ordenada-por-letra-php-mysql-13174.html</link>
		<comments>http://www.webmaster.pt/listagem-ordenada-por-letra-php-mysql-13174.html#comments</comments>
		<pubDate>Tue, 26 Apr 2011 13:44:56 +0000</pubDate>
		<dc:creator>Tárcio Zemel</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Programação]]></category>

		<guid isPermaLink="false">http://www.webmaster.pt/?p=13174</guid>
		<description><![CDATA[Como publicar uma lista de dados da base de dados ordenada pelas letras do alfabeto.<p><a href="http://www.webmaster.pt/listagem-ordenada-por-letra-php-mysql-13174.html">Listagem Ordenada Por Letra com PHP E MySQL</a> &eacute; um artigo da nossa comunidade: <a href="http://www.webmaster.pt">Webmaster.pt Marketocracia Digital</a></p>

Related posts:<ol>
<li><a href='http://www.webmaster.pt/mysql-insercao-dados-686.html' rel='bookmark' title='MySQL – Inserção De Dados'>MySQL – Inserção De Dados</a></li>
<li><a href='http://www.webmaster.pt/mysql-actualizacao-dados-695.html' rel='bookmark' title='MySQL &#8211; Actualização De Dados'>MySQL &#8211; Actualização De Dados</a></li>
<li><a href='http://www.webmaster.pt/mysql-principais-comandos-mysql-769.html' rel='bookmark' title='MySQL &#8211; Principais Comandos MyQL'>MySQL &#8211; Principais Comandos MyQL</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.webmaster.pt/wp-content/uploads/2011/04/como-fazer-listagem-por-letra-com-php-e-mysql-239x300.jpg" alt="Letras exemplificando como fazer listagem por letra com PHP e MySQL." width="239" height="300" class="aligncenter size-medium wp-image-13180" /></p>
<p>É bastante comum em determinados tipos de sites e/ou sistemas virtuais ser necessário apresentar listagens de elementos em determinada tabela do banco de dados. Mas muitas pessoas se perguntam <strong>como fazer listas por letra</strong> a partir do BD. Na verdade, não há muito &#8220;mistério&#8221; e o segredo está em realizar uma query relativamente simples.</p>
<p>Vamos supor que temos uma tabela no banco de dados. Essa tabela &#8220;cidade&#8221; guarda informações sobre todas as cidades de um determinado país. Então, em um site fictício, é preciso que se faça uma listagem de todas essas cidades, mas, como são muitas, uma <strong>divisão por letra</strong> se faz conveninente. Algo como:</p>
<ul>
<li>A
<ul>
<li>Abadia</li>
<li>Alagoa</li>
</ul>
</li>
<li>B
<ul>
<li>Baiá</li>
<li>Boa Esperança</li>
</ul>
</li>
<li>C
<ul>
<li>Catanduva</li>
<li>Ciabata</li>
<li>Cuiabá</li>
</ul>
</li>
</ul>
<p>E assim por diante.</p>
<h2>Técnica do Array</h2>
<p>Muitos preferem usar a técnica do array, que, basicamente, consiste em montar um array com todas as letras do alfabeto e, num <em>loop</em> qualquer, realizar as queries para listar todas as cidades que começam com aquela letra.</p>
<p><pre><code><br />
$letras = array(&#039;A&#039;, &#039;B&#039;, &#039;C&#039;, &#039;D&#039;, &#039;E&#039;, &#039;F&#039;, &#039;G&#039;, &#039;H&#039;, &#039;I&#039;, &#039;J&#039;, &#039;K&#039;, &#039;L&#039;, &#039;M&#039;, &#039;N&#039;, &#039;O&#039;, &#039;P&#039;, &#039;Q&#039;, &#039;R&#039;, &#039;S&#039;, &#039;T&#039;, &#039;U&#039;, &#039;V&#039;, &#039;W&#039;, &#039;X&#039;, &#039;Y&#039;, &#039;Z&#039;);<br />
</code></pre></p>
<p>É possível trabalhar desse jeito, sim, mas, para casos em que existam letras de outros idiomas, por exemplo, não seria possível codificar sem saber, de antemão, quais seriam estes caracteres. Além disso, montar este array é mais trabalhoso que deixar os próprios PHP+MySQL trabalharem por nós.  <img src='http://www.webmaster.pt/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<h2>Fazendo da maneira certa</h2>
<p>O mais &#8220;correto&#8221;, para este caso, é realizar uma query para saber quais as letras existentes no BD e, a partir daí, trabalhar com as respectivas listagens. A query é:</p>
<p><pre><code><br />
$query_letras = mysql_query<br />
(&#039;<br />
&nbsp;&nbsp;SELECT DISTINCT LEFT(descricao_cidade, 1) AS inicial<br />
&nbsp;&nbsp;FROM cidades<br />
&nbsp;&nbsp;ORDER BY descricao_cidade<br />
&#039;);<br />
</code></pre></p>
<p>Então, montaríamos um array com os resultados:<br />
<pre><code><br />
while($letra = mysql_fetch_object($query_letras))<br />
{<br />
&nbsp;&nbsp;$letras[] = $letra-&gt;inicial;<br />
}<br />
</code></pre></p>
<p>E, a partir disso, poderíamos fazer uma lista composta da seguinte maneira:</p>
<p><pre><code><br />
foreach($letras AS $letra)<br />
{<br />
&nbsp;&nbsp;echo &#039;&lt;h3&gt;&#039; . $letra . &#039;&lt;/h3&gt;&#039;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;$cidades = mysql_query<br />
&nbsp;&nbsp;(&#039;<br />
&nbsp;&nbsp;&nbsp;&nbsp;SELECT id, desc<br />
&nbsp;&nbsp;&nbsp;&nbsp;FROM cidades<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WHERE desc LIKE &quot;&#039; . $letra . &#039;%&quot;<br />
&nbsp;&nbsp;&nbsp;&nbsp;ORDER BY desc<br />
&nbsp;&nbsp;&#039;);<br />
<br />
&nbsp;&nbsp;echo &#039;&lt;ul&gt;&#039;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;while ($c = mysql_fetch_object($cidades))<br />
&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo &#039;&lt;li&gt;&#039; . $c-&gt;desc . &#039;&lt;/li&gt;&#039;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;echo &#039;&lt;/ul&gt;&#039;;<br />
}<br />
</code></pre></p>
<p>O código completo para a solução:<br />
<pre><code><br />
$query_letras = mysql_query<br />
(&#039;<br />
&nbsp;&nbsp;SELECT DISTINCT LEFT(descricao_cidade, 1) AS inicial<br />
&nbsp;&nbsp;FROM cidades<br />
&nbsp;&nbsp;ORDER BY descricao_cidade<br />
&#039;);<br />
while($letra = mysql_fetch_object($query_letras))<br />
{<br />
&nbsp;&nbsp;$letras[] = $letra-&gt;inicial;<br />
}<br />
<br />
foreach($letras AS $letra)<br />
{<br />
&nbsp;&nbsp;echo &#039;&lt;h3&gt;&#039; . $letra . &#039;&lt;/h3&gt;&#039;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;$cidades = mysql_query<br />
&nbsp;&nbsp;(&#039;<br />
&nbsp;&nbsp;&nbsp;&nbsp;SELECT desc<br />
&nbsp;&nbsp;&nbsp;&nbsp;FROM cidades<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WHERE desc LIKE &quot;&#039; . $letra . &#039;%&quot;<br />
&nbsp;&nbsp;&nbsp;&nbsp;ORDER BY desc<br />
&nbsp;&nbsp;&#039;);<br />
<br />
&nbsp;&nbsp;echo &#039;&lt;ul&gt;&#039;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;while ($c = mysql_fetch_object($cidades))<br />
&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo &#039;&lt;li&gt;&#039; . $c-&gt;desc . &#039;&lt;/li&gt;&#039;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;echo &#039;&lt;/ul&gt;&#039;;<br />
}<br />
</code></pre></p>
<h2>Conclusão</h2>
<p>Como citado, é muito comum desenvolvedores precisarem fazer<strong> listagens por letras</strong> e não saberem bem como. Usando a &#8220;query-base&#8221; apresentada, é possível saber, de antemão, quais serão as letras que comporão a lista e, com isso, ter mais segurança no trabalho que se está fazendo e apresentar um resultado mais fiel ao BD para os visitantes.</p>
<p>Portanto, esta é a maneira correta de se fazer <strong>listas por letra</strong> usando PHP e MySQL.
<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.webmaster.pt%2Flistagem-ordenada-por-letra-php-mysql-13174.html"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.webmaster.pt%2Flistagem-ordenada-por-letra-php-mysql-13174.html&amp;source=marketocracia&amp;style=normal&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p><a href="http://www.webmaster.pt/listagem-ordenada-por-letra-php-mysql-13174.html">Listagem Ordenada Por Letra com PHP E MySQL</a> &eacute; um artigo da nossa comunidade: <a href="http://www.webmaster.pt">Webmaster.pt Marketocracia Digital</a></p>
<p>Related posts:<ol>
<li><a href='http://www.webmaster.pt/mysql-insercao-dados-686.html' rel='bookmark' title='MySQL – Inserção De Dados'>MySQL – Inserção De Dados</a></li>
<li><a href='http://www.webmaster.pt/mysql-actualizacao-dados-695.html' rel='bookmark' title='MySQL &#8211; Actualização De Dados'>MySQL &#8211; Actualização De Dados</a></li>
<li><a href='http://www.webmaster.pt/mysql-principais-comandos-mysql-769.html' rel='bookmark' title='MySQL &#8211; Principais Comandos MyQL'>MySQL &#8211; Principais Comandos MyQL</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.webmaster.pt/listagem-ordenada-por-letra-php-mysql-13174.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Como Alterar As Meta Tags Para SEO Com PHP</title>
		<link>http://www.webmaster.pt/alterar-meta-tags-seo-php-12145.html</link>
		<comments>http://www.webmaster.pt/alterar-meta-tags-seo-php-12145.html#comments</comments>
		<pubDate>Mon, 17 Jan 2011 13:00:35 +0000</pubDate>
		<dc:creator>Quemuel Aquino</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programação]]></category>

		<guid isPermaLink="false">http://www.webmaster.pt/?p=12145</guid>
		<description><![CDATA[Saiba como alterar as meta tags com PHP e MySQL. Código incluído para download.<p><a href="http://www.webmaster.pt/alterar-meta-tags-seo-php-12145.html">Como Alterar As Meta Tags Para SEO Com PHP</a> &eacute; um artigo da nossa comunidade: <a href="http://www.webmaster.pt">Webmaster.pt Marketocracia Digital</a></p>

Related posts:<ol>
<li><a href='http://www.webmaster.pt/como-criar-sistema-o-s-orcamentos-parte1-9272.html' rel='bookmark' title='Como Criar Sistema De O.S. / Orçamentos Parte1'>Como Criar Sistema De O.S. / Orçamentos Parte1</a></li>
<li><a href='http://www.webmaster.pt/formatar-data-pesquisa-7948.html' rel='bookmark' title='Formatar Data Na Pesquisa'>Formatar Data Na Pesquisa</a></li>
<li><a href='http://www.webmaster.pt/como-criar-edicao-inline-jquery-9812.html' rel='bookmark' title='Como Criar Edição Inline Com jQuery'>Como Criar Edição Inline Com jQuery</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Hoje em dia se fala muito em resultados em buscadores, SEO, entre outros assuntos relacionados ao resultado das visitações. Se formos abordar esse assunto, veremos que ele é extremamente necessário para os resultados trabalhados no site. Para quem entende do assunto, é fácil falar e gerenciar tal conteúdo, já que você entende o código, mas&#8230; e quem não entende?</p>
<p>Hoje em dia encontramos vários sites com bugs porque o Programador ou o dono do site ao tentar alterar algo, deixou um bug ou informação incompleta! Outros, se cansam ao terem de entrar semanalmente ou mensalmente no código do site para alterar o conteúdo!</p>
<p>Vamos acabar com isso hoje?</p>
<p>Preparei para você um sisteminha onde você poderá gerenciar o conteúdo do &#8220;Head&#8221; do site. Abaixo daremos algumas explicações e em anexo disponibilizaremos um script personalizado com tais informações.</p>
<p><img src="http://www.webmaster.pt/wp-content/uploads/2011/01/meta_tags.jpg" alt="meta tags" title="meta tags" width="300" height="242" class="aligncenter size-full wp-image-12362" /></p>
<h2>Configurando a Base de Dados</h2>
<p>Antes de tudo, é necessário configurar a base de dados. </p>
<p>Com o BD já criado, acesse o ficheiro &#8220;conexao.php&#8221; (disponível no diretório includes) e configure o ficheiro alterando as informações de acesso à base de dados (conforme script a seguir).</p>
<p><pre><code><br />
<br />
&lt;?php<br />
<br />
&lt;?<br />
<br />
$database = &quot;SERVIDOR&quot;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // SERVIDOR<br />
$dbname&nbsp;&nbsp; = &quot;DATABASE&quot;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// BASE DE DADOS<br />
$usuario&nbsp;&nbsp;= &quot;USUARIO&quot;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// USUARIO MYSQL<br />
$dbsenha&nbsp;&nbsp;= &quot;SENHA&quot;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // SENHA MYSQL<br />
<br />
$conexao=mysql_connect ($database, $usuario, $dbsenha);<br />
<br />
if($conexao){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (mysql_select_db($dbname, $conexao)){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print &quot;&quot;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}else{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print &quot;Não foi possível selecionar o Banco de Dados&quot;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}else{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print &quot;Erro ao conectar o MySQL&quot;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
?&gt;<br />
<br />
</code></pre></p>
<p>Após a configuração, vamos agora criar a tabela que será usada!</p>
<h2>Criando a Tabela na Base de Dados:</h2>
<p>Para configurar a base de dados através do script, abra o ficheiro script-sql.txt (disponível em anexo) e cole seu conteúdo no Programa utilizado para gerenciamento da base de dados.</p>
<p>Em nossas matérias utilizamos como padrão o MySQLFront. Caso tu também esteja utilizando este programa, clique em SQL Editor e cole o conteúdo do script (conforme disponibilizado a seguir).</p>
<p><pre><code><br />
<br />
----- INSTALANDO A TABELA -----<br />
<br />
CREATE TABLE `dados_empresa` (<br />
&nbsp;&nbsp;`id_empresa` int(11) NOT NULL auto_increment,<br />
&nbsp;&nbsp;`nome_empresa` varchar(255) NOT NULL default &#039;&#039;,<br />
&nbsp;&nbsp;`nome_fantasia` varchar(255) NOT NULL default &#039;&#039;,<br />
&nbsp;&nbsp;`cnpj` varchar(25) NOT NULL default &#039;&#039;,<br />
&nbsp;&nbsp;`insc_estadual` varchar(20) default NULL,<br />
&nbsp;&nbsp;`endereco` varchar(255) NOT NULL default &#039;&#039;,<br />
&nbsp;&nbsp;`numero` varchar(10) default NULL,<br />
&nbsp;&nbsp;`complemento` varchar(50) default NULL,<br />
&nbsp;&nbsp;`bairro` varchar(150) NOT NULL default &#039;&#039;,<br />
&nbsp;&nbsp;`cidade` varchar(150) NOT NULL default &#039;&#039;,<br />
&nbsp;&nbsp;`estado` varchar(150) NOT NULL default &#039;&#039;,<br />
&nbsp;&nbsp;`pais` varchar(150) NOT NULL default &#039;&#039;,<br />
&nbsp;&nbsp;`cep` varchar(15) default NULL,<br />
&nbsp;&nbsp;`ddd_fone` varchar(5) default NULL,<br />
&nbsp;&nbsp;`fone` varchar(15) default NULL,<br />
&nbsp;&nbsp;`ddd_fone2` varchar(5) default NULL,<br />
&nbsp;&nbsp;`fone2` varchar(15) default NULL,<br />
&nbsp;&nbsp;`ddd_fone3` varchar(5) default NULL,<br />
&nbsp;&nbsp;`fone3` varchar(15) default NULL,<br />
&nbsp;&nbsp;`url` varchar(255) default NULL,<br />
&nbsp;&nbsp;`email_comercial` varchar(150) default NULL,<br />
&nbsp;&nbsp;`email_financeiro` varchar(150) default NULL,<br />
&nbsp;&nbsp;`endereco_ymessenger` varchar(200) default NULL,<br />
&nbsp;&nbsp;`endereco_twitter` varchar(200) default NULL,<br />
&nbsp;&nbsp;`endereco_skype` varchar(200) default NULL,<br />
&nbsp;&nbsp;`endereco_facebook` varchar(200) default NULL,<br />
&nbsp;&nbsp;`endereco_orkut` varchar(200) default NULL,<br />
&nbsp;&nbsp;`endereco_msn` varchar(150) default NULL,<br />
&nbsp;&nbsp;`palavraschave` varchar(255) default NULL,<br />
&nbsp;&nbsp;PRIMARY KEY&nbsp;&nbsp;(`id_empresa`)<br />
);<br />
<br />
INSERT INTO `dados_empresa` (`id_empresa`,`nome_empresa`,`nome_fantasia`,`cnpj`,`insc_estadual`,`endereco`,`numero`,`complemento`,`bairro`,`cidade`,`estado`,`pais`,`cep`,`ddd_fone`,`fone`,`ddd_fone2`,`fone2`,`ddd_fone3`,`fone3`,`url`,`email_comercial`,`email_financeiro`,`endereco_ymessenger`,`endereco_twitter`,`endereco_skype`,`endereco_facebook`,`endereco_orkut`,`endereco_msn`,`palavraschave`) VALUES (1,&#039;Free Busca&#039;,&#039;O Portal de Busca do Brasil&#039;,&#039;&#039;,&#039;&#039;,&#039;Rua Marcondes Salgado&#039;,&#039;88&#039;,&#039;&#039;,&#039;Bosque&#039;,&#039;Campinas&#039;,&#039;São Paulo&#039;,&#039;Brasil&#039;,&#039;13060-854&#039;,&#039;19&#039;,&#039;3387-5956&#039;,&#039;&#039;,&#039;&#039;,&#039;&#039;,&#039;&#039;,&#039;http://www.seusite.com.br&#039;,&#039;contato@direcionalweb.in&#039;,&#039;contato@direcionalweb.in&#039;,&#039;&#039;,&#039;&#039;,&#039;&#039;,&#039;&#039;,&#039;&#039;,&#039;&#039;,&#039;Loja Online, loja alcri, alcri, internet, janela, aluminio&#039;);<br />
<br />
CREATE TABLE `tbl_head` (<br />
&nbsp;&nbsp;`id_head` int(11) NOT NULL auto_increment,<br />
&nbsp;&nbsp;`titulo` varchar(255) default NULL,<br />
&nbsp;&nbsp;`description` varchar(255) default NULL,<br />
&nbsp;&nbsp;`author` varchar(100) default NULL,<br />
&nbsp;&nbsp;`categories` varchar(100) default NULL,<br />
&nbsp;&nbsp;`content_language` varchar(20) default NULL,<br />
&nbsp;&nbsp;`content_type` varchar(50) default NULL,<br />
&nbsp;&nbsp;`generator` varchar(100) default NULL,<br />
&nbsp;&nbsp;`geo_region` varchar(100) default NULL,<br />
&nbsp;&nbsp;`googlebot` varchar(100) default NULL,<br />
&nbsp;&nbsp;`keywords` varchar(255) default NULL,<br />
&nbsp;&nbsp;`language` varchar(20) default NULL,<br />
&nbsp;&nbsp;`ratting` varchar(20) default NULL,<br />
&nbsp;&nbsp;`revisit_after` varchar(20) default NULL,<br />
&nbsp;&nbsp;`robots` varchar(20) default NULL,<br />
&nbsp;&nbsp;PRIMARY KEY&nbsp;&nbsp;(`id_head`)<br />
);<br />
<br />
INSERT INTO `tbl_head` (`id_head`,`titulo`,`description`,`author`,`categories`,`content_language`,`content_type`,`generator`,`geo_region`,`googlebot`,`keywords`,`language`,`ratting`,`revisit_after`,`robots`) VALUES (1,&#039;Header Personalizada - WebMaster.PT&#039;,&#039;Descrição da matéria header personalizada do webmaster.pt&#039;,&#039;Quemuel Aquino&#039;,&#039;Lorem ipsum dolor&#039;,&#039;pt-BR&#039;,&#039;Lorem ipsum dolor&#039;,&#039;Dreamweaver&#039;,&#039;Lorem ipsum&#039;,&#039;Lorem ipsum dolor&#039;,&#039;palavra 01, palavra 02, palavra 03, etc.&#039;,&#039;pt-BR&#039;,&#039;Lorem ipsum dolor&#039;,&#039;Lorem ipsum dolor&#039;,&#039;Lorem ipsum dolor&#039;);<br />
<br />
CREATE TABLE `tbl_usuarios` (<br />
&nbsp;&nbsp;`id_usuario` int(11) NOT NULL auto_increment,<br />
&nbsp;&nbsp;`nome` varchar(255) default NULL,<br />
&nbsp;&nbsp;`senha` varchar(25) default NULL,<br />
&nbsp;&nbsp;`email` varchar(80) default NULL,<br />
&nbsp;&nbsp;`email2` varchar(80) default NULL,<br />
&nbsp;&nbsp;`endereco` varchar(255) default NULL,<br />
&nbsp;&nbsp;`numero` varchar(10) default NULL,<br />
&nbsp;&nbsp;`complemento` varchar(80) default NULL,<br />
&nbsp;&nbsp;`bairro` varchar(80) default NULL,<br />
&nbsp;&nbsp;`cidade` varchar(150) default NULL,<br />
&nbsp;&nbsp;`estado` varchar(150) default NULL,<br />
&nbsp;&nbsp;`pais` varchar(255) default NULL,<br />
&nbsp;&nbsp;`cep` varchar(15) default NULL,<br />
&nbsp;&nbsp;`ddd` varchar(5) default NULL,<br />
&nbsp;&nbsp;`fone` varchar(10) default NULL,<br />
&nbsp;&nbsp;`ddd2` varchar(5) default NULL,<br />
&nbsp;&nbsp;`fone2` varchar(10) default NULL,<br />
&nbsp;&nbsp;`dddcel` varchar(5) default NULL,<br />
&nbsp;&nbsp;`fonecel` varchar(10) default NULL,<br />
&nbsp;&nbsp;`data_nascimento` varchar(15) default NULL,<br />
&nbsp;&nbsp;`sexo` varchar(15) default NULL,<br />
&nbsp;&nbsp;`data_cadastro` varchar(10) default NULL,<br />
&nbsp;&nbsp;`tipo` char(2) default NULL,<br />
&nbsp;&nbsp;`status` char(1) default NULL,<br />
&nbsp;&nbsp;PRIMARY KEY&nbsp;&nbsp;(`id_usuario`)<br />
);<br />
<br />
INSERT INTO `tbl_usuarios` (`id_usuario`,`nome`,`senha`,`email`,`email2`,`endereco`,`numero`,`complemento`,`bairro`,`cidade`,`estado`,`pais`,`cep`,`ddd`,`fone`,`ddd2`,`fone2`,`dddcel`,`fonecel`,`data_nascimento`,`sexo`,`data_cadastro`,`tipo`,`status`) VALUES (3,&#039;Administrador&#039;,&#039;123456&#039;,&#039;comandosusa@gmail.com&#039;,&#039;teste@ymail.com&#039;,&#039;Rua Silvio Rizzardo&#039;,&#039;253&#039;,&#039;222&#039;,&#039;Jd. Campos Elíseos&#039;,&#039;Campinas&#039;,&#039;São Paulo&#039;,&#039;Brasil&#039;,&#039;13060854&#039;,&#039;19&#039;,&#039;3233-3917&#039;,&#039;22&#039;,&#039;1121-1121&#039;,&#039;&#039;,&#039;&#039;,&#039;2010-12-12&#039;,&#039;0&#039;,NULL,&#039;1&#039;,&#039;1&#039;);<br />
<br />
</code></pre></p>
<p>Após importar os dados, você já poderá fazer uso do sistema abaixo.</p>
<h2>Exmplorando a Área Gerencial:</h2>
<p>A área gerencial é bem prática e fácil de ser utilizada.</p>
<p>Para ter acesso a ela, basta acessar o diretório ADMIN.</p>
<p>OBS.: </p>
<p>Os dados de acesso são:</p>
<p>Login: comandosusa@gmail.com &#8211; Senha: 123456</p>
<p>A princípio, a área gerencial terá apenas 3 telas, que serão:</p>
<ul>
<li>Dados da empresa (onde você poderá alterar as informações de sua empresa);</li>
<li>Dados Pessoais (onde você poderá alterar suas informações de acesso e de contato);</li>
<li>Head (onde você poderá alterar as informações da Head &#8211; que focamos nesta matéria).</li>
</ul>
<p><img class="aligncenter size-full wp-image-12146" src="http://www.webmaster.pt/wp-content/uploads/2010/12/imagem01.jpg" alt="" width="600" height="470" /></p>
<p>Como nosso foco hoje é a Header, estaremos acessando diretamente esta área.</p>
<p>Bem&#8230; nós focamos em trazer os principais campos disponíveis em uma HEAD, de forma que os Internautas possam alterar suas próprias informações!</p>
<p>Através desta área eles poderão alterar a descrição do site, palavras chave e informações mais exatas, de forma que suas visitações venham aumentar (conforme imagem a seguir).</p>
<p><img src="http://www.webmaster.pt/wp-content/uploads/2010/12/imagem02.jpg" alt="" width="600" height="410" class="aligncenter size-full wp-image-12147" /></p>
<p>Após efetuar as alterações devidas, aparecerá em tela (na página index.php do sistema) o código já alterado (conforme script a seguir).</p>
<p>Bem&#8230; vamos dar uma olhada no script e ver como podemos trabalhar com ele?</p>
<p><pre><code> <br />
<br />
&lt;html&gt;<br />
&lt;head&gt;<br />
&lt;title&gt;Header Personalizada - WebMaster.PT&lt;/title&gt;<br />
&lt;meta name=&quot;description&quot; content=&quot;Descrição da matéria header personalizada do webmaster.pt&quot;&gt;<br />
&lt;meta name=&quot;author&quot; content=&quot;Quemuel Aquino&quot;&gt;<br />
&lt;meta name=&quot;categories&quot; content=&quot;Lorem ipsum dolor&quot;&gt;<br />
&lt;meta http-equiv=&quot;Content-Language&quot; content=&quot;pt-BR&quot;&gt;<br />
<br />
&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;Lorem ipsum dolor&quot;&gt;<br />
&lt;meta name=&quot;generator&quot; content=&quot;Dreamweaver&quot;&gt;<br />
<br />
&lt;meta name=&quot;geo.region&quot; content=&quot;Lorem ipsum&quot;&gt;<br />
&lt;meta name=&quot;googlebot&quot; content=&quot;Lorem ipsum dolor&quot;&gt;<br />
&lt;meta name=&quot;keywords&quot; content=&quot;palavra 01, palavra 02, palavra 03, etc.&quot;&gt;<br />
&lt;meta name=&quot;language&quot; content=&quot;pt-BR&quot;&gt;<br />
<br />
&lt;meta name=&quot;ratting&quot; content=&quot;Lorem ipsum dolor&quot; /&gt;<br />
&lt;meta name=&quot;revisit-after&quot; content=&quot;Lorem ipsum dolor&quot;&gt;<br />
&lt;meta name=&quot;robots&quot; content=&quot;Lorem ipsum dolor&quot;&gt;<br />
<br />
&lt;link href=&quot;scripts/css/estilo.css&quot; rel=&quot;stylesheet&quot; type=&quot;text/css&quot; media=&quot;all&quot; /&gt;<br />
<br />
&lt;/head&gt;<br />
&lt;body&gt;<br />
<br />
INFORMAÇÕES DO SITE APARECERÃO AQUI<br />
&lt;/body&gt;<br />
&lt;/html&gt;<br />
<br />
</code></pre></p>
<p>Bem&#8230; na verdade, o que fará alteração será tudo que for relacionado a META. Acima inserimos um arquivo css (fictício).</p>
<p>E aí, o que achou? prático, não?</p>
<p>Faça o download do conteúdo em anexo e aproveite esse sistema!</p>
<p>Agora é só implementar a seu site.</p>
<p><strong>Download do código usado neste tutorial ></strong> <a href='http://www.webmaster.pt/wp-content/uploads/2010/12/ficheiros3.zip'>Como Alterar As Meta Tags Para SEO Com PHP</a>
<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.webmaster.pt%2Falterar-meta-tags-seo-php-12145.html"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.webmaster.pt%2Falterar-meta-tags-seo-php-12145.html&amp;source=marketocracia&amp;style=normal&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p><a href="http://www.webmaster.pt/alterar-meta-tags-seo-php-12145.html">Como Alterar As Meta Tags Para SEO Com PHP</a> &eacute; um artigo da nossa comunidade: <a href="http://www.webmaster.pt">Webmaster.pt Marketocracia Digital</a></p>
<p>Related posts:<ol>
<li><a href='http://www.webmaster.pt/como-criar-sistema-o-s-orcamentos-parte1-9272.html' rel='bookmark' title='Como Criar Sistema De O.S. / Orçamentos Parte1'>Como Criar Sistema De O.S. / Orçamentos Parte1</a></li>
<li><a href='http://www.webmaster.pt/formatar-data-pesquisa-7948.html' rel='bookmark' title='Formatar Data Na Pesquisa'>Formatar Data Na Pesquisa</a></li>
<li><a href='http://www.webmaster.pt/como-criar-edicao-inline-jquery-9812.html' rel='bookmark' title='Como Criar Edição Inline Com jQuery'>Como Criar Edição Inline Com jQuery</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.webmaster.pt/alterar-meta-tags-seo-php-12145.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Exemplos Práticos De PHP</title>
		<link>http://www.webmaster.pt/exemplos-praticos-php-11892.html</link>
		<comments>http://www.webmaster.pt/exemplos-praticos-php-11892.html#comments</comments>
		<pubDate>Mon, 03 Jan 2011 11:04:55 +0000</pubDate>
		<dc:creator>Quemuel Aquino</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programação]]></category>

		<guid isPermaLink="false">http://www.webmaster.pt/?p=11892</guid>
		<description><![CDATA[Como verificar se um número é par ou ímpar. Usar o IF. Usar o While. <p><a href="http://www.webmaster.pt/exemplos-praticos-php-11892.html">Exemplos Práticos De PHP</a> &eacute; um artigo da nossa comunidade: <a href="http://www.webmaster.pt">Webmaster.pt Marketocracia Digital</a></p>

Related posts:<ol>
<li><a href='http://www.webmaster.pt/exemplos-praticos-mysql-3864.html' rel='bookmark' title='Exemplos Práticos De MySQL'>Exemplos Práticos De MySQL</a></li>
<li><a href='http://www.webmaster.pt/paginacao-avancada-com-php-6086.html' rel='bookmark' title='Paginação Avançada Com PHP'>Paginação Avançada Com PHP</a></li>
<li><a href='http://www.webmaster.pt/mysql-otimizacao-indices-5148.html' rel='bookmark' title='MySQL &#8211; Otimização Criando Índices'>MySQL &#8211; Otimização Criando Índices</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>De vez em quando passamos por algumas situações onde nossa função de programador é provada.</p>
<p>Um programador iniciante geralmente sofre quando não encontra na Internet funções e/ou conteúdo que venha lhe ajudar!</p>
<p>Geralmente nós focamos em sistemas de médio e grande porte (ex.: gerenciador de conteúdo, imagens e até mesmo gerenciador de vídeos do youtube).</p>
<p>Hoje nosso foco será algo básico, porém, darei alguns exemplos que podem ser usados no dia a dia em suas aplicações.</p>
<p><img src="http://www.webmaster.pt/wp-content/uploads/2011/01/php.jpeg" alt="php" title="php" width="278" height="181" class="aligncenter size-full wp-image-12214" /></p>
<h2>Verificando Números Ímpares E Pares</h2>
<p>Uma das necessidades do Programador é verificar se um número é par ou impar.</p>
<p>Não digo que este conteúdo solucionará seu problema, mas poderá lhe dar condições de parar um evento em um determinado número (seja ele par ou impar).</p>
<p>Exemplo:</p>
<p><pre><code><br />
&lt;?<br />
//Número que será checado<br />
$numero = 41;<br />
<br />
//Realizando a verificação<br />
$resultado1 = ($numero % 2) ? &#039;é um número impar&#039; : &#039;é um número par&#039;;<br />
<br />
//Exibindo o resultado da verificação<br />
echo &quot;$numero $resultado1&quot;;<br />
?&gt;<br />
</code></pre></p>
<p>OBS.: Veja que aparecerá em tela a frase a seguir: &#8220;41 é um número impar&#8221;.</p>
<p>É um evento simples, mas&#8230; em alguns casos deverá lhe ajudar.</p>
<h2>Usando o IF</h2>
<p>Uma outra possibilidade que você tem é fazendo uso do IF em suas condições.</p>
<p>Diferente do exemplo anterior, ele é lógico. Isto é: Se o número for menor ou igual ao número descrito na condição, ele roda, ou então, executa outra coisa (conforme exemplo a seguir).</p>
<p><pre><code><br />
<br />
&lt;?<br />
<br />
$limite = 10;<br />
<br />
if ($limite &lt;= 1){ // aqui vai o código que roda caso o limite não tenha sido ultrapasado.<br />
<br />
echo &quot;$limite é um número menor ou igual a 1&quot;;<br />
<br />
}else{ //aqui vai a mensagem dizendo para o usuário que ele excedeu o limite.<br />
<br />
echo &quot;$limite é um número maior que 1&quot;;<br />
<br />
} <br />
<br />
?&gt;<br />
<br />
</code></pre></p>
<p>OBS.: </p>
<p>Veja que no exemplo acima o script verifica se o número é menor ou igual a 1.</p>
<p>Se ele for menor ou igual a 1, você receberá uma mensagem. Se ele for maior que 1, você receberá outra mensagem.</p>
<p>Tu ainda tem a opção de usar o &#8220;elseif&#8221;, mas só aconselhamos usar este comando caso haja necessidade.</p>
<p>Vamos para um eemplo mais prático?</p>
<h2>Usando o While</h2>
<p>Diferente dos exemplos anteriores, o while é muito usado, para efetuar loop. Isto é: Enquanto não chegar em um número determinado, ele vai continuar sendo executado.</p>
<p>Vamos para um exemplo prático?</p>
<p>No exemplo a seguir, estaremos fazendo comparações (a partir do número 1) até chegar ao número 5 (conforme código a seguir). </p>
<p><pre><code><br />
<br />
&lt;?<br />
<br />
$numero = 1;<br />
<br />
while($numero &lt;= 5){<br />
<br />
echo &quot;O número $numero é menor ou igual a 5&lt;br&gt;&quot;;<br />
<br />
$numero++; // Se o número não for o que estamos procurando, ele será incrementado.<br />
<br />
}<br />
<br />
?&gt;<br />
<br />
</code></pre></p>
<p>Veja que diferente dos demais, ele deverá imprimir algo siminar a isso em tela:</p>
<p><pre><code><br />
<br />
O número 1 é menor ou igual a 5<br />
O número 2 é menor ou igual a 5<br />
O número 3 é menor ou igual a 5<br />
O número 4 é menor ou igual a 5<br />
O número 5 é menor ou igual a 5<br />
<br />
</code></pre></p>
<p>Agora vamos verificar nosso último exemplo?</p>
<h2>Usando o do &#8230; while</h2>
<p>O exemplo a seguir, é pouco usado, mas também tem uma função similar ao do while.</p>
<p>Exemplo:</p>
<p><pre><code><br />
<br />
&lt;?<br />
<br />
$numero = 1;<br />
do{<br />
&nbsp;&nbsp;$numero++;<br />
&nbsp;&nbsp;echo &quot;O número $numero&lt;br&gt;&quot;;<br />
&nbsp;&nbsp;}<br />
while ($numero &lt;= 5);<br />
<br />
?&gt;<br />
<br />
</code></pre></p>
<p>Veja que ao final do script nosso foco ainda é comparar se o número é menor ou igual a 5.</p>
<p>Vamos ver  em tela como ele fica?</p>
<p><pre><code><br />
<br />
O número 2<br />
O número 3<br />
O número 4<br />
O número 5<br />
O número 6<br />
<br />
</code></pre></p>
<p>Ele fez a impressão até o número 6.</p>
<p>Esse tipo de evento pode ser usado quando você quer saber o próximo número.</p>
<p>Bem&#8230; sei que podemos muito bem resumir tudo ao &#8220;while&#8221;, mas é legal darmos idéias a quem está começando sobre como trabalhar com outros comandos.</p>
<p>Pegue os códigos em anexo e faça a adaptação ao que você precisa!</p>
<p>Espero que o conteúdo desta matéria venha lhe ajudar.</p>
<p>Download do código usado neste tutorial > <a href='http://www.webmaster.pt/wp-content/uploads/2010/12/ficheiros.zip'>Exemplos Práticos De PHP</a>
<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.webmaster.pt%2Fexemplos-praticos-php-11892.html"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.webmaster.pt%2Fexemplos-praticos-php-11892.html&amp;source=marketocracia&amp;style=normal&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p><a href="http://www.webmaster.pt/exemplos-praticos-php-11892.html">Exemplos Práticos De PHP</a> &eacute; um artigo da nossa comunidade: <a href="http://www.webmaster.pt">Webmaster.pt Marketocracia Digital</a></p>
<p>Related posts:<ol>
<li><a href='http://www.webmaster.pt/exemplos-praticos-mysql-3864.html' rel='bookmark' title='Exemplos Práticos De MySQL'>Exemplos Práticos De MySQL</a></li>
<li><a href='http://www.webmaster.pt/paginacao-avancada-com-php-6086.html' rel='bookmark' title='Paginação Avançada Com PHP'>Paginação Avançada Com PHP</a></li>
<li><a href='http://www.webmaster.pt/mysql-otimizacao-indices-5148.html' rel='bookmark' title='MySQL &#8211; Otimização Criando Índices'>MySQL &#8211; Otimização Criando Índices</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.webmaster.pt/exemplos-praticos-php-11892.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nota Fiscal Eletrônica Em PHP</title>
		<link>http://www.webmaster.pt/nota-fiscal-eletronica-php-12167.html</link>
		<comments>http://www.webmaster.pt/nota-fiscal-eletronica-php-12167.html#comments</comments>
		<pubDate>Thu, 30 Dec 2010 09:52:22 +0000</pubDate>
		<dc:creator>Quemuel Aquino</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programação]]></category>

		<guid isPermaLink="false">http://www.webmaster.pt/?p=12167</guid>
		<description><![CDATA[Aprenda a gerar a Nota Fiscal Eletrônica em PHP (Brasil).<p><a href="http://www.webmaster.pt/nota-fiscal-eletronica-php-12167.html">Nota Fiscal Eletrônica Em PHP</a> &eacute; um artigo da nossa comunidade: <a href="http://www.webmaster.pt">Webmaster.pt Marketocracia Digital</a></p>

Related posts:<ol>
<li><a href='http://www.webmaster.pt/mysql-integridade-referencial-3598.html' rel='bookmark' title='MySQL &#8211; Integridade Referencial'>MySQL &#8211; Integridade Referencial</a></li>
<li><a href='http://www.webmaster.pt/envio-email-smtp-phpmailer-9722.html' rel='bookmark' title='Envio De Email Através De SMTP Com PHPMailer'>Envio De Email Através De SMTP Com PHPMailer</a></li>
<li><a href='http://www.webmaster.pt/diferencas-php4-php5-10786.html' rel='bookmark' title='Algumas Diferenças Entre O PHP 4.x E O PHP 5.x'>Algumas Diferenças Entre O PHP 4.x E O PHP 5.x</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>No Brasil (acredito que também em outros Países do Exterior) uma das formas das empresas terem credibilidade no Mercado e também dar uma segurança maior a seus clientes é disponibilizando a Nota Fiscal.</p>
<p>Antigamente era uma burocracia enorme. Muito papel, perda de documentos, dificuldades e por fim empresários (ou contadores) chateados por terem tanto trabalho.</p>
<p>Hoje o Governo Brasileiro já disponibiliza às empresas a Nota Fiscal Eletrônica.</p>
<p><img src="http://www.webmaster.pt/wp-content/uploads/2010/12/nota-fiscal-eletronica-e1293702657342.jpg" alt="nota fiscal eletronica" title="nota fiscal eletronica" width="600" height="531" class="aligncenter size-full wp-image-12196" /></p>
<p>Eu tenho o previlégio de usá-la para gerar notas fiscais a meus clientes e posso dizer que o procedimento de uso é muito simples.</p>
<p>Claro, existem vários Programas na Internet que facilitam o uso de diversas empresas (outros só atrapalham), se você não quer viver preso a soluções desktop (feitos em Delphi, Java ou outra linguagem), hoje já estamos trabalhando em cima de uma solução exclusiva em PHP.</p>
<h2>O Que É O NFe Em PHP</H2></p>
<p>O NFe (Nota Fiscal Eletrônica) é um Projeto prático que está sendo elaborado por equipes (e melhorado) por várias equipes de Programação, no intuito de facilitar o uso das empresas na hora de gerar as Notas Fiscais.</p>
<p>Como eu falei acima, existem várias empresas e programadores usufruindo da necessidade atual e ganhando muito dinheiro com isso, já que até o momento são poucos que tem conhecimento em implantar tais soluções.</p>
<p>Já que nem sempre as soluções implantadas em sistemas são seguras, hoje existem equipes focando em criar Projetos de código Livre e sem erros, de forma que todos possam usar seu conteúdo.</p>
<p>O Grupo NFePHP (Google Groups) e a Assembla vem investindo forte neste sentido, de forma que programadores experientes e iniciantes possam adquirir o mesmo conhecimento e cooperar com a elaboração desta solução.</p>
<h2>Cuidados Que Estão Sendo Tomados</h2>
<p>Assim como todo sistema desenvolvido tanto para a web e desktop, ao elaborar uma aplicação o desenvolvedor precisa saber se o mesmo terá os problemas a seguir:</p>
<ul>
<li>Lentidão no Emissor (ele pode se tornar muito lento a partir das 1000 notas emitidas, pois ele guarda e apresenta todas as notas, assinaturas, XML’s de retorno e Danfes).</li>
<li>Demora no Retorno da NFe pela Sefaz.</li>
<li>Dificuldade no Processo de importação do XML para o Emissor.</li>
<li>Dificuldade no Processo de Exportação da DANFE (PDF) para o ERP.</li>
</ul>
<p>Com base em dificuldades anteriores, dia após dia estão sendo criadas soluções que venham evitar tais problemas.</p>
<h2>Como Funciona O NFe</h2>
<p>Na versão atual o NFe já realiza algumas das principais tarefas, tais como:</p>
<ul>
<li>Geração da Nota Fiscal em XML;</li>
<li>Assinatura da nota utilizando certificado digital e-CNPJ e e-NFe A1 (em PHP nativo);</li>
<li>Envio e validação das notas em lotes por web services;</li>
<li>Geração da DANFE.</li>
</ul>
<p>E aí, gostou? Quer participar ou saber mais sobre a Nota Fiscal Eletrônica em PHP?</p>
<p>Então visite:</p>
<ul>
<li><a href="http://www.nfephp.org/" target="_blank">http://www.nfephp.org/</a></li>
<li><a href="http://www.assembla.com/wiki/show/nfephp" target="_blank">http://www.assembla.com/wiki/show/nfephp</a></li>
<li><a href="http://groups.google.com/group/nfephp" target="_blank">http://groups.google.com/group/nfephp</a></li>
</ul>
<p>Espero que você acompanhe esta ótima solução que só tem a melhorar dia após dia.
<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.webmaster.pt%2Fnota-fiscal-eletronica-php-12167.html"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.webmaster.pt%2Fnota-fiscal-eletronica-php-12167.html&amp;source=marketocracia&amp;style=normal&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p><a href="http://www.webmaster.pt/nota-fiscal-eletronica-php-12167.html">Nota Fiscal Eletrônica Em PHP</a> &eacute; um artigo da nossa comunidade: <a href="http://www.webmaster.pt">Webmaster.pt Marketocracia Digital</a></p>
<p>Related posts:<ol>
<li><a href='http://www.webmaster.pt/mysql-integridade-referencial-3598.html' rel='bookmark' title='MySQL &#8211; Integridade Referencial'>MySQL &#8211; Integridade Referencial</a></li>
<li><a href='http://www.webmaster.pt/envio-email-smtp-phpmailer-9722.html' rel='bookmark' title='Envio De Email Através De SMTP Com PHPMailer'>Envio De Email Através De SMTP Com PHPMailer</a></li>
<li><a href='http://www.webmaster.pt/diferencas-php4-php5-10786.html' rel='bookmark' title='Algumas Diferenças Entre O PHP 4.x E O PHP 5.x'>Algumas Diferenças Entre O PHP 4.x E O PHP 5.x</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.webmaster.pt/nota-fiscal-eletronica-php-12167.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Sorte Do Dia Em PHP</title>
		<link>http://www.webmaster.pt/sorte-do-dia-php-11960.html</link>
		<comments>http://www.webmaster.pt/sorte-do-dia-php-11960.html#comments</comments>
		<pubDate>Mon, 20 Dec 2010 10:35:48 +0000</pubDate>
		<dc:creator>Quemuel Aquino</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programação]]></category>

		<guid isPermaLink="false">http://www.webmaster.pt/?p=11960</guid>
		<description><![CDATA[Como publicar uma mensagem aleatória ou randomicamente no site, com uma citação famosa ou qualquer outra mensagem curta,<p><a href="http://www.webmaster.pt/sorte-do-dia-php-11960.html">Sorte Do Dia Em PHP</a> &eacute; um artigo da nossa comunidade: <a href="http://www.webmaster.pt">Webmaster.pt Marketocracia Digital</a></p>

Related posts:<ol>
<li><a href='http://www.webmaster.pt/como-usar-leitor-personalizado-youtube-11686.html' rel='bookmark' title='Como Usar O Leitor Personalizado Do Youtube No Seu Site'>Como Usar O Leitor Personalizado Do Youtube No Seu Site</a></li>
<li><a href='http://www.webmaster.pt/como-validar-formulario-8269.html' rel='bookmark' title='Como Validar Formulário'>Como Validar Formulário</a></li>
<li><a href='http://www.webmaster.pt/sistema-noticias-php-mysql-parte3-5249.html' rel='bookmark' title='Sistema De Notícias Em PHP E MySQL Parte3'>Sistema De Notícias Em PHP E MySQL Parte3</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Uma das coisas que gosto de receber no dia a dia são mensagens carinho de amigos ou parentes me desejando um bom dia de trabalho, entre outras coisas.</p>
<p>É interessante e você encontra esse tipo de sistema em vários lugares. Sejam eles no Orkut, Facebook, Twitter, entre outros.</p>
<p>Quando pensa em desenvolver algo deste gênero, geralmente imagina um código simples, que conta com arrays e imprime algo randomicamente, correto?</p>
<p>Em parte é até bom imaginar isso, mas&#8230; você já tentou desenvolver um sisteminha como esse?</p>
<p>Na matéria de hoje elaborei algo prático onde você pode postar mensagens diárias e imprimir em tela.</p>
<p><img src="http://www.webmaster.pt/wp-content/uploads/2010/12/sorte.jpg" alt="sorte do dia" title="sorte do dia" width="425" height="282" class="aligncenter size-full wp-image-12131" /></p>
<h2>Configurando a Base de Dados</h2>
<p>Antes de tudo, é necessário configurar a base de dados. </p>
<p>Com o BD já criado, acesse o ficheiro &#8220;conexao.php&#8221; e configure o ficheiro alterando as informações de acesso à base de dados (conforme script a seguir).</p>
<p><pre><code><br />
<br />
&lt;?php<br />
<br />
&lt;?<br />
<br />
$host&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= &quot;SERVIDOR&quot;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // SERVIDOR<br />
$database&nbsp;&nbsp;= &quot;DATABASE&quot;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// BASE DE DADOS<br />
$login_db&nbsp;&nbsp;= &quot;USUARIO&quot;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// USUARIO MYSQL<br />
$senha_db&nbsp;&nbsp;= &quot;SENHA&quot;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // SENHA MYSQL<br />
<br />
$conn&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= mysql_connect($host, $login_db, $senha_db);<br />
<br />
mysql_select_db($database, $conn);<br />
<br />
?&gt;<br />
<br />
</code></pre></p>
<p>Após a configuração, vamos agora criar a tabela que será usada!</p>
<h2>Criando a Tabela na Base de Dados:</h2>
<p>Para configurar a base de dados através do script, abra o ficheiro script-sql.txt (disponível em anexo) e cole seu conteúdo no Programa utilizado para gerenciamento da base de dados.</p>
<p>Em nossas matérias utilizamos como padrão o MySQLFront. Caso tu também esteja utilizando este programa, clique em SQL Editor e cole o conteúdo do script (conforme disponibilizado a seguir).</p>
<p><pre><code><br />
<br />
----- INSTALANDO A TABELA -----<br />
<br />
CREATE TABLE `tbl_frases` (<br />
&nbsp;&nbsp;`id_frase` int(11) NOT NULL auto_increment,<br />
&nbsp;&nbsp;`frase` varchar(255) default NULL,<br />
&nbsp;&nbsp;`data_publicacao` varchar(11) default NULL,<br />
&nbsp;&nbsp;`status` int(11) default NULL,<br />
&nbsp;&nbsp;PRIMARY KEY&nbsp;&nbsp;(`id_frase`)<br />
);<br />
<br />
INSERT INTO `tbl_frases` (`id_frase`,`frase`,`data_publicacao`,`status`) VALUES (11,&#039;Ame quem te ama e você será feliz.&#039;,&#039;2010-12-06&#039;,1);<br />
INSERT INTO `tbl_frases` (`id_frase`,`frase`,`data_publicacao`,`status`) VALUES (14,&#039;O amor é eterno quando você está disposto a se dar.&#039;,&#039;2010-12-07&#039;,1);<br />
<br />
</code></pre></p>
<p>OBS.: Veja que no campo data_publicacao estou trabalhando com &#8220;varchar&#8221;. Isso é opcional meu, mas se você quiser, poderá trabalhar com o &#8220;date&#8221;.</p>
<p>Após importar os dados, você já poderá fazer uso do sistema abaixo.</p>
<h2>Exmplorando o Sistema &#8211; Página Inicial:</h2>
<p>Bem&#8230; vamos dar uma olhada no script e ver como podemos trabalhar com ele?</p>
<p>No script a seguir (página index.php) disponibilizei o conteúdo de forma prática, de forma que você possa efetuar a busca por data (conforme script a seguir).</p>
<p><pre><code><br />
<br />
&lt;? include(&#039;conexao.php&#039;); ?&gt;<br />
<br />
&lt;br&gt;&lt;center&gt;&lt;h2&gt;WebMaster.PT&lt;/h2&gt; &lt;p&gt;&lt;br&gt;&nbsp;&nbsp;Sorte do dia em PHP&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/center&gt; &lt;br&gt;&lt;br&gt;<br />
&lt;a href=&#039;frases_cadastrar.php&#039;&gt;Cadastrar Frase&lt;/a&gt; - &lt;a href=&#039;frases_listar.php&#039;&gt;Listar Frases&lt;/a&gt;&lt;br&gt;&lt;br&gt;<br />
<br />
&lt;?php<br />
<br />
$query_frase = &quot;SELECT * FROM tbl_frases WHERE data_publicacao = &#039;&quot;. date(&#039;Y-m-d&#039;) .&quot;&#039; and status = &#039;1&#039; order by rand()&quot;;<br />
$rs_frase&nbsp;&nbsp;&nbsp;&nbsp;= mysql_query($query_frase);<br />
<br />
$total_frases = mysql_num_rows($rs_frase);<br />
<br />
$campo_frase = mysql_fetch_array($rs_frase);<br />
<br />
if($total_frases &gt;= 1){<br />
<br />
echo &quot;&lt;b&gt;Frase do dia: &lt;/b&gt; &quot;. $campo_frase[&#039;frase&#039;];<br />
<br />
}else{<br />
<br />
echo &quot;Não existe frase cadastrada no dia de hoje.&quot;;<br />
<br />
}<br />
<br />
?&gt;<br />
<br />
</code></pre></p>
<p>As frases entrarão em formato randomico, isso é: Você poderá cadastrar quantas mensagens quiser para uma data específica.</p>
<p>Caso não haja nenhuma frase cadastrada para esta data, o sistema informará que não há nenhuma data para aquele dia.</p>
<h2>Exmplorando o Sistema &#8211; Página de Cadastro:</h2>
<p>A página de cadastro não tem mistério. Você terá apenas de digitar a frase do dia e a data que você quer que seja publicado o conteúdo.</p>
<p>Após isso, basta apenas clicar no botão &#8220;Enviar&#8221; (conforme script a seguir).</p>
<p><pre><code><br />
<br />
&lt;html&gt;<br />
&lt;head&gt;<br />
&lt;title&gt;WebMaster.PT - Trabalhando com galeria de vídeos&lt;/title&gt;<br />
&lt;/head&gt;<br />
&lt;body&gt;&lt;center&gt;&lt;br&gt;&lt;h2&gt;WebMaster.PT&lt;/h2&gt;&lt;br&gt;Sorte do dia em PHP&lt;br&gt;&lt;Br&gt;&lt;/center&gt;<br />
&lt;div align=&quot;center&quot;&gt;<br />
&nbsp;&nbsp;&lt;form action=&quot;script_frases.php?acao=cadastrar&quot; method=&quot;post&quot; enctype=&quot;multipart/form-data&quot; name=&quot;form1&quot;&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;table width=&quot;500&quot; border=&quot;0&quot; cellspacing=&quot;5&quot;&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td width=&quot;56&quot;&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;div align=&quot;left&quot;&gt;&lt;strong&gt;Frase:&lt;/strong&gt;&lt;/div&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td width=&quot;128&quot;&gt;&lt;div align=&quot;left&quot;&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;label&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;input name=&quot;frase&quot; type=&quot;text&quot;&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/label&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/div&gt;&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;&lt;strong&gt;Data de Publica&amp;ccedil;&amp;atilde;o:&lt;/strong&gt;&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;&lt;div align=&quot;left&quot;&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;label&gt;&lt;/label&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;input name=&quot;data_publicacao&quot; type=&quot;text&quot; id=&quot;arquivo&quot;&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;/div&gt;&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td colspan=&quot;2&quot;&gt;&lt;div align=&quot;center&quot;&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;input type=&quot;submit&quot; name=&quot;Submit&quot; value=&quot;Enviar&quot;&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/div&gt;&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;/table&gt;<br />
&nbsp;&nbsp;&lt;/form&gt;<br />
&lt;/div&gt;<br />
&lt;/body&gt;<br />
&lt;/html&gt;<br />
<br />
</code></pre> </p>
<p>Bem&#8230; não estaremos publicando neste as páginas de alterar ou a de listar, mas estaremos focando no script de tratamento.</p>
<h2>Explorando o Sistema &#8211; Script de Tratamento:</h2>
<p>No script abaixo, nós focamos em incluir os comandos de inserção, alteração e exclusão em um só local (justamente para facilitar futuros ajustes).</p>
<p><pre><code><br />
<br />
&lt;?<br />
include(&quot;conexao.php&quot;);<br />
<br />
$acao = $_GET[&#039;acao&#039;];<br />
<br />
switch ($acao) {<br />
<br />
case cadastrar:<br />
<br />
$frase&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= $_POST[&#039;frase&#039;];<br />
$data_publicacao&nbsp;&nbsp;=&nbsp;&nbsp;date(&#039;Y-d-m&#039;, strtotime($_POST[&#039;data_publicacao&#039;]));<br />
$status&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= &quot;1&quot;;<br />
<br />
$query_cadastrar = &quot;insert into tbl_frases(frase, data_publicacao, status) VALUES(&#039;$frase&#039;, &#039;$data_publicacao&#039;, &#039;$status&#039;)&quot;;<br />
$rs_cadastrar&nbsp;&nbsp;&nbsp;&nbsp;= mysql_query($query_cadastrar);<br />
<br />
if ($rs_cadastrar){<br />
?&gt;<br />
<br />
&lt;SCRIPT LANGUAGE=&quot;JavaScript&quot; TYPE=&quot;text/javascript&quot;&gt; alert (&quot;Cadastro de frase efetuado com sucesso&quot;)&lt;/SCRIPT&gt;<br />
&lt;SCRIPT language=&quot;JavaScript&quot;&gt;window.location.href=&quot;index.php&quot;;&lt;/SCRIPT&gt;<br />
<br />
&lt;? }else{ ?&gt;<br />
<br />
&lt;SCRIPT LANGUAGE=&quot;JavaScript&quot; TYPE=&quot;text/javascript&quot;&gt; alert (&quot;Erro ao cadastrar frase&quot;)&lt;/SCRIPT&gt;<br />
&lt;SCRIPT language=&quot;JavaScript&quot;&gt;window.location.href=&quot;index.php&quot;;&lt;/SCRIPT&gt;<br />
<br />
&lt;?<br />
}<br />
<br />
break;<br />
<br />
case alterar:<br />
<br />
$id_frase&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = $_POST[&#039;id_frase&#039;];<br />
$frase&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= $_POST[&#039;frase&#039;];<br />
$data_publicacao&nbsp;&nbsp;=&nbsp;&nbsp;date(&#039;Y-d-m&#039;, strtotime($_POST[&#039;data_publicacao&#039;]));<br />
$status&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= &quot;1&quot;;<br />
<br />
$query_alterar = &quot;UPDATE tbl_frases SET<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;frase&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = &#039;$frase&#039;,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;data_publicacao = &#039;$data_publicacao&#039;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WHERE id_frase = &#039;$id_frase&#039;&quot;;<br />
$rs_alterar = mysql_query($query_alterar);<br />
<br />
if($rs_alterar){<br />
?&gt;<br />
&lt;SCRIPT LANGUAGE=&quot;JavaScript&quot; TYPE=&quot;text/javascript&quot;&gt; alert (&quot;Vídeo alterado com sucesso&quot;)&lt;/SCRIPT&gt;<br />
&lt;SCRIPT language=&quot;JavaScript&quot;&gt;window.location.href=&quot;index.php&quot;;&lt;/SCRIPT&gt;<br />
<br />
&lt;?<br />
}<br />
else{<br />
?&gt;<br />
&lt;SCRIPT LANGUAGE=&quot;JavaScript&quot; TYPE=&quot;text/javascript&quot;&gt; alert (&quot;Erro ao alterar Vídeo&quot;)&lt;/SCRIPT&gt;<br />
&lt;SCRIPT language=&quot;JavaScript&quot;&gt;window.location.href=&quot;index.php&quot;;&lt;/SCRIPT&gt;<br />
&lt;?<br />
}<br />
<br />
break;<br />
<br />
case excluir:<br />
<br />
$id_frase&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = $_GET[&#039;id_frase&#039;];<br />
<br />
$query_excluir = &quot;DELETE FROM tbl_frases WHERE id_frase = &#039;$id_frase&#039;&quot;;<br />
$rs_excluir&nbsp;&nbsp;&nbsp;&nbsp;= mysql_query ($query_excluir);<br />
<br />
if($rs_excluir){<br />
<br />
?&gt;<br />
&lt;SCRIPT LANGUAGE=&quot;JavaScript&quot; TYPE=&quot;text/javascript&quot;&gt; alert (&quot;Frase excluída com sucesso&quot;)&lt;/SCRIPT&gt;<br />
&lt;SCRIPT language=&quot;JavaScript&quot;&gt;window.location.href=&quot;frases_listar.php&quot;;&lt;/SCRIPT&gt;<br />
<br />
&lt;?<br />
}<br />
else<br />
{<br />
?&gt;<br />
&lt;SCRIPT LANGUAGE=&quot;JavaScript&quot; TYPE=&quot;text/javascript&quot;&gt; alert (&quot;Erro ao excluir Frase&quot;)&lt;/SCRIPT&gt;<br />
&lt;SCRIPT language=&quot;JavaScript&quot;&gt;window.location.href=&quot;frases_listar.php&quot;;&lt;/SCRIPT&gt;<br />
&lt;?<br />
}<br />
<br />
break;<br />
<br />
}<br />
<br />
?&gt;<br />
<br />
</code></pre></p>
<p>Obs.: Se você observar acima, verá que é muito mais fácil trabalhar desta maneira, não?</p>
<p>Como você pode ver, trata-se de um sistema simples. O que você acha de melhorá-lo?</p>
<p>Se você quiser, poderá inserir nele opções como:</p>
<p>- inserção de mensagens limitadas por dia;<br />
- envio das mensagens por email;<br />
- mensagens personalizadas para cada usuário, entre outros.</p>
<p>Espero que você goste deste sistema e que ele seja útil em seu dia a dia.</p>
<p>Download do código usado neste tutorial > <a href='http://www.webmaster.pt/wp-content/uploads/2010/12/ficheiros1.zip'>Sorte Do Dia Em PHP</a>
<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.webmaster.pt%2Fsorte-do-dia-php-11960.html"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.webmaster.pt%2Fsorte-do-dia-php-11960.html&amp;source=marketocracia&amp;style=normal&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p><a href="http://www.webmaster.pt/sorte-do-dia-php-11960.html">Sorte Do Dia Em PHP</a> &eacute; um artigo da nossa comunidade: <a href="http://www.webmaster.pt">Webmaster.pt Marketocracia Digital</a></p>
<p>Related posts:<ol>
<li><a href='http://www.webmaster.pt/como-usar-leitor-personalizado-youtube-11686.html' rel='bookmark' title='Como Usar O Leitor Personalizado Do Youtube No Seu Site'>Como Usar O Leitor Personalizado Do Youtube No Seu Site</a></li>
<li><a href='http://www.webmaster.pt/como-validar-formulario-8269.html' rel='bookmark' title='Como Validar Formulário'>Como Validar Formulário</a></li>
<li><a href='http://www.webmaster.pt/sistema-noticias-php-mysql-parte3-5249.html' rel='bookmark' title='Sistema De Notícias Em PHP E MySQL Parte3'>Sistema De Notícias Em PHP E MySQL Parte3</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.webmaster.pt/sorte-do-dia-php-11960.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Como Usar O Leitor Personalizado Do Youtube No Seu Site</title>
		<link>http://www.webmaster.pt/como-usar-leitor-personalizado-youtube-11686.html</link>
		<comments>http://www.webmaster.pt/como-usar-leitor-personalizado-youtube-11686.html#comments</comments>
		<pubDate>Fri, 10 Dec 2010 09:46:09 +0000</pubDate>
		<dc:creator>Quemuel Aquino</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programação]]></category>

		<guid isPermaLink="false">http://www.webmaster.pt/?p=11686</guid>
		<description><![CDATA[Aprenda a implementar o leitor personalizado do Youtube no seu site.<p><a href="http://www.webmaster.pt/como-usar-leitor-personalizado-youtube-11686.html">Como Usar O Leitor Personalizado Do Youtube No Seu Site</a> &eacute; um artigo da nossa comunidade: <a href="http://www.webmaster.pt">Webmaster.pt Marketocracia Digital</a></p>

Related posts:<ol>
<li><a href='http://www.webmaster.pt/como-usar-crontab-php-11963.html' rel='bookmark' title='Como Usar O Crontab Com O PHP'>Como Usar O Crontab Com O PHP</a></li>
<li><a href='http://www.webmaster.pt/carrinho-compras-php-5462.html' rel='bookmark' title='Carrinho de Compras Personalizado Em PHP'>Carrinho de Compras Personalizado Em PHP</a></li>
<li><a href='http://www.webmaster.pt/como-criar-rss-feed-6376.html' rel='bookmark' title='Como Criar Um RSS Feed No Seu Site'>Como Criar Um RSS Feed No Seu Site</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Se você navega na internet, certamente já ouviu falar do YouTube.</p>
<p>Esta empresa lançou há algum tempo mais uma novidade para ganhar ainda mais visitante e agregar mais serviços aos seus usuários: <a href="http://www.youtube.com/custom_player" target="_blank">Um Leitor Personalizado dos Vídeos</a></p>
<p>Através dele é possível colocar em seus sites uma galeria com todos os vídeos que você tem cadastrado em seu usuário ou também os seus vídeos marcados como favoritos. </p>
<p>Além disso você pode personalizar o player com várias cores diferentes.</p>
<p>E aí, o que achou? Prefere fazer algo personalizado e fácil de gerenciar?</p>
<p>Acompanhe nossa matéria a seguir, pois com certeza você saberá como implementar essa ferramenta a seu site.</p>
<h2>Configurando A Base De Dados MySQL</h2>
<p>Antes de tudo, é necessário configurar a base de dados. </p>
<p>Com o BD já criado, acesse o ficheiro &#8220;config.php&#8221; e configure o ficheiro alterando as informações de acesso à base de dados (conforme script a seguir).</p>
<p><pre><code><br />
<br />
&lt;?php<br />
<br />
&lt;?<br />
<br />
$host&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= &quot;SERVIDOR&quot;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // SERVIDOR<br />
$database&nbsp;&nbsp;= &quot;DATABASE&quot;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// BASE DE DADOS<br />
$login_db&nbsp;&nbsp;= &quot;USUARIO&quot;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// USUARIO MYSQL<br />
$senha_db&nbsp;&nbsp;= &quot;SENHA&quot;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // SENHA MYSQL<br />
<br />
$conn&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= mysql_connect($host, $login_db, $senha_db);<br />
<br />
mysql_select_db($database, $conn);<br />
<br />
?&gt;<br />
<br />
</code></pre></p>
<p>Após a configuração, vamos agora criar a tabela que será usada!</p>
<h2>Configurando A Tabela na Base de Dados MySQL</h2>
<p>Para configurar a base de dados através do script, abra o ficheiro script-sql.txt (disponível em anexo) e cole seu conteúdo no Programa utilizado para gerenciamento da base de dados.</p>
<p>Em nossas matérias utilizamos como padrão o MySQLFront. Caso tu também esteja utilizando este programa, clique em SQL Editor e cole o conteúdo do script (conforme disponibilizado a seguir).</p>
<p><pre><code><br />
<br />
----- INSTALANDO A TABELA -----<br />
<br />
CREATE TABLE `tbl_videos` (<br />
&nbsp;&nbsp;`id_video` int(11) NOT NULL auto_increment,<br />
&nbsp;&nbsp;`nome` varchar(200) NOT NULL default &#039;&#039;,<br />
&nbsp;&nbsp;`video` varchar(200) NOT NULL default &#039;&#039;,<br />
&nbsp;&nbsp;`data_cadastro` varchar(20) default NULL,<br />
&nbsp;&nbsp;`status` char(1) default NULL,<br />
&nbsp;&nbsp;PRIMARY KEY&nbsp;&nbsp;(`id_video`)<br />
);<br />
<br />
INSERT INTO `tbl_videos` (`id_video`,`nome`,`video`,`data_cadastro`,`status`) VALUES (2,&#039;Casamento&#039;,&#039;http://www.youtube.com/watch?v=mkKo8bNL8pU&#039;,&#039;2010-11-29&#039;,&#039;1&#039;);<br />
INSERT INTO `tbl_videos` (`id_video`,`nome`,`video`,`data_cadastro`,`status`) VALUES (5,&#039;Dicas para uso de Laboratório de Informática&#039;,&#039;http://www.youtube.com/watch?v=DwrQJpn0IQw&#039;,&#039;2010-11-29&#039;,&#039;1&#039;);<br />
<br />
</code></pre></p>
<p>Após importar os dados, você já poderá fazer uso do sistema abaixo.</p>
<h2>Explorando o Sistema</h2>
<p>O uso deste ficheiro é bem prático e objetivo.</p>
<p>Através dele e com um pequeno conhecimento de PHP / MySQL você consegue adaptar o código fonte a seu web site.</p>
<p>Abaixo estaremos verificando como funciona a página index (responsável por apresentar em tela os vídeos &#8211; conforme o script e a imagem a seguir):</p>
<p><pre><code><br />
<br />
&lt;?php<br />
<br />
include(&quot;config.php&quot;);<br />
<br />
$sql = mysql_query(&quot;SELECT * FROM tbl_videos order by id_video DESC&quot;, $conn);<br />
$dados = mysql_fetch_assoc($sql);<br />
$rows = mysql_num_rows($sql);<br />
$contador = 0;<br />
<br />
?&gt;<br />
&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;<br />
&lt;head&gt;<br />
&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=iso-8859-1&quot; /&gt;<br />
&lt;title&gt;WebMaster.PT - Trabalhando com galeria de vídeos&lt;/title&gt;<br />
&lt;style type=&quot;text/css&quot;&gt;<br />
&lt;!--<br />
body {<br />
&nbsp;&nbsp;margin-left: 5px;<br />
&nbsp;&nbsp;margin-top: 5px;<br />
&nbsp;&nbsp;margin-right: 0px;<br />
&nbsp;&nbsp;margin-bottom: 0px;<br />
}<br />
a:link {<br />
&nbsp;&nbsp;color: #000000;<br />
}<br />
a:visited {<br />
&nbsp;&nbsp;color: #000000;<br />
}<br />
a:hover {<br />
&nbsp;&nbsp;color: #000000;<br />
}<br />
a:active {<br />
&nbsp;&nbsp;color: #000000;<br />
}<br />
--&gt;<br />
&lt;/style&gt;<br />
&lt;script type=&quot;text/JavaScript&quot;&gt;<br />
&lt;!--<br />
function MM_openBrWindow(theURL,winName,features) { //v2.0<br />
&nbsp;&nbsp;window.open(theURL,winName,features);<br />
}<br />
//--&gt;<br />
&lt;/script&gt;<br />
&lt;/head&gt;<br />
<br />
&lt;body&gt;&lt;center&gt;&lt;br&gt;&lt;h2&gt;WebMaster.PT&lt;/h2&lt;br&gt;Trabalhando com galeria de vídeos&lt;br&gt;&lt;Br&gt;<br />
<br />
&lt;br&gt;&lt;a href=&#039;adicionar_videos.php&#039;&gt;adicionar vídeo&lt;/a&gt; - &lt;a href=&#039;gerenciar_videos.php&#039;&gt;gerenciar vídeos&lt;/a&gt;&lt;br&gt;&lt;br&gt;<br />
<br />
 &lt;table width=&quot;170&quot; align=&quot;center&quot;&gt;<br />
&nbsp;&nbsp; &lt;tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp; &lt;td width=&quot;228&quot;&gt;&lt;div align=&quot;center&quot;&gt;&lt;strong&gt;Galeria de Videos &lt;/strong&gt;&lt;/div&gt;&lt;/td&gt;<br />
&nbsp;&nbsp; &lt;/tr&gt;<br />
&nbsp;&nbsp; &lt;tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp; &lt;td&gt;&lt;/td&gt;<br />
&nbsp;&nbsp; &lt;/tr&gt;<br />
 &lt;/table&gt;<br />
<br />
&nbsp;&nbsp; &lt;? do { $contador = $contador + 1;<br />
&nbsp;&nbsp;<br />
$url_video&nbsp;&nbsp;= $dados[&quot;video&quot;];<br />
$nome_video = $dados[&quot;nome&quot;];<br />
&nbsp;&nbsp; ?&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp; &lt;table width=&quot;140&quot; border=&quot;0&quot; align=&quot;center&quot; cellspacing=&quot;5&quot; bordercolor=&quot;#000000&quot;&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp; &lt;tr&gt;&lt;td width=&quot;128&quot;&gt;&lt;div align=&quot;center&quot;&gt; &lt;a href=&#039;#&#039; onClick=&quot;MM_openBrWindow(&#039;ver_video.php?url_video=&lt;? echo $url_video; ?&gt;&#039;,&#039;vervideo&#039;,&#039;width=430,height=370&#039;)&quot; /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp; &lt;?<br />
&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp; $url = $url_video;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp; $img = &#039;&#039;;<br />
<br />
&nbsp;&nbsp; if(preg_match(&quot;#http://(.*)\.youtube\.com/watch\?v=(.*)(&amp;(.*))?#&quot;, $url, $matches)){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(isset($matches[2]) &amp;&amp; $matches[2]!=&#039;&#039;){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $img = &#039;http://img.youtube.com/vi/&#039;.$url_video.&#039;/default.jpg&#039;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp; }<br />
<br />
echo &quot;&lt;img src=&#039;http://img.youtube.com/vi/&quot;. $matches[2].&quot;/default.jpg&#039;&gt;&quot;;<br />
<br />
?&gt;&lt;/a&gt;&lt;br&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp; &lt;div align=&quot;center&quot;&gt;&lt;b&gt;&lt;?&nbsp;&nbsp;echo $nome_video; ?&gt;&lt;/b&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;<br />
&nbsp;&nbsp; &lt;? } while ($dados = mysql_fetch_assoc($sql)); ?&gt;&nbsp;&nbsp; <br />
<br />
&lt;/body&gt;<br />
&lt;/html&gt;<br />
<br />
</code></pre></p>
<p>IMAGEM 01 (Apresentando em tela os vídeos cadastrados)</p>
<p><img src="http://www.webmaster.pt/wp-content/uploads/2010/11/imagem014.jpg" alt="Apresentando em tela os vídeos cadastrados" title="Apresentando em tela os vídeos cadastrados" width="390" height="531" class="aligncenter size-full wp-image-11687" /></p>
<p>Como você pode verificar acima, o sistema é bem prático de mexer.</p>
<p>Nele não inseri contador de páginas, apresentação personalizada do código, até porque não era o foco, mas seu uso é bem prático.</p>
<h2>Inserindo Novo Vídeo:</h2>
<p>O processo de inserção funciona como se fosse em um formulário comum: Você preenche as informações e clica no botão para envio.</p>
<p>OBS.: Diferente de outras soluções, neste sistema você precisa inserir a URL. Feito isso, ele lhe dará a possibilidade de visualizar sempre que quiser seu vídeo preferido (conforme script e imagem a seguir).</p>
<p><pre><code><br />
<br />
&lt;html&gt;<br />
&lt;head&gt;<br />
&lt;title&gt;WebMaster.PT - Trabalhando com galeria de vídeos&lt;/title&gt;<br />
&lt;/head&gt;<br />
&lt;body&gt;&lt;center&gt;&lt;br&gt;&lt;h2&gt;WebMaster.PT&lt;/h2&lt;br&gt;Trabalhando com galeria de vídeos&lt;br&gt;&lt;Br&gt;<br />
<br />
&lt;div align=&quot;center&quot;&gt;<br />
&nbsp;&nbsp;&lt;form action=&quot;script_youtube.php?acao=cadastrar&quot; method=&quot;post&quot; enctype=&quot;multipart/form-data&quot; name=&quot;form1&quot;&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;table width=&quot;500&quot; border=&quot;0&quot; cellspacing=&quot;5&quot;&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td width=&quot;56&quot;&gt;&lt;div align=&quot;left&quot;&gt;&lt;strong&gt;Nome do Vídeo:&lt;/strong&gt;&lt;/div&gt;&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td width=&quot;128&quot;&gt;&lt;div align=&quot;left&quot;&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;label&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;input name=&quot;nome&quot; type=&quot;text&quot; id=&quot;empresa&quot;&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/label&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/div&gt;&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;&lt;strong&gt;Url do Vídeo:&lt;/strong&gt;&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;&lt;div align=&quot;left&quot;&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;label&gt;&lt;/label&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;input name=&quot;arquivo&quot; type=&quot;text&quot; id=&quot;arquivo&quot;&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;/div&gt;&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td colspan=&quot;2&quot;&gt;&lt;div align=&quot;center&quot;&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;input type=&quot;submit&quot; name=&quot;Submit&quot; value=&quot;Enviar&quot;&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/div&gt;&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;/table&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;p&gt;OBS.: Você pode add Videos do Youtube - Google Videos e Outros&lt;/p&gt;<br />
&nbsp;&nbsp;&lt;/form&gt;<br />
&lt;/div&gt;<br />
&lt;/body&gt;<br />
&lt;/html&gt;<br />
<br />
</code></pre></p>
<p>IMAGEM 02 (Cadastrando um novo vídeo)</p>
<p><img src="http://www.webmaster.pt/wp-content/uploads/2010/11/imagem023.jpg" alt="Cadastrando um novo vídeo" title="Cadastrando um novo vídeo" width="514" height="309" class="aligncenter size-full wp-image-11688" /></p>
<p>OBS.: Após preencher os campos, o sistema lhe enviará para o script de inserção (que funciona em uma página separada &#8211; conforme script a seguir):</p>
<p>Página &#8220;script_youtube.php&#8221;</p>
<p><pre><code><br />
<br />
&lt;?<br />
include(&quot;config.php&quot;);<br />
<br />
$acao = $_GET[&#039;acao&#039;];<br />
<br />
switch ($acao) {<br />
<br />
case cadastrar:<br />
<br />
$nome&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= $_POST[&#039;nome&#039;];<br />
$video&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = $_POST[&#039;arquivo&#039;];<br />
$data_cadastro = date(&#039;Y-m-d&#039;);<br />
$status&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= &quot;1&quot;;<br />
<br />
$query_cadastrar = &quot;insert into tbl_videos(nome, video, data_cadastro, status) VALUES(&#039;$nome&#039;, &#039;$video&#039;, &#039;$data_cadastro&#039;, &#039;$status&#039;)&quot;;<br />
$rs_cadastrar&nbsp;&nbsp;&nbsp;&nbsp;= mysql_query($query_cadastrar);<br />
<br />
if ($rs_cadastrar){<br />
?&gt;<br />
<br />
&lt;SCRIPT LANGUAGE=&quot;JavaScript&quot; TYPE=&quot;text/javascript&quot;&gt; alert (&quot;Cadastro de vídeo efetuado com sucesso&quot;)&lt;/SCRIPT&gt;<br />
&lt;SCRIPT language=&quot;JavaScript&quot;&gt;window.location.href=&quot;index.php&quot;;&lt;/SCRIPT&gt;<br />
<br />
&lt;? }else{ ?&gt;<br />
<br />
&lt;SCRIPT LANGUAGE=&quot;JavaScript&quot; TYPE=&quot;text/javascript&quot;&gt; alert (&quot;Erro ao cadastrar vídeo&quot;)&lt;/SCRIPT&gt;<br />
&lt;SCRIPT language=&quot;JavaScript&quot;&gt;window.location.href=&quot;index.php&quot;;&lt;/SCRIPT&gt;<br />
<br />
&lt;?<br />
}<br />
<br />
break;<br />
<br />
case excluir:<br />
<br />
$id_video&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = $_GET[&#039;id_video&#039;];<br />
<br />
$query_excluir = &quot;DELETE FROM tbl_videos WHERE id_video = &#039;$id_video&#039;&quot;;<br />
$rs_excluir&nbsp;&nbsp;&nbsp;&nbsp;= mysql_query ($query_excluir);<br />
<br />
if($rs_excluir){<br />
<br />
?&gt;<br />
&lt;SCRIPT LANGUAGE=&quot;JavaScript&quot; TYPE=&quot;text/javascript&quot;&gt; alert (&quot;Vídeo excluído com sucesso&quot;)&lt;/SCRIPT&gt;<br />
&lt;SCRIPT language=&quot;JavaScript&quot;&gt;window.location.href=&quot;index.php&quot;;&lt;/SCRIPT&gt;<br />
<br />
&lt;?<br />
}<br />
else<br />
{<br />
?&gt;<br />
&lt;SCRIPT LANGUAGE=&quot;JavaScript&quot; TYPE=&quot;text/javascript&quot;&gt; alert (&quot;Erro ao excluir Vídeo&quot;)&lt;/SCRIPT&gt;<br />
&lt;SCRIPT language=&quot;JavaScript&quot;&gt;window.location.href=&quot;index.php&quot;;&lt;/SCRIPT&gt;<br />
&lt;?<br />
}<br />
<br />
break;<br />
<br />
}<br />
<br />
?&gt;<br />
<br />
</code></pre></p>
<h2>Características Do Leitor Personalizado Do Youtube</h2>
<p>Após clicar no vídeo cadastrado (disponível na página inicial), veja que o sistema lhe encaminhará para uma página onde será apresentado o vídeo (conforme script e imagem a seguir):</p>
<p><pre><code><br />
<br />
&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;<br />
&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;<br />
&lt;head&gt;<br />
&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=iso-8859-1&quot; /&gt;<br />
&lt;title&gt;WebMaster.PT - Trabalhando com galeria de vídeos&lt;/title&gt;<br />
&lt;style type=&quot;text/css&quot;&gt;<br />
&lt;!--<br />
body {<br />
&nbsp;&nbsp;margin-left: 0px;<br />
&nbsp;&nbsp;margin-top: 0px;<br />
&nbsp;&nbsp;margin-right: 0px;<br />
&nbsp;&nbsp;margin-bottom: 0px;<br />
}<br />
--&gt;<br />
&lt;/style&gt;&lt;/head&gt;<br />
<br />
&lt;body&gt;<br />
<br />
&lt;div id=&quot;player&quot;&gt;<br />
<br />
&lt;?<br />
<br />
$url = $_GET[&#039;url_video&#039;];<br />
function embedVideo($url,$width,$height){<br />
<br />
&nbsp;&nbsp; if(preg_match(&quot;#http://(.*)\.youtube\.com/watch\?v=(.*)(&amp;(.*))?#&quot;, $url, $matches)){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo &#039;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;object width=&quot;&#039;.$width.&#039;&quot; height=&quot;&#039;.$height.&#039;&quot;&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/&#039;.$matches[2].&#039;&amp;hl=pt-br&amp;fs=1&quot;&gt;&lt;/param&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;&gt;&lt;/param&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param name=&quot;allowscriptaccess&quot; value=&quot;always&quot;&gt;&lt;/param&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;embed src=&quot;http://www.youtube.com/v/&#039;.$matches[2].&#039;&amp;hl=pt-br&amp;fs=1&quot; type=&quot;application/x-shockwave-flash&quot; allowscriptaccess=&quot;always&quot; allowfullscreen=&quot;true&quot; width=&quot;&#039;.$width.&#039;&quot; height=&quot;&#039;.$height.&#039;&quot;&gt;&lt;/embed&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/object&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#039;;<br />
&nbsp;&nbsp; }elseif(preg_match(&quot;#http://www\.metacafe\.com/watch/(([^/].*)/([^/].*))/?#&quot;, $url, $matches)){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo &#039;&lt;embed flashVars=&quot;playerVars=showStats=no|autoPlay=no|videoTitle=&quot;&nbsp;&nbsp;src=&quot;http://www.metacafe.com/fplayer/&#039;.$matches[1].&#039;.swf&quot; width=&quot;&#039;.$width.&#039;&quot; height=&quot;&#039;.$height.&#039;&quot; wmode=&quot;transparent&quot; pluginspage=&quot;http://www.macromedia.com/go/getflashplayer&quot; type=&quot;application/x-shockwave-flash&quot;&gt;&lt;/embed&gt;&#039;;<br />
&nbsp;&nbsp; }<br />
}<br />
<br />
$youtubeVideo1 = $_GET[&#039;url_video&#039;];<br />
<br />
embedVideo($youtubeVideo1,425,344);<br />
<br />
?&gt;<br />
<br />
&lt;/div&gt;<br />
&lt;/body&gt;<br />
&lt;/html&gt;<br />
<br />
</code></pre></p>
<p>IMAGEM 03 (Visualizando o vídeo)</p>
<p><img src="http://www.webmaster.pt/wp-content/uploads/2010/11/imagem032.jpg" alt="Visualizando o vídeo" title="Visualizando o vídeo" width="436" height="442" class="aligncenter size-full wp-image-11689" /></p>
<p>Veja que o sistema não te dá apenas o recurso de visualizar o vídeo cadastrado. Através dele você poderá efetuar também busca personalizada através do próprio youtube (conforme imagem a seguir):</p>
<p>IMAGEM 04 (Buscando vídeo no Youtube)</p>
<p><img src="http://www.webmaster.pt/wp-content/uploads/2010/11/imagem04.jpg" alt="Buscando vídeo no Youtube" title="Buscando vídeo no Youtube" width="427" height="444" class="aligncenter size-full wp-image-11690" /></p>
<p>OBS.: Como nosso foco é apenas a apresentação da solução, apenas inserimos as opções de inserção, visualização de vídeos cadastrados e exclusão.</p>
<p>Caso seja de seu interesse, este sistema poderá ser melhorado (tanto na aparência, quanto na inserção de novos recursos).</p>
<p>Espero que esta solução lhe ajude no dia a dia.</p>
<p><a href='http://www.webmaster.pt/wp-content/uploads/2010/11/ficheiros8.zip'>Como Usar O Leitor Personalizado Do Youtube No Seu Site</a>
<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.webmaster.pt%2Fcomo-usar-leitor-personalizado-youtube-11686.html"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.webmaster.pt%2Fcomo-usar-leitor-personalizado-youtube-11686.html&amp;source=marketocracia&amp;style=normal&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p><a href="http://www.webmaster.pt/como-usar-leitor-personalizado-youtube-11686.html">Como Usar O Leitor Personalizado Do Youtube No Seu Site</a> &eacute; um artigo da nossa comunidade: <a href="http://www.webmaster.pt">Webmaster.pt Marketocracia Digital</a></p>
<p>Related posts:<ol>
<li><a href='http://www.webmaster.pt/como-usar-crontab-php-11963.html' rel='bookmark' title='Como Usar O Crontab Com O PHP'>Como Usar O Crontab Com O PHP</a></li>
<li><a href='http://www.webmaster.pt/carrinho-compras-php-5462.html' rel='bookmark' title='Carrinho de Compras Personalizado Em PHP'>Carrinho de Compras Personalizado Em PHP</a></li>
<li><a href='http://www.webmaster.pt/como-criar-rss-feed-6376.html' rel='bookmark' title='Como Criar Um RSS Feed No Seu Site'>Como Criar Um RSS Feed No Seu Site</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.webmaster.pt/como-usar-leitor-personalizado-youtube-11686.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>reCAPTCHA, Um Captcha Social.</title>
		<link>http://www.webmaster.pt/recaptcha-captcha-social-11781.html</link>
		<comments>http://www.webmaster.pt/recaptcha-captcha-social-11781.html#comments</comments>
		<pubDate>Thu, 09 Dec 2010 10:39:32 +0000</pubDate>
		<dc:creator>Renato Gil</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programação]]></category>

		<guid isPermaLink="false">http://www.webmaster.pt/?p=11781</guid>
		<description><![CDATA[Aprenda a usar o reCAPTCHA, para combater SPAM nos formulários do seu site.<p><a href="http://www.webmaster.pt/recaptcha-captcha-social-11781.html">reCAPTCHA, Um Captcha Social.</a> &eacute; um artigo da nossa comunidade: <a href="http://www.webmaster.pt">Webmaster.pt Marketocracia Digital</a></p>

Related posts:<ol>
<li><a href='http://www.webmaster.pt/captcha-php-eliminar-spam-formularios-7705.html' rel='bookmark' title='CAPTCHA Em PHP &#8211; Eliminar SPAM Nos Formulários'>CAPTCHA Em PHP &#8211; Eliminar SPAM Nos Formulários</a></li>
<li><a href='http://www.webmaster.pt/combate-spam-formularios-7702.html' rel='bookmark' title='Combate A SPAM Em Formulários'>Combate A SPAM Em Formulários</a></li>
<li><a href='http://www.webmaster.pt/diferencas-php4-php5-10786.html' rel='bookmark' title='Algumas Diferenças Entre O PHP 4.x E O PHP 5.x'>Algumas Diferenças Entre O PHP 4.x E O PHP 5.x</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<h2 style="text-align: justify">Introdução: Captchas e Blá-blá-blá!</h2>
<p style="text-align: center"><img class="aligncenter size-full wp-image-11794" style="border: 0" src="http://www.webmaster.pt/wp-content/uploads/2010/12/are-you-human-captcha1.jpg" alt="" width="400" height="303" /><strong>Figura 1 &#8211; </strong>Você é um humano? Desculpe, tenho que perguntar.</p>
<p style="text-align: justify"><strong>Não</strong>. Isto não é mais um artigo de captcha aqui no portal &#8211; <strong>relax</strong>! O foco deste artigo é abordar os benefícios que esta solução oferece. Não vou entrar em detalhes no conceito geral, já que vocês podem encontrar excelentes artigos <a href="http://www.webmaster.pt/index.php?s=captcha" target="_blank">clicando aqui</a>.</p>
<p style="text-align: justify">Apesar disso, antes de apresentar o <a href="http://www.recaptcha.com" target="_blank"><strong>reCAPTCHA</strong></a>, é preciso que fique claro que <span style="text-decoration: underline">captchas são mecanismos que lutam <strong>contra</strong> a disseminação de Spam na web</span>. Método esse, de espalhar mensagens de propaganda, de forma ilícita, em sua maioria robôs que detectam falhas em sistemas e websites, inundando-os com conteúdo inútil. Uma das formas mais eficazes de se evitar esse desastre, é oferecer caixas de confirmação aos usuários, no intuito que se este visitante for um humano, não um script, consiga decifrar o enigma e enfim prosseguir com sua experiência. Ok? <strong>So let&#8217;s rock</strong>!</p>
<h2>Sobre o reCAPTCHA.</h2>
<p style="text-align: center"><img class="aligncenter size-full wp-image-11803" style="border: 0" src="http://www.webmaster.pt/wp-content/uploads/2010/12/recaptcha.gif" alt="" width="187" height="125" /><strong>Figura 2 &#8211; </strong>Slogan: &#8220;Stop Spam, Read Books&#8221;</p>
<p style="text-align: justify">O projeto surgiu na universidade Carnegie Mellon, Pittsburgh,  nos Estados Unidos. O slogan <strong><em>&#8220;Pare o Spam, Leia Livros&#8221;</em></strong>, deixa claro logo no início o objetivo do serviço: não oferecer <span style="text-decoration: underline">mais um</span> simples captcha, ir, além disso, que tal ler livros? É isso mesmo! Além de combater o spam no simples ato de decifrar o captcha, você está ajudando a digitalizar livros, como também artigos e jornais antigos. Mas como isso funciona?</p>
<p style="text-align: center"><img class="aligncenter" src="http://www.google.com/recaptcha/static/images/smallCaptchaSpaceWithRoughAlpha.png" alt="Funcionamento do reCAPTCHA" width="250" height="155" /><strong>Figura 3</strong> &#8211; Trechos de scans se tornam enigmas.</p>
<p style="text-align: justify">Tudo não passa de trechos de vários scans, exibidos aleatoriamente na caixa do captcha, e que no momento em que o usuário decifra-o, na verdade também acaba por digitalizar partes destes documentos antigos. Cerca de 200 milhões de captchas são resolvidos todos os dias pelos diversos usuários do serviço reCAPTCHA, tudo convertido em bytes de textos que irão beneficiar toda uma comunidade (?). O Google por sua vez já comprou o serviço. Natural que os arquivos digitalizados também sejam incorporados ao serviço <a href="http://books.google.com/" target="_blank">Google Books</a>. Estratégia nada ingênua dos googlers <a href="http://googledontbeevil.com" target="_blank">Don&#8217;t be evil</a>.</p>
<h2>Get started now!</h2>
<p>Pra começar a brincadeira será necessário que se cadastre no serviço. <a href="http://www.google.com/recaptcha/whyrecaptcha" target="_blank"><strong>Clique aqui</strong></a>!</p>
<p style="text-align: justify">Você precisará informar o domínio em questão que será utilizado para se comunicar com esta <a href="http://www.webmaster.pt/servicos-api-5203.html" target="_blank">API</a>. Será gerado duas chaves, uma pública e uma privada. Guarde estas informações, pois precisará delas para o pleno funcionamento do mashup, caso as perca, basta acessar novamente a url do serviço e gerar novas chaves. Importante é que você mantenha em segredo a chave privada, afinal, é uma senha de acesso ao serviço.</p>
<p style="text-align: center"><img class="aligncenter size-full wp-image-11915" src="http://www.webmaster.pt/wp-content/uploads/2010/12/captcha-labs-renatogil.png" alt="Informações de Cadastro no Serviço" width="559" height="378" /><strong>Figura 4</strong> &#8211; Resumo de um cadastro realizado no serviço.</p>
<p style="text-align: justify">Na <a href="http://code.google.com/apis/recaptcha/intro.html" target="_blank">documentação da API</a>,  existem diversos plugins, já desenvolvidos, para uma infinidade de  plataformas, inclusive CMSs tal como o <a href="http://code.google.com/apis/recaptcha/docs/wordpress.html" target="_blank">WordPress</a>. Já que temos muitos adeptos do PHP aqui no portal, vamos  codificar nessa linguagem com base no <a href="http://code.google.com/apis/recaptcha/docs/php.html" target="_blank">plugin</a> disponível, para um típico caso de uso comum em sites: <strong>formulários de contato</strong>!</p>
<h2>Mão na massa!</h2>
<p style="text-align: justify">Após realizar o <a href="http://code.google.com/p/recaptcha/downloads/list?q=label:phplib-Latest" target="_blank">download do plugin</a>, extraia o zip e verifique a estrutura de arquivos:</p>
<p style="text-align: center"><img class="aligncenter size-full wp-image-11927" src="http://www.webmaster.pt/wp-content/uploads/2010/12/estrutura-zip-recaptcha.png" alt="Estrutura ZIP - reCAPTCHA" width="544" height="121" /><strong>Figura 5</strong> &#8211; Plugin reCAPTCHA para PHP (versão 1.11).</p>
<p style="text-align: justify">Interessa-nos o <strong>recaptchalib.php</strong>, o restante são exemplos e instruções para uso.</p>
<p style="text-align: justify">Vamos criar uma estrutura de diretórios para um site: uma pasta para armazenamento de imagens, CSSs e Javascripts; outra para armazenar bibliotecas em PHP; na raiz uma index com um simples link para o formulário, e de fato, a página que iremos programar.</p>
<p style="text-align: center"><img class="aligncenter size-full wp-image-11936" src="http://www.webmaster.pt/wp-content/uploads/2010/12/estrutura-diretorios-website.png" alt="" width="400" height="199" /><strong>Figura 6</strong> &#8211; Estrutura de diretórios do nosso website de exemplo.</p>
<p style="text-align: justify">Começamos criando um formulário com <strong>três campos</strong>: nome, e-mail e mensagem. Ao final do mesmo, adicionamos os tradicionais botões de enviar e limpar dados. Confira:</p>
<p style="text-align: center"><a href="http://pastie.org/1345189" target="_blank"><img class="aligncenter size-full wp-image-11939" src="http://www.webmaster.pt/wp-content/uploads/2010/12/form-contato-1.png" alt="Formulário de Contato - Começando" width="620" /></a><strong>Figura 7</strong> &#8211; <a href="http://pastie.org/1345189" target="_blank">http://pastie.org/1345189</a></p>
<p style="text-align: justify">Vamos deixar a propriedade <strong>action </strong>da tag <strong>form </strong>em branco, isto pressupõe que o formulário será processado na mesma página de origem. Como está página possui uma extensão <strong>.php</strong>, podemos começar a programar nela bastando colocar o código a seguir entre a diretiva <span style="color: #ff0000"><strong>&lt;?php ?&gt;</strong></span>. Por uma questão de organização, coloque o seguinte trecho de código na primeira linha deste arquivo. Confira a seguir:</p>
<p style="text-align: center"><a href="http://pastie.org/1345240" target="_blank"><img class="aligncenter size-full wp-image-11948" src="http://www.webmaster.pt/wp-content/uploads/2010/12/form-contato-2.png" alt="Formulário de Contato - Chaves PHP" width="547" height="276" /></a><strong>Figura 8</strong> &#8211; <a href="http://pastie.org/1345240" target="_blank">http://pastie.org/1345240</a></p>
<p style="text-align: justify">Iniciamos nosso código PHP, vamos aos esclarecimentos. A função <strong>require_once</strong> solicita que a página só seja interpretada com sucesso, caso o arquivo em questão seja carregado. Ali colocamos o <span style="text-decoration: underline">caminho</span> da nossa biblioteca (plugin PHP disponível no site do projeto reCAPTCHA, já citado antes). Criamos duas variáveis que serão utilizadas para preencher as chaves no momento do cadastro do serviço, e logo em seguida, mais duas variáveis para controle de retorno da validação do script reCAPTCHA. Agora, vamos criar uma nova <strong>TR</strong> na tabela do formulário, <strong>entre</strong> o campo <span style="text-decoration: underline">mensagem</span> e os <span style="text-decoration: underline">botões de envio</span>:</p>
<p style="text-align: center"><a href="http://pastie.org/1345274" target="_blank"><img class="aligncenter size-full wp-image-11951" src="http://www.webmaster.pt/wp-content/uploads/2010/12/form-contato-3.png" alt="Formulário de Contato - Exibindo o reCAPTCHA" width="565" height="268" /></a><strong>Figura 9</strong> &#8211; <a href="http://pastie.org/1345274" target="_blank">http://pastie.org/1345274</a></p>
<p style="text-align: justify">Com tudo isso, você já conseguirá visualizar a seguinte interface:</p>
<p style="text-align: center"><img class="aligncenter size-full wp-image-11953" src="http://www.webmaster.pt/wp-content/uploads/2010/12/form-contato-4.png" alt="Formulário de Contato - Protótipo do reCAPTCHA" width="531" height="430" /><strong>Figura 10</strong> &#8211; Protótipo inicial do Captcha</p>
<p style="text-align: justify">Com tudo isso, resta-nos validar os dados e enviar a mensagem por e-mail! A regra é clara, validamos campo a campo, e em caso de erro retornamos a mensagem alertando o usuário. Existem dezenas maneiras de validar, seja por scripts JQuery, usando expressões regulares, mas enfim, vou adotar a forma mais básica, no intuito que este post seja bem prático a iniciantes. Confira a continuação do nosso trecho em PHP:</p>
<p style="text-align: center"><a href="http://pastie.org/1354395" target="_blank"><img class="aligncenter size-full wp-image-11967" src="http://www.webmaster.pt/wp-content/uploads/2010/12/formulario-5.png" alt="" width="625" /></a><strong>Figura 11</strong> &#8211; <a href="http://pastie.org/1354395" target="_blank">http://pastie.org/1354395</a></p>
<p style="text-align: justify">Uma dúvida muito comum de novos programadores, é quando utilizar o <strong>$_POST</strong> e/ou <strong>$_GET</strong>. Se o formulário está sendo processado via POST, ou seja, utilizando <strong>method=&#8221;post&#8221;</strong> na tag <span style="text-decoration: underline">form</span>, então no lado do servidor (server-side) a chamada deverá ser feita utilizando a diretiva $_POST. Caso seja via <strong>method=&#8221;get&#8221;</strong>, as variáveis ficaram visíveis na url da página no momento de submeter o formulário. Na dúvida, você pode usar ainda <strong>$_REQUEST</strong>, que aceita ambos os métodos.</p>
<p style="text-align: justify">O código está bem simples. Estamos utilizando uma série de IFs e ELSE IFs para capturar a seguinte expressão (<span style="text-decoration: underline">se-a-variável-foi-inicializada</span> <strong>E </strong><span style="text-decoration: underline">variável-está-em-branco</span>), então alerta com uma mensagem de erro. Fizemos uso das funções nativas do PHP: <strong>isset()</strong> para verificar se a variável foi inicializada, caso contrário, a todo momento que se carregasse a página, a validação seria feita, e aqui não, só realizamos ela realmente quando o usuário clica no botão submeter; e a função <strong>trim()</strong> que com um parâmetro, retira os espaços da variável em questão. Pra finalizar, verificamos se o captcha foi inicializado e então utilizamos uma função da biblioteca nativa do reCAPTCHA para validar o enigma no servidor principal (externo). A resposta fica armazenada na variável <strong>$resp</strong>.</p>
<p style="text-align: justify">Agora vamos finalizar com o envio de e-mail:</p>
<p style="text-align: center"><a href="http://pastie.org/1354443" target="_blank"><img class="aligncenter size-full wp-image-11973" src="http://www.webmaster.pt/wp-content/uploads/2010/12/formulario-6.png" alt="" width="630" /></a><strong>Figura 12</strong> &#8211; <a href="http://pastie.org/1354443" target="_blank">http://pastie.org/1354443</a></p>
<p style="text-align: justify">Prosseguindo, caso a variável <strong>$resp</strong> (retorno da validação do captcha junto ao servidor externo) tenha sido bem sucedida, criamos uma variável <strong>$texto</strong>, e em cima dela, vamos concatenando com as outras variáveis do formulário através do comando &#8220;<strong>.</strong>&#8221; (ponto). A instrução <strong>$texto .=</strong>, significa, <strong>$minha-variável = <span style="text-decoration: underline">$minha-variável</span> + <span style="text-decoration: underline">alguma-coisa-nova</span></strong>. Já o comando <strong>\n</strong> faz uma quebra de linha na visualização.</p>
<p style="text-align: justify">Por fim, usamos a função <strong>mail()</strong> para submeter a mensagem!</p>
<p style="text-align: justify">Você pode visualizar o projeto em funcionamento clicando no link abaixo:<br />
<a href="http://labs.renatogil.com.br/wmpt-recaptcha" target="_blank">http://labs.renatogil.com.br/wmpt-recaptcha</a></p>
<p style="text-align: justify">Caso deseje visualizar os códigos-fontes do aplicativo, faça o download!<br />
<a href="http://labs.renatogil.com.br/wmpt-recaptcha/sources.zip" target="_blank">http://labs.renatogil.com.br/wmpt-recaptcha/sources.zip</a></p>
<h2>Considerações Finais.</h2>
<p style="text-align: justify">O reCAPTCHA sem dúvida é um serviço muito promissor. Além da portabilidade e a capacidade de <a href="http://code.google.com/apis/recaptcha/docs/customization.html" target="_blank">customizar temas</a>, fora o projeto social como um todo envolvido, é importante ressaltar que ele vai de encontro com as boas práticas de acessibilidade. Caso seu visitante seja deficiente visual, ele pode acionar o botão para ouvir o áudio do captcha. A parte ruim? O áudio é inglês! Mas isso é questão de tempo, ainda mais agora que o pai Google está investindo massivamente no projeto!</p>
<p style="text-align: justify"><strong>Até o próximo artigo!</strong></p>
<p style="text-align: justify">
<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.webmaster.pt%2Frecaptcha-captcha-social-11781.html"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.webmaster.pt%2Frecaptcha-captcha-social-11781.html&amp;source=marketocracia&amp;style=normal&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p><a href="http://www.webmaster.pt/recaptcha-captcha-social-11781.html">reCAPTCHA, Um Captcha Social.</a> &eacute; um artigo da nossa comunidade: <a href="http://www.webmaster.pt">Webmaster.pt Marketocracia Digital</a></p>
<p>Related posts:<ol>
<li><a href='http://www.webmaster.pt/captcha-php-eliminar-spam-formularios-7705.html' rel='bookmark' title='CAPTCHA Em PHP &#8211; Eliminar SPAM Nos Formulários'>CAPTCHA Em PHP &#8211; Eliminar SPAM Nos Formulários</a></li>
<li><a href='http://www.webmaster.pt/combate-spam-formularios-7702.html' rel='bookmark' title='Combate A SPAM Em Formulários'>Combate A SPAM Em Formulários</a></li>
<li><a href='http://www.webmaster.pt/diferencas-php4-php5-10786.html' rel='bookmark' title='Algumas Diferenças Entre O PHP 4.x E O PHP 5.x'>Algumas Diferenças Entre O PHP 4.x E O PHP 5.x</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.webmaster.pt/recaptcha-captcha-social-11781.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Como Usar O Crontab Com O PHP</title>
		<link>http://www.webmaster.pt/como-usar-crontab-php-11963.html</link>
		<comments>http://www.webmaster.pt/como-usar-crontab-php-11963.html#comments</comments>
		<pubDate>Tue, 07 Dec 2010 08:15:41 +0000</pubDate>
		<dc:creator>Quemuel Aquino</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programação]]></category>

		<guid isPermaLink="false">http://www.webmaster.pt/?p=11963</guid>
		<description><![CDATA[Aprenda a usar o PHP para executar comandos no Crontab, que ficam agendados para execução nos dias e horas que você determinar.<p><a href="http://www.webmaster.pt/como-usar-crontab-php-11963.html">Como Usar O Crontab Com O PHP</a> &eacute; um artigo da nossa comunidade: <a href="http://www.webmaster.pt">Webmaster.pt Marketocracia Digital</a></p>

Related posts:<ol>
<li><a href='http://www.webmaster.pt/como-usar-leitor-personalizado-youtube-11686.html' rel='bookmark' title='Como Usar O Leitor Personalizado Do Youtube No Seu Site'>Como Usar O Leitor Personalizado Do Youtube No Seu Site</a></li>
<li><a href='http://www.webmaster.pt/senhas-criptografadas-7141.html' rel='bookmark' title='Senhas Criptografadas &#8211; Como Gerar E Recuperar?'>Senhas Criptografadas &#8211; Como Gerar E Recuperar?</a></li>
<li><a href='http://www.webmaster.pt/google-font-api-como-usar-5598.html' rel='bookmark' title='Google Font API: Como Usar!'>Google Font API: Como Usar!</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Tu já percebeu como as coisas hoje em dia estão corridas?</p>
<p>São várias tarefas, vários eventos para desenvolver e se não prestarmos atenção, corremos o risco de deixarmos algo para trás.</p>
<p>Alguns profissionais que utilizam programas e ficheiros em desktop, utilizam o &#8220;Agendador de Tarefas&#8221; para não realizar suas atividades. E você que usa a Internet? Que recurso poderá usar?</p>
<p>Hoje estaremos falando um pouco sobre o &#8220;Crontab&#8221;, isto é: Um recurso disponível no Linux e também no CPanel, um dos mais conhecidos Paineis de Gerenciamento de Web Sites do mundo.</p>
<p><img src="http://www.webmaster.pt/wp-content/uploads/2010/12/crontab.gif" alt="crontab" title="crontab" width="509" height="334" class="aligncenter size-full wp-image-11984" /></p>
<p>Não vamos entrar em detalhes quanto ao gerenciamento do Crontab no Linux, nem a seus recursos, mas daremos um exemplo básico de como você pode usar o PHP e melhorar suas atividades utilizando esta ferramenta.</p>
<h2>Conhecendo O Crontab</h2>
<p>Conforme falamos a pouco no início desta matéria, o Crontab do Linux segue o mesmo conceito do agendador de tarefas do Windows.</p>
<p>Se você desenvolve algum sistema, certamente precisa executar uma cobrança, avisos periódicos, entre outras funções.</p>
<p>Com o tempo, isso se torna cansativo fazer manualmente.</p>
<p>Por esse motivo, temos como usar o Crontab, pois essa ferramenta que é nativa do Linux e está disponível em nossos Painéis de Controle (CPanel), nos possibilita efetuar serviços programados na hora exata (hora, minuto, dia, semana ou mês).</p>
<h2>Modo De Uso Do Crontab</h2>
<p>A primeira vista, se você nunca usou o Crontab para executar tarefas, com certeza você vai estranhar o seu funcionamento, mas após se acostumar, não terá problemas.</p>
<p>O Crontab trabalha executando comandos agendados através de minutos, horas, dias, meses e dias da semana.</p>
<p>Vamos verificar um exemplo mais prático:</p>
<ul>
<li><strong>Para executar os Minutos:</strong> Você deverá informar no script números de 0 a 59 (para todo o minuto);</li>
<li><strong>Para executar as Horas: </strong> Você deverá informar no script números de 0 a 23 (para toda hora);</li>
<li><strong>Para executar dias do mês:</strong> Você deverá informar no script números de 0 a 31 (para todo dia);</li>
<li><strong>Para executar o Mês:</strong> Você deverá informar no script números de 1 a 12 (para todo mês);</li>
<li><strong>Caso seja de seu interesse executar os dias da Semana:</strong> Você deverá informar no script números de 0 a 7 (para todo dia da semana);</li>
</ul>
<p>Após isso, execute o Comando, isto é: a tarefa que deverá ser executada através do Crontab.</p>
<p>Entendo se você disser: Puxa, complicou tudo&#8230;</p>
<p>Vamos para alguns exemplos práticos?</p>
<h2>Executando Scripts De Hora Em Hora</h2>
<p>Digamos que você queira agendar uma tarefa disponível no ficheiro &#8220;usando_crontab.php&#8221; (disponível em &#8220;/var/www&#8221;). Basta apenas executar a tarefa conforme o código a seguir:</p>
<p><pre><code><br />
<br />
00 * * * * /var/www/usando_crontab.php<br />
<br />
</code></pre></p>
<p>OBS.: No evento acima, estamos programando o script &#8220;usando_crontab.php&#8221; para ser executado todos os dias, de hora em hora sempre que chegar ao minuto &#8220;00&#8243;.</p>
<h2>Executando Scripts Diáriamente</h2>
<p>Digamos que você queira executar o script diáriamente. Você precisará seguir esse formato:</p>
<p><pre><code><br />
<br />
02 4 * * * /var/www/usando_crontab.php<br />
<br />
</code></pre></p>
<h2>Executando Script Semanalmente</h2>
<p>Para executar o script semanalmente, você precisa mudar apenas alguns detalhes (conforme código a seguir).</p>
<p><pre><code><br />
<br />
22 4 * * 0 /var/www/usando_crontab.php<br />
<br />
</code></pre></p>
<p>Bem&#8230; é algo prático, mas&#8230; vamos matar todas as dúvidas analisando um gráfico?</p>
<p>Veja o código a seguir e pense em um horário para executar seu script.</p>
<p><pre><code><br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;44 3 * 3-11 1-5 root /var/www/usando_crontab.php<br />
&nbsp;&nbsp;&nbsp;&nbsp; | | |&nbsp;&nbsp; |&nbsp;&nbsp; |&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp; |<br />
&nbsp;&nbsp;&nbsp;&nbsp; | | |&nbsp;&nbsp; |&nbsp;&nbsp; |&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp; +---- comando a ser executado (com a rota)<br />
&nbsp;&nbsp;&nbsp;&nbsp; | | |&nbsp;&nbsp; |&nbsp;&nbsp; |&nbsp;&nbsp; +---------- usuário que executará o comando<br />
&nbsp;&nbsp;&nbsp;&nbsp; | | |&nbsp;&nbsp; |&nbsp;&nbsp; +-------------- dia da semana<br />
&nbsp;&nbsp;&nbsp;&nbsp; | | |&nbsp;&nbsp; +------------------ mês do ano<br />
&nbsp;&nbsp;&nbsp;&nbsp; | | +---------------------- dia do mês<br />
&nbsp;&nbsp;&nbsp;&nbsp; | +------------------------ hora<br />
&nbsp;&nbsp;&nbsp;&nbsp; +-------------------------- minuto<br />
<br />
</code></pre></p>
<p>Mais prático, não?</p>
<h2>Como Usar O PHP?</h2>
<p>Bem&#8230; a integração ao PHP é muito mais fácil e pede apenas 1 detalhe:</p>
<p>Antes de executar seu script, é necessário disponibilizar o caminho a seguir na primeira linha, para que o Crontab execute o arquivo PHP corretamente (conforme o exemplo a seguir):</p>
<p><pre><code><br />
<br />
#!/usr/bin/php<br />
<br />
</code></pre></p>
<p>Bem&#8230; não precisa fazer muita coisa. Basta apenas você elaborar o seu script e agendar no Crontab.</p>
<p>No exemplo a seguir, o ficheiro disponibiliza no ficheiro &#8220;teste.txt&#8221; os horários em que executou tarefa no Crontab.</p>
<p><pre><code><br />
<br />
#!/usr/bin/php<br />
<br />
&lt;?php<br />
<br />
file_put_contents(&quot;teste.txt&quot;, &quot;Crontab rodou em: &quot;.date(‘d/m/Y H:i’));<br />
<br />
?&gt;<br />
<br />
</code></pre></p>
<p>Prático, não?</p>
<p>Execute suas atividades e faça os ajustes necessários!</p>
<p>Acredito que mesmo se você tiver pouco tempo de Programação web, não terá dificuldades para trabalhar com esta ferramenta.
<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.webmaster.pt%2Fcomo-usar-crontab-php-11963.html"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.webmaster.pt%2Fcomo-usar-crontab-php-11963.html&amp;source=marketocracia&amp;style=normal&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p><a href="http://www.webmaster.pt/como-usar-crontab-php-11963.html">Como Usar O Crontab Com O PHP</a> &eacute; um artigo da nossa comunidade: <a href="http://www.webmaster.pt">Webmaster.pt Marketocracia Digital</a></p>
<p>Related posts:<ol>
<li><a href='http://www.webmaster.pt/como-usar-leitor-personalizado-youtube-11686.html' rel='bookmark' title='Como Usar O Leitor Personalizado Do Youtube No Seu Site'>Como Usar O Leitor Personalizado Do Youtube No Seu Site</a></li>
<li><a href='http://www.webmaster.pt/senhas-criptografadas-7141.html' rel='bookmark' title='Senhas Criptografadas &#8211; Como Gerar E Recuperar?'>Senhas Criptografadas &#8211; Como Gerar E Recuperar?</a></li>
<li><a href='http://www.webmaster.pt/google-font-api-como-usar-5598.html' rel='bookmark' title='Google Font API: Como Usar!'>Google Font API: Como Usar!</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.webmaster.pt/como-usar-crontab-php-11963.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Controle De Versão E Gestão De Arquivos</title>
		<link>http://www.webmaster.pt/controle-versao-gestao-arquivos-5681.html</link>
		<comments>http://www.webmaster.pt/controle-versao-gestao-arquivos-5681.html#comments</comments>
		<pubDate>Fri, 03 Dec 2010 09:55:30 +0000</pubDate>
		<dc:creator>Renato Gil</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Geral]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[controle]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[repositório]]></category>
		<category><![CDATA[svn]]></category>
		<category><![CDATA[versão]]></category>

		<guid isPermaLink="false">http://www.webmaster.pt/?p=5681</guid>
		<description><![CDATA[Artigo fantástico do Renato Gil sobre Controle De Versão E Gestão De Arquivos no Desenvolvimento Web. A não perder!<p><a href="http://www.webmaster.pt/controle-versao-gestao-arquivos-5681.html">Controle De Versão E Gestão De Arquivos</a> &eacute; um artigo da nossa comunidade: <a href="http://www.webmaster.pt">Webmaster.pt Marketocracia Digital</a></p>

Related posts:<ol>
<li><a href='http://www.webmaster.pt/graficos-controle-chart-1587.html' rel='bookmark' title='Crie Gráficos Com O Controle Chart'>Crie Gráficos Com O Controle Chart</a></li>
<li><a href='http://www.webmaster.pt/sistema-gestao-auto-escolas-parte1-10436.html' rel='bookmark' title='Sistema De Gestão De Auto Escolas &#8211; Parte1'>Sistema De Gestão De Auto Escolas &#8211; Parte1</a></li>
<li><a href='http://www.webmaster.pt/upload-arquivos-php-743.html' rel='bookmark' title='Upload De Arquivos Com PHP'>Upload De Arquivos Com PHP</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<h2 style="text-align: left">Definição</h2>
<p style="text-align: justify">Em ambientes de desenvolvimento,  é muito comum que vários programadores manipulem ao mesmo tempo determinado arquivo. O controle de versão auxilia justamente na eficiência deste fluxo de alterações visando o não extravio de dados. Este tipo de ferramenta atua ainda na mesclagem de códigos, como também na resolução de conflitos em casos de versões diferentes, podendo inclusive, desfazer uma alteração.</p>
<h2>Software Colaborativo</h2>
<p style="text-align: justify">Esta é a proposta de um controle de versão, oferecer um meio colaborativo que além de gerenciar o histórico, diga-se <strong>timeline</strong>, do desenvolvimento do projeto, mantenham as equipes seguras quanto à integridade de seus códigos-fontes. Essa capacidade de poder gerar versões sem dúvida é um modelo essencial ao escopo do projeto. Imagine a construção de uma casa. O comprador sem dúvida fica satisfeito na medida em que acompanha o processo de construção e pudesse dar sugestões de mudança. Agora comparamos isso ao desenvolvimento de um site. Quebramos esse site em etapas, e vamos gerando releases para testes, logo, damos feedback junto ao cliente para que ele consiga palpar seu produto final e evite retrocessos lá na frente. E o melhor, poder manter tudo arquivado e um <strong>ponto de restauração</strong> para eventuais necessidades.</p>
<p style="text-align: justify">Talvez seja por isso, e muitos outros motivos, que o controle de versão caiu tão bem na moda do desenvolvimento. Impossível imaginar um projeto sem qualquer controle de fluxo de informações e segurança em sua realização. Antigamente, víamos programadores frustrados com suas empresas, acessarem o tradicional FTP da empresa e remover tudo que haviam feito. Um prejuízo inestimável que hoje, é uma mera opção de risco. O gosto caiu ainda mais na moda em projetos open-sources, aqueles em que geralmente, os desenvolvedores voluntários se encontram em espaços intercontinentais.</p>
<p style="text-align: justify">Se tratando do cenário de softwares disponíveis, existem ferramentas gratuitas como o <a href="http://subversion.tigris.org/" target="_blank">Subversion</a> e o <a href="http://git-scm.com/" target="_blank">GIT</a>, como também soluções proprietárias, tal como o <a href="http://msdn.microsoft.com/en-us/vstudio/aa700907.aspx" target="_blank">SourceSafe</a>. Em todos os casos, seu uso é extremamente simples e baseia se apenas em conceitos fundamentais para o versionamento de códigos, o resto, é meramente recurso adicional da ferramenta com que irá trabalhar. Vamos começar?</p>
<p style="text-align: center"><img class="aligncenter size-full wp-image-6058" style="border: 1px solid #ccc" src="http://www.webmaster.pt/wp-content/uploads/2010/06/equipe-desenvolvimento.jpg" alt="" width="400" height="300" /><strong>Figura 1 &#8211; </strong>Desenvolvimento colaborativo</p>
<h2>Estrutura Funcional</h2>
<p style="text-align: justify">O controle de versão é um servidor, que a partir de agora vamos passar a chamar de <strong>repositório</strong>. Os usuários deste repositório são clientes que se conectam e atualizam seus arquivos neste servidor, semelhante a um FTP. Toda estrutura é mantida neste repositório. Confira a seguir a <span style="text-decoration: underline">estrutura lógica</span> que deverá compor este repositório:</p>
<p style="text-align: justify"><strong>Trunk<br />
</strong>O tronco é a raiz do desenvolvimento. É aqui que você encontrará a última versão do projeto da qual ainda <span style="text-decoration: underline">está</span> em desenvolvimento, portanto, considere-o como uma versão não estável e também um ponto de partida para o seu desenvolvimento. Na figura abaixo, temos uma seta contínua que representa o tempo de vida de um projeto e várias intervenções <strong>r</strong>, que seriam as <span style="text-decoration: underline">revisões</span> do projeto, ou seja, alterações.</p>
<p style="text-align: center"><img class="aligncenter size-full wp-image-6079" style="border: 1px solid #ccc" src="http://www.webmaster.pt/wp-content/uploads/2010/06/workflow-trunk.png" alt="" width="425" height="248" /></p>
<p style="text-align: center"><strong>Figura 2 -</strong> Checagens de revisões no trunk</p>
<p style="text-align: justify"><strong>Branches<br />
</strong>São ramificações do tronco, ou como preferir, um braço. Amplamente usado em situações da qual é necessário dividir a linha de desenvolvimento de um projeto. Em termos práticos, é quando o programador separa uma parte do projeto da qual ele será responsável, e que posteriormente haverá um trabalho de análise para sua mesclagem. É adoto apenas em grandes projetos, já que envolve certo cuidado ao manipular branches.</p>
<p style="text-align: center"><img class="aligncenter size-full wp-image-6079" style="border: 1px solid #cccccc" src="http://www.webmaster.pt/wp-content/uploads/2010/06/workflow-branches.png" alt="" width="402" height="417" /></p>
<p style="text-align: center"><strong>Figura 3 -</strong> Desenvolvimento parcial através das branches</p>
<p style="text-align: justify"><strong>Tags<br />
</strong>São releases do projeto. A partir do momento em que o tronco está apto a fornecer uma versão estável, geramos uma nova tag da qual ficará isolada e intocável a partir de então. O desenvolvimento no tronco não para, e assim damos continuidade ao ciclo.</p>
<p style="text-align: center"><img class="aligncenter size-full wp-image-6081" style="border: 1px solid #cccccc" src="http://www.webmaster.pt/wp-content/uploads/2010/06/workflow-tags.png" alt="" width="440" height="310" /></p>
<p style="text-align: center"><strong>Figura 4 -</strong> Liberação de versões do trunk</p>
<h2>&#8220;Controlenês&#8221;</h2>
<p>Vamos agora conhecer os termos mais utilizados na gestão desse controle de versão!</p>
<ul>
<li><strong>Checkout:</strong> processo em que você realiza uma cópia do trunk para começar a trabalhar.</li>
<li><strong>Update:</strong> feito o checkout, todas as atualizações do projeto serão requisições de update.</li>
<li><strong>Commit:</strong> após concluir várias alterações, você as sincroniza com o repositório trunk.</li>
<li><strong>Add:</strong> criado um arquivo novo, você adiciona ao repositório.</li>
<li><strong>Rename:</strong> renomeia um arquivo do repositório.</li>
<li><strong>Delete:</strong> remove um arquivo do repositório.</li>
<li><strong>Revert:</strong> desfaz uma ação no repositório.</li>
<li><strong>Revision:</strong> aos especificar uma revisão, você <span style="text-decoration: underline">volta no tempo</span>.</li>
<li><strong>Lock:</strong> trava um arquivo para que ninguém consiga alterá-lo, apenas visualizá-lo.</li>
<li><strong>Unlock:</strong> destrava o arquivo para que todos voltem a manipulá-lo.</li>
<li><strong>Merge:</strong> processo em que um arquivo será mesclado com trechos de códigos. Porém, nem sempre um merge será possível. É o caso do <span style="text-decoration: underline">conflito</span>:</li>
<li><strong>Conflict:</strong> evento em que um arquivo apresenta duas versões extremamente diferentes.</li>
</ul>
<p>A partir de um conflito, você terá duas opções a decidir:</p>
<ul>
<li><strong>Resolve (theirs):</strong> aceita que a versão do repositório sobrescreva a sua.</li>
<li><strong>Resolve (mine):</strong> determina que a versão do repositório seja substituída.</li>
</ul>
<p>E enfim, outras ações &#8220;supérfluas&#8221;:</p>
<ul>
<li><strong>Log: </strong>verifica o histórico de commits realizados pelos desenvolvedores.</li>
<li><strong>Clean: </strong>após inconsistências de um conflito, talvez seja necessário limpar seu checkout.</li>
</ul>
<p style="text-align: center"><img class="attachment-medium aligncenter" src="http://www.webmaster.pt/wp-content/uploads/2010/12/dicionario-290x300.jpg" alt="dicionario" width="290" height="300" /></p>
<h2>Utilitários</h2>
<p style="text-align: justify">Na teoria, para cada ação desejada você teria que realizar um comando no terminal. Entretanto, da mesma forma que todos utilizam clientes FTP para subir alterações em um servidor, também existem clientes de controle de versão. Vou apresentar as mais utilizadas das duas soluções open-source apresentadas logo no início do artigo.</p>
<p style="text-align: center"><a href="http://tortoisesvn.tigris.org/" target="_blank"><img class="attachment-medium" src="http://www.webmaster.pt/wp-content/uploads/2010/12/tortoisesvn-client-300x41.png" alt="tortoisesvn-client" width="300" height="41" /></a></p>
<p style="text-align: justify">Cliente free mais utilizado para controles de versão SVN. Acoplado ao shell do sistema operacional, você irá conseguir realizar todas as operações através do click direito. Integração transparente, dificilmente você encontrará problemas em sua utilização.</p>
<p style="text-align: center"><a href="http://code.google.com/p/tortoisegit/downloads/list" target="_blank"><img class="attachment-medium" src="http://www.webmaster.pt/wp-content/uploads/2010/12/tortoisegit-client.png" alt="tortoisegit-client" width="95" height="55" /></a></p>
<p style="text-align: justify">Por muitos anos o SVN substituiu o CVS, e agora o GIT tem tomado o lugar dos dois. Não é o foco de o artigo abordar a diferença de ambos, o que importa é que o mesmo projeto TortoiseSVN também criou sua versão para o GIT, e o melhor, também gratuito.</p>
<h2>Considerações Finais</h2>
<p style="text-align: justify">Durante o ano vim escrevendo sobre vários conceitos no mundo do desenvolvimento. Foram ao total, sete artigos abordando de forma expressa os maiores paradigmas na convivência de um analista programador. Espero realmente que estes artigos tenham lhe servidor na busca por mais informações, já que esse era o foco. Sou contra a ideologia que temos que dar tudo &#8220;mastigado&#8221;. O estudo é essencial e um fator diferencial na área da Tecnologia da Informação. A partir de agora, espero fechar este ciclo (enquanto não me vierem novas sugestões) e começar a escrever sobre desenvolvimento prático, em especial, gadgets e mashups. Vemos-nos por aqui colegas &#8220;brasigueses&#8221;, até mais!</p>
<p style="text-align: justify">
<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.webmaster.pt%2Fcontrole-versao-gestao-arquivos-5681.html"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.webmaster.pt%2Fcontrole-versao-gestao-arquivos-5681.html&amp;source=marketocracia&amp;style=normal&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p><a href="http://www.webmaster.pt/controle-versao-gestao-arquivos-5681.html">Controle De Versão E Gestão De Arquivos</a> &eacute; um artigo da nossa comunidade: <a href="http://www.webmaster.pt">Webmaster.pt Marketocracia Digital</a></p>
<p>Related posts:<ol>
<li><a href='http://www.webmaster.pt/graficos-controle-chart-1587.html' rel='bookmark' title='Crie Gráficos Com O Controle Chart'>Crie Gráficos Com O Controle Chart</a></li>
<li><a href='http://www.webmaster.pt/sistema-gestao-auto-escolas-parte1-10436.html' rel='bookmark' title='Sistema De Gestão De Auto Escolas &#8211; Parte1'>Sistema De Gestão De Auto Escolas &#8211; Parte1</a></li>
<li><a href='http://www.webmaster.pt/upload-arquivos-php-743.html' rel='bookmark' title='Upload De Arquivos Com PHP'>Upload De Arquivos Com PHP</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.webmaster.pt/controle-versao-gestao-arquivos-5681.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

