<?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>The Blog of a WebDeveloper &#187; Webdevelopment</title>
	<atom:link href="http://joaopedropereira.com/blog/category/webdevelopment/feed/" rel="self" type="application/rss+xml" />
	<link>http://joaopedropereira.com/blog</link>
	<description>Um novo estilo de desenvolvimento</description>
	<lastBuildDate>Tue, 27 Jul 2010 23:06:28 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=abc</generator>
		<item>
		<title>PHP RSS Feed Generator Class</title>
		<link>http://joaopedropereira.com/blog/2010/07/28/php-rss-feed-generator-class/</link>
		<comments>http://joaopedropereira.com/blog/2010/07/28/php-rss-feed-generator-class/#comments</comments>
		<pubDate>Tue, 27 Jul 2010 23:06:28 +0000</pubDate>
		<dc:creator>João Pedro Pereira</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Projectos]]></category>
		<category><![CDATA[Webdevelopment]]></category>
		<category><![CDATA[class]]></category>
		<category><![CDATA[feed]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[rss]]></category>

		<guid isPermaLink="false">http://joaopedropereira.com/blog/?p=858</guid>
		<description><![CDATA[English Version &#124; Versão Portuguesa It&#8217;s been a while since I&#8217;ve planned on developing a new platform for my work as Web Developer, and next to all Web Developers, and I started to develop some modules and this RSS Generator Class born to fulfill my needs. Supported versions: RSS 2.0 Download: Download it Features: Generates [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: left; margin-right: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fjoaopedropereira.com%2Fblog%2F2010%2F07%2F28%2Fphp-rss-feed-generator-class%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fjoaopedropereira.com%2Fblog%2F2010%2F07%2F28%2Fphp-rss-feed-generator-class%2F&amp;source=joaoppereira&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<h2 style="text-align: center;"><a title="English Version" href="#english">English Version</a> | <a href="#portugues">Versão Portuguesa</a></h2>
<p style="text-align: center;"><a class="button" href="http://joaopedropereira.com/projects/rss_gen/rss_gen.zip"><br />
</a></p>
<hr />
<span id="english"> </span></p>
<p>It&#8217;s been a while since I&#8217;ve planned on developing a new platform for my work as Web Developer, and next to all Web Developers, and I started to develop some modules and this RSS Generator Class born to fulfill my needs.</p>
<p><span style="text-decoration: underline;">Supported versions:</span><br />
RSS 2.0</p>
<p><span style="text-decoration: underline;">Download:</span><br />
<a title="Download RSS Feed Generator Class" href="http://joaopedropereira.com/projects/rss_gen/rss_gen.zip">Download it</a></p>
<p><span style="text-decoration: underline;">Features:</span><br />
Generates RSS 2.0 feeds<br />
All feeds are validated by <a title="Feed Validator" href="http://feedvalidator.org/" target="_blank">feed validator</a><br />
Supports all feed elements<br />
Simple &amp; easy to define channel proprieties<br />
Simple &amp; easy to define item elements<br />
Enables usage of sub-tags and attributes</p>
<p><span style="text-decoration: underline;">Example </span></p>
<p>It&#8217;s a minimum &#8220;how to&#8221; example needed to understand how to use this class. It&#8217;s part of the download package.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #b1b100;">include</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;feed.php&quot;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">//Create a new Feed</span>
	<span style="color: #000088;">$feed</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Feed<span style="color: #009900;">&#40;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">//Setting the channel elements</span>
	<span style="color: #666666; font-style: italic;">//Helper -&gt; http://www.rssboard.org/rss-specification</span>
	<span style="color: #000088;">$feed</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">setFeedTitle</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'Demo - RSS Generator Class'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$feed</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">setFeedLink</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'http://joaopedropereira.com/blog/rss'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$feed</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">setFeedDesc</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'This is demo of generating a RSS feed. ONLY RSS Version 2.0 Supported'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$feed</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">setFeedImage</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'Oh, my photo...'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'http://joaopedropereira.com/projects/rss_gen'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'http://s3.amazonaws.com/twitter_production/profile_images/63969619/imagemresized.jpg'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">//Is possible to use setChannelElm() function for setting other optional channel elements</span>
	<span style="color: #000088;">$feed</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">setChannelElm</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'language'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'en-us'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">//Create a new Item</span>
	<span style="color: #000088;">$item1</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Item<span style="color: #009900;">&#40;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">//Setting the Item elements</span>
	<span style="color: #666666; font-style: italic;">//Helper -&gt; http://www.rssboard.org/rss-specification</span>
	<span style="color: #000088;">$item1</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">setItemTitle</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'Item nº 1'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$item1</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">setItemLink</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'http://joaopedropereira.com'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$item1</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">setItemDate</span><span style="color: #009900;">&#40;</span> <span style="color: #990000;">time</span><span style="color: #009900;">&#40;</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$item1</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">setItemDesc</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'Bla, bla, bla, item nº 1.'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$item1</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">setItemEnclosure</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'http://www.beardodisco.com/beatelectric/music/Loverboy12Mix.mp3'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'17121349'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'audio/mpeg'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$item1</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">setItemAuthor</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'contacto@joaopedropereira.com (João Pedro Pereira)'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #666666; font-style: italic;">//As in Channel is possible to use setItemElm() function for setting other optional item elements</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">//Create another Item</span>
	<span style="color: #000088;">$item2</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Item<span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'Item nº 2'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'http://twitter.com/joaoppereira'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'Bla, bla, bla, twitter of the owner of the blog of a webdeveloper'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000088;">$item2</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">setItemDate</span><span style="color: #009900;">&#40;</span> <span style="color: #990000;">time</span><span style="color: #009900;">&#40;</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$item2</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">setItemAuthor</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'contacto@joaopedropereira.com (João Pedro Pereira)'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">//Adding both created items</span>
	<span style="color: #000088;">$feed</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">addItem</span><span style="color: #009900;">&#40;</span> <span style="color: #000088;">$item1</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$feed</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">addItem</span><span style="color: #009900;">&#40;</span> <span style="color: #000088;">$item2</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">//Now we're ready to generate the Feed, Awesome!</span>
	<span style="color: #000088;">$feed</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">genFeed</span><span style="color: #009900;">&#40;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p style="text-align: center;"><a class="button" href="http://joaopedropereira.com/projects/rss_gen/rss_gen.zip">Download</a> | <a class="button" href="http://joaopedropereira.com/projects/rss_gen/">Demo</a></p>
<p><img src="http://joaopedropereira.com/blog/wp-content/uploads/2010/07/Demo-RSS-Generator-Class_1280270120429-w640-h480.png" alt="" title="Demo - RSS Feed Generator Class" width="640" height="311" class="aligncenter size-full wp-image-886" /></p>
<p style="text-align: center;"><a class="button" href="http://joaopedropereira.com/projects/rss_gen/rss_gen.zip">Download</a> | <a class="button" href="http://joaopedropereira.com/projects/rss_gen/">Demo</a></p>
<hr />
<p><span id="portugues"> </span></p>
<p>Há já algum tempo que pretendo desenvolver uma nova plataforma para o meu trabalho como Web Developer, e numa fase posterior abrir como serviço para todos os Web Developers, e por isso comecei a desenvolver alguns módulos para essa plataforma, trabalho que deu, entre outros, no módulo de RSS Feed&#8217;s surgindo assim a RSS Generator Class para satisfazer as necessidades.</p>
<p><span style="text-decoration: underline;">Versões Suportadas:</span><br />
RSS 2.0</p>
<p><span style="text-decoration: underline;">Download:</span><br />
<a title="Download RSS Feed Generator Class" href="http://joaopedropereira.com/projects/rss_gen/rss_gen.zip">Download it</a></p>
<p><span style="text-decoration: underline;">Funcionalidades:</span><br />
Gera RSS Feeds versão 2.0<br />
As feeds são válidas conforme o <a title="Feed Validator" href="http://feedvalidator.org/" target="_blank">feed validator</a><br />
Suporta todos os elementos quer dos channel&#8217;s quer dos item&#8217;s<br />
É simples definir as propriedades do channel<br />
É simples definir as propriedades dos items</p>
<p>É possível utilizar sub-tags e atributos</p>
<p><span style="text-decoration: underline;">Exemplo</span></p>
<p>Um pequeno exemplo que mostra como se pode fazer uso desta classe. Faz parte do pacote disponível para download.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #b1b100;">include</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;feed.php&quot;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">//Create a new Feed</span>
	<span style="color: #000088;">$feed</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Feed<span style="color: #009900;">&#40;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">//Setting the channel elements</span>
	<span style="color: #666666; font-style: italic;">//Helper -&gt; http://www.rssboard.org/rss-specification</span>
	<span style="color: #000088;">$feed</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">setFeedTitle</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'Demo - RSS Generator Class'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$feed</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">setFeedLink</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'http://joaopedropereira.com/blog/rss'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$feed</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">setFeedDesc</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'This is demo of generating a RSS feed. ONLY RSS Version 2.0 Supported'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$feed</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">setFeedImage</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'Oh, my photo...'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'http://joaopedropereira.com/projects/rss_gen'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'http://s3.amazonaws.com/twitter_production/profile_images/63969619/imagemresized.jpg'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">//Is possible to use setChannelElm() function for setting other optional channel elements</span>
	<span style="color: #000088;">$feed</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">setChannelElm</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'language'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'en-us'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">//Create a new Item</span>
	<span style="color: #000088;">$item1</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Item<span style="color: #009900;">&#40;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">//Setting the Item elements</span>
	<span style="color: #666666; font-style: italic;">//Helper -&gt; http://www.rssboard.org/rss-specification</span>
	<span style="color: #000088;">$item1</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">setItemTitle</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'Item nº 1'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$item1</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">setItemLink</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'http://joaopedropereira.com'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$item1</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">setItemDate</span><span style="color: #009900;">&#40;</span> <span style="color: #990000;">time</span><span style="color: #009900;">&#40;</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$item1</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">setItemDesc</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'Bla, bla, bla, item nº 1.'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$item1</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">setItemEnclosure</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'http://www.beardodisco.com/beatelectric/music/Loverboy12Mix.mp3'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'17121349'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'audio/mpeg'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$item1</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">setItemAuthor</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'contacto@joaopedropereira.com (João Pedro Pereira)'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #666666; font-style: italic;">//As in Channel is possible to use setItemElm() function for setting other optional item elements</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">//Create another Item</span>
	<span style="color: #000088;">$item2</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Item<span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'Item nº 2'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'http://twitter.com/joaoppereira'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'Bla, bla, bla, twitter of the owner of the blog of a webdeveloper'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000088;">$item2</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">setItemDate</span><span style="color: #009900;">&#40;</span> <span style="color: #990000;">time</span><span style="color: #009900;">&#40;</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$item2</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">setItemAuthor</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'contacto@joaopedropereira.com (João Pedro Pereira)'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">//Adding both created items</span>
	<span style="color: #000088;">$feed</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">addItem</span><span style="color: #009900;">&#40;</span> <span style="color: #000088;">$item1</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$feed</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">addItem</span><span style="color: #009900;">&#40;</span> <span style="color: #000088;">$item2</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">//Now we're ready to generate the Feed, Awesome!</span>
	<span style="color: #000088;">$feed</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">genFeed</span><span style="color: #009900;">&#40;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p style="text-align: center;"><a href="http://joaopedropereira.com/projects/rss_gen/rss_gen.zip">Download</a> | <a href="http://joaopedropereira.com/projects/rss_gen/">Demo</a></p>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center shr-bookmarks-bg-knowledge">
<ul class="socials">
		<li class="shr-blogger">
			<a href="http://www.blogger.com/blog_this.pyra?t&amp;u=http://joaopedropereira.com/blog/2010/07/28/php-rss-feed-generator-class/&amp;n=PHP+RSS+Feed+Generator+Class&amp;pli=1" rel="nofollow" class="external" title="Blog this on Blogger">Blog this on Blogger</a>
		</li>
		<li class="shr-delicious">
			<a href="http://delicious.com/post?url=http://joaopedropereira.com/blog/2010/07/28/php-rss-feed-generator-class/&amp;title=PHP+RSS+Feed+Generator+Class" rel="nofollow" class="external" title="Share this on del.icio.us">Share this on del.icio.us</a>
		</li>
		<li class="shr-digg">
			<a href="http://digg.com/submit?phase=2&amp;url=http://joaopedropereira.com/blog/2010/07/28/php-rss-feed-generator-class/&amp;title=PHP+RSS+Feed+Generator+Class" rel="nofollow" class="external" title="Digg this!">Digg this!</a>
		</li>
		<li class="shr-facebook">
			<a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://joaopedropereira.com/blog/2010/07/28/php-rss-feed-generator-class/&amp;t=PHP+RSS+Feed+Generator+Class" rel="nofollow" class="external" title="Share this on Facebook">Share this on Facebook</a>
		</li>
		<li class="shr-friendfeed">
			<a href="http://www.friendfeed.com/share?title=PHP+RSS+Feed+Generator+Class&amp;link=http://joaopedropereira.com/blog/2010/07/28/php-rss-feed-generator-class/" rel="nofollow" class="external" title="Share this on FriendFeed">Share this on FriendFeed</a>
		</li>
		<li class="shr-googlebuzz">
			<a href="http://www.google.com/buzz/post?url=http://joaopedropereira.com/blog/2010/07/28/php-rss-feed-generator-class/&amp;imageurl=" rel="nofollow" class="external" title="Post on Google Buzz">Post on Google Buzz</a>
		</li>
		<li class="shr-googlereader">
			<a href="http://www.google.com/reader/link?url=http://joaopedropereira.com/blog/2010/07/28/php-rss-feed-generator-class/&amp;title=PHP+RSS+Feed+Generator+Class&amp;srcUrl=http://joaopedropereira.com/blog/2010/07/28/php-rss-feed-generator-class/&amp;srcTitle=PHP+RSS+Feed+Generator+Class&amp;snippet=English%20Version%20%7C%20Vers%C3%A3o%20Portuguesa%0D%0A%0D%0A%0D%0A%0D%0A%0D%0A%20%0D%0A%0D%0AIt%27s%20been%20a%20while%20since%20I%27ve%20planned%20on%20developing%20a%20new%20platform%20for%20my%20work%20as%20Web%20Developer%2C%20and%20next%20to%20all%20Web%20Developers%2C%20and%20I%20started%20to%20develop%20some%20modules%20and%20this%20RSS%20Generator%20Class%20born%20to%20fulfill%20my%20needs.%0D%0A%0D%0ASupported%20versions%3A%0D%0ARSS%20" rel="nofollow" class="external" title="Add this to Google Reader">Add this to Google Reader</a>
		</li>
		<li class="shr-linkedin">
			<a href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://joaopedropereira.com/blog/2010/07/28/php-rss-feed-generator-class/&amp;title=PHP+RSS+Feed+Generator+Class&amp;summary=English%20Version%20%7C%20Vers%C3%A3o%20Portuguesa%0D%0A%0D%0A%0D%0A%0D%0A%0D%0A%20%0D%0A%0D%0AIt%27s%20been%20a%20while%20since%20I%27ve%20planned%20on%20developing%20a%20new%20platform%20for%20my%20work%20as%20Web%20Developer%2C%20and%20next%20to%20all%20Web%20Developers%2C%20and%20I%20started%20to%20develop%20some%20modules%20and%20this%20RSS%20Generator%20Class%20born%20to%20fulfill%20my%20needs.%0D%0A%0D%0ASupported%20versions%3A%0D%0ARSS%20&amp;source=The Blog of a WebDeveloper" rel="nofollow" class="external" title="Share this on LinkedIn">Share this on LinkedIn</a>
		</li>
		<li class="shr-mail">
			<a href="mailto:?subject=%22PHP%20RSS%20Feed%20Generator%20Class%22&amp;body=Link: http://joaopedropereira.com/blog/2010/07/28/php-rss-feed-generator-class/ (sent via shareaholic)%0D%0A%0D%0A----%0D%0A English%20Version%20%7C%20Vers%C3%A3o%20Portuguesa%0D%0A%0D%0A%0D%0A%0D%0A%0D%0A%20%0D%0A%0D%0AIt%27s%20been%20a%20while%20since%20I%27ve%20planned%20on%20developing%20a%20new%20platform%20for%20my%20work%20as%20Web%20Developer%2C%20and%20next%20to%20all%20Web%20Developers%2C%20and%20I%20started%20to%20develop%20some%20modules%20and%20this%20RSS%20Generator%20Class%20born%20to%20fulfill%20my%20needs.%0D%0A%0D%0ASupported%20versions%3A%0D%0ARSS%20" rel="nofollow" class="external" title="Email this to a friend?">Email this to a friend?</a>
		</li>
		<li class="shr-mixx">
			<a href="http://www.mixx.com/submit?page_url=http://joaopedropereira.com/blog/2010/07/28/php-rss-feed-generator-class/&amp;title=PHP+RSS+Feed+Generator+Class" rel="nofollow" class="external" title="Share this on Mixx">Share this on Mixx</a>
		</li>
		<li class="shr-netvibes">
			<a href="http://www.netvibes.com/share?title=PHP+RSS+Feed+Generator+Class&amp;url=http://joaopedropereira.com/blog/2010/07/28/php-rss-feed-generator-class/" rel="nofollow" class="external" title="Submit this to Netvibes">Submit this to Netvibes</a>
		</li>
		<li class="shr-newsvine">
			<a href="http://www.newsvine.com/_tools/seed&amp;save?u=http://joaopedropereira.com/blog/2010/07/28/php-rss-feed-generator-class/&amp;h=PHP+RSS+Feed+Generator+Class" rel="nofollow" class="external" title="Seed this on Newsvine">Seed this on Newsvine</a>
		</li>
		<li class="shr-orkut">
			<a href="http://promote.orkut.com/preview?nt=orkut.com&amp;tt=PHP+RSS+Feed+Generator+Class&amp;du=http://joaopedropereira.com/blog/2010/07/28/php-rss-feed-generator-class/&amp;cn=English%20Version%20%7C%20Vers%C3%A3o%20Portuguesa%0D%0A%0D%0A%0D%0A%0D%0A%0D%0A%20%0D%0A%0D%0AIt%27s%20been%20a%20while%20since%20I%27ve%20planned%20on%20developing%20a%20new%20platform%20for%20my%20work%20as%20Web%20Developer%2C%20and%20next%20to%20all%20Web%20Developers%2C%20and%20I%20started%20to%20develop%20some%20modules%20and%20this%20RSS%20Generator%20Class%20born%20to%20fulfill%20my%20needs.%0D%0A%0D%0ASupported%20versions%3A%0D%0ARSS%20" rel="nofollow" class="external" title="Promote this on Orkut">Promote this on Orkut</a>
		</li>
		<li class="shr-reddit">
			<a href="http://reddit.com/submit?url=http://joaopedropereira.com/blog/2010/07/28/php-rss-feed-generator-class/&amp;title=PHP+RSS+Feed+Generator+Class" rel="nofollow" class="external" title="Share this on Reddit">Share this on Reddit</a>
		</li>
		<li class="shr-slashdot">
			<a href="http://slashdot.org/bookmark.pl?url=http://joaopedropereira.com/blog/2010/07/28/php-rss-feed-generator-class/&amp;title=PHP+RSS+Feed+Generator+Class" rel="nofollow" class="external" title="Submit this to SlashDot">Submit this to SlashDot</a>
		</li>
		<li class="shr-sphinn">
			<a href="http://sphinn.com/index.php?c=post&amp;m=submit&amp;link=http://joaopedropereira.com/blog/2010/07/28/php-rss-feed-generator-class/" rel="nofollow" class="external" title="Sphinn this on Sphinn">Sphinn this on Sphinn</a>
		</li>
		<li class="shr-stumbleupon">
			<a href="http://www.stumbleupon.com/submit?url=http://joaopedropereira.com/blog/2010/07/28/php-rss-feed-generator-class/&amp;title=PHP+RSS+Feed+Generator+Class" rel="nofollow" class="external" title="Stumble upon something good? Share it on StumbleUpon">Stumble upon something good? Share it on StumbleUpon</a>
		</li>
		<li class="shr-techmeme">
			<a href="http://twitter.com/home/?status=Tip+@Techmeme+http://joaopedropereira.com/blog/2010/07/28/php-rss-feed-generator-class/+&quot;PHP+RSS+Feed+Generator+Class&quot;&amp;source=shareaholic" rel="nofollow" class="external" title="Tip this to TechMeme">Tip this to TechMeme</a>
		</li>
		<li class="shr-technorati">
			<a href="http://technorati.com/faves?add=http://joaopedropereira.com/blog/2010/07/28/php-rss-feed-generator-class/" rel="nofollow" class="external" title="Share this on Technorati">Share this on Technorati</a>
		</li>
		<li class="shr-tumblr">
			<a href="http://www.tumblr.com/share?v=3&amp;u=http%3A%2F%2Fjoaopedropereira.com%2Fblog%2F2010%2F07%2F28%2Fphp-rss-feed-generator-class%2F&amp;t=PHP+RSS+Feed+Generator+Class" rel="nofollow" class="external" title="Share this on Tumblr">Share this on Tumblr</a>
		</li>
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=PHP+RSS+Feed+Generator+Class+-+http://bit.ly/anqOsj&amp;source=shareaholic" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
		<li class="shr-yahoobuzz">
			<a href="http://buzz.yahoo.com/submit/?submitUrl=http://joaopedropereira.com/blog/2010/07/28/php-rss-feed-generator-class/&amp;submitHeadline=PHP+RSS+Feed+Generator+Class&amp;submitSummary=English%20Version%20%7C%20Vers%C3%A3o%20Portuguesa%0D%0A%0D%0A%0D%0A%0D%0A%0D%0A%20%0D%0A%0D%0AIt%27s%20been%20a%20while%20since%20I%27ve%20planned%20on%20developing%20a%20new%20platform%20for%20my%20work%20as%20Web%20Developer%2C%20and%20next%20to%20all%20Web%20Developers%2C%20and%20I%20started%20to%20develop%20some%20modules%20and%20this%20RSS%20Generator%20Class%20born%20to%20fulfill%20my%20needs.%0D%0A%0D%0ASupported%20versions%3A%0D%0ARSS%20&amp;submitCategory=science&amp;submitAssetType=text" rel="nofollow" class="external" title="Buzz up!">Buzz up!</a>
		</li>
		<li class="shr-yahoomail">
			<a href="http://compose.mail.yahoo.com/?Subject=PHP+RSS+Feed+Generator+Class&amp;body=Link: http://joaopedropereira.com/blog/2010/07/28/php-rss-feed-generator-class/ (sent via shareaholic)%0D%0A%0D%0A----%0D%0A English%20Version%20%7C%20Vers%C3%A3o%20Portuguesa%0D%0A%0D%0A%0D%0A%0D%0A%0D%0A%20%0D%0A%0D%0AIt%27s%20been%20a%20while%20since%20I%27ve%20planned%20on%20developing%20a%20new%20platform%20for%20my%20work%20as%20Web%20Developer%2C%20and%20next%20to%20all%20Web%20Developers%2C%20and%20I%20started%20to%20develop%20some%20modules%20and%20this%20RSS%20Generator%20Class%20born%20to%20fulfill%20my%20needs.%0D%0A%0D%0ASupported%20versions%3A%0D%0ARSS%20" rel="nofollow" class="external" title="Email this via Yahoo! Mail">Email this via Yahoo! Mail</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>

]]></content:encoded>
			<wfw:commentRss>http://joaopedropereira.com/blog/2010/07/28/php-rss-feed-generator-class/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
<enclosure url="http://www.beardodisco.com/beatelectric/music/Loverboy12Mix.mp3" length="17121349" type="audio/mpeg" />
		</item>
		<item>
		<title>PHP Simple Events System Overview</title>
		<link>http://joaopedropereira.com/blog/2010/07/21/php-simple-events-system-overview/</link>
		<comments>http://joaopedropereira.com/blog/2010/07/21/php-simple-events-system-overview/#comments</comments>
		<pubDate>Wed, 21 Jul 2010 18:30:41 +0000</pubDate>
		<dc:creator>scorch</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Projectos]]></category>
		<category><![CDATA[Webdevelopment]]></category>
		<category><![CDATA[AJAX]]></category>
		<category><![CDATA[eventos]]></category>
		<category><![CDATA[Objectos]]></category>
		<category><![CDATA[OOP]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://joaopedropereira.com/blog/?p=817</guid>
		<description><![CDATA[O PHP-SimpleEventsSystem é uma simples classe em PHP que permite a qualquer programador criar uma aplicação orientada a eventos em PHP. Sendo assim, esta classe possibilita a criação mais facilmente de aplicações web com possibilidade de adicionar plugins, sem que estes tenham de mexer com o código interno da aplicação, permite que uma framework use [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: left; margin-right: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fjoaopedropereira.com%2Fblog%2F2010%2F07%2F21%2Fphp-simple-events-system-overview%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fjoaopedropereira.com%2Fblog%2F2010%2F07%2F21%2Fphp-simple-events-system-overview%2F&amp;source=joaoppereira&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>O PHP-SimpleEventsSystem é uma simples classe em PHP que permite a qualquer programador criar uma aplicação orientada a eventos em PHP. Sendo assim, esta classe possibilita a criação mais facilmente de aplicações web com possibilidade de adicionar plugins, sem que estes tenham de mexer com o código interno da aplicação, permite que uma framework use internamente a classe PHP-SES e melhorando consideravelmente a interacção entre a framework e a aplicação. Mas permite muito mais, permite até onde a sua imaginação chegar. <img src='http://joaopedropereira.com/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<h2>Basic Overview</h2>
<p>Quem quiser ver a documentação completa da framework, pode aceder <a href="http://www.wiki.portugal-a-programar.org/php:tutoriais:php-ses_basicos" target="_blank">aqui</a>. No entanto, aqui vai ficar uma explicação da classe e de como ela funciona, que é bastante simples.</p>
<p>A classe cria um array multi-dimensional onde guarda as funções e o respectivo evento a que elas foram anexadas. Sempre que se anexa uma função, a classe pode ou não verificar se a função existe, conforme os parâmetros que o programador introduzir. Se passar nesse teste, verifica se a função já está anexada a esse mesmo evento,  e só depois anexa a função (as funções caso seja um array).</p>
<p>Ao executar-mos um determinado evento, a classe verifica se este existe, e em caso afirmativo, percorre o array com as funções anexadas a esse evento, e executa-as a todas pela ordem com que forma anexadas. Caso a opção Auto_run esteja activa, a função vai ainda percorrer todas as funções definidas pelo utilizador (programador da aplicação, utilizador da classe entenda-se) e verifica se alguma coincide com a formatação obrigatória e com o nome do evento em questão (<span style="text-decoration: underline">um_nome_qualquer<strong>_handles_</strong>nome_do_evento</span>). Se essa função já estiver anexada ao array, e por consequente já tiver sido executada, a classe não a executa novamente. Se ainda não estiver anexada, a classe executa-a e, caso a opção Auto_index esteja activa, indexa a função ao array do respectivo evento.</p>
<h2>Sugestões de sintaxe dos nomes dos eventos</h2>
<p>Numa aplicação de grandes dimensões torna-se importante a sintaxe que usamos e a forma como organizamos os nomes dos eventos, para que não existam conflitos e seja mais fácil memorizar o grande número de eventos que uma aplicação possa ter. Para isso os nomes dos eventos necessitam de ter lógica, e apesar de serem um pouco compridos, serão óbvios. Primeiro teremos de ter em conta algumas considerações.<br />
Os nomes dos eventos podem conter qualquer carácter, incluindo pontos, que podem servir de separador entre as várias &#8220;secções virtuais&#8221; do nome do evento. No entanto nomes de eventos com pontos não serão possíveis de aceder através da funcionalidade Auto-Index e Auto-Run pois as funções não suportam, obviamente, este tipo de caracteres no seu nome. Assim sendo, sugiro o uso do <em>underscore</em> como separador.<br />
Em todas as aplicações há uma &#8220;secção&#8221; que deve existir em todos os eventos, que indica se o evento retrata alguma acção em PHP ou HTML. Ou seja, e apesar de todas as instruções em código PHP sejam de PHP, poderão existir eventos que retratam a impressão de texto para o browser, e assim sendo, o nome do evento deve começar por <strong>html_</strong>, senão, caso retratem acções PHP, como uma conexão a uma Base de Dados, a leitura de um ficheiro, o fim de um ciclo, a execução de uma qualquer estrutura de controlo, etc., deverão começar por <strong>php_</strong>.<br />
Para a secção de HTML, podemos ainda destinguir se nos estamos a referir a alguma parte genérica do HTML, como por exemplo, um menu, que seja constituído por vários elementos HTML, deve-se adicionar um <strong>generic_</strong> a seguir ao <strong>html_</strong>, ou seja, ficaria <strong>html_generic_menu</strong>, por exemplo.<br />
Caso seja em PHP, deve-se adicionar o nome da &#8220;categoria&#8221; da acção que se está a utilizar. Por exemplo se for uma acção qualquer relacionada com a base de dados MySQL, como inserir um registo, coloca-se o <strong>mysq_</strong> depois do <strong>php_</strong>, ficando, por exemplo, <strong>php_mysql_query_insert_user</strong>.</p>
<p><span style="text-decoration: underline"><strong>Nota:</strong></span> Isto é apenas um exemplo de nomenclatura dos eventos, nada de obrigatório.</p>
<h2>Exemplos e Demos</h2>
<h3>Plugins</h3>
<p>Actualmente, é quase obrigatório qualquer aplicação, seja ela Web ou Desktop, suportar plugins. Só que isto é muitas vezes uma fonte de dor de cabeça para quem programa em PHP, criar um sistema versátil suficiente para suportar plugins. O PHP-SES permite a criação de Aplicações Web que facilmente suportam plugins. Vamos ver o seguinte exemplo.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #b1b100;">require</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;..\..\Events.php&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">//Inicia a configuração</span>
Events<span style="color: #339933;">::</span><span style="color: #004000;">setConf</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Auto_run&quot;</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
Events<span style="color: #339933;">::</span><span style="color: #004000;">setConf</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Auto_index&quot;</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">//Carrega os nomes ficheiros dos plugins.</span>
<span style="color: #000088;">$plugins</span> <span style="color: #339933;">=</span> <span style="color: #990000;">scandir</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;plugins&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">//Percorre o array com todos os ficheiros de plugins</span>
<span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$plugins</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$index</span><span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$file_name</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #666666; font-style: italic;">//Verifica se o index actual é um ficheiro e não uma pasta</span>
        <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">is_file</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;plugins/&quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$file_name</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
                <span style="color: #666666; font-style: italic;">//Inclui e executa o plugin</span>
                <span style="color: #b1b100;">require</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;plugins/&quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$file_name</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                <span style="color: #666666; font-style: italic;">//Por uma questão de segurança e para não comprometer o funcionamento da aplicação</span>
                <span style="color: #666666; font-style: italic;">//Depois de se carregar um plugin deve-se sempre habilitar a classe</span>
                <span style="color: #666666; font-style: italic;">//Para não se dar o caso de algum plugin a desabilitar e não a habilitar novamente.</span>
                Events<span style="color: #339933;">::</span><span style="color: #004000;">Enable</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
&nbsp;
<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'&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;
&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;head&gt;
        &lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=iso-8856-16&quot; /&gt;'</span><span style="color: #339933;">;</span>
        <span style="color: #666666; font-style: italic;">//Declara uma variável que permitirá adicionar conteúdo dentro dos plugins para a página</span>
        <span style="color: #000088;">$content</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #666666; font-style: italic;">//Corre todos os eventos anexados para quando os headers HTML são mostrados</span>
        <span style="color: #666666; font-style: italic;">//Esta é apenas um exemplo da sintaxe para o nome dos eventos.</span>
        Events<span style="color: #339933;">::</span><span style="color: #004000;">Run</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;html_headers&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #b1b100;">echo</span> <span style="color: #000088;">$content</span><span style="color: #339933;">;</span>
        <span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'&lt;title&gt;'</span><span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #000088;">$content</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;PHP-SES Plugins Example&quot;</span><span style="color: #339933;">;</span>
&nbsp;
        Events<span style="color: #339933;">::</span><span style="color: #004000;">Run</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;html_show_title&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #b1b100;">echo</span> <span style="color: #000088;">$content</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'&lt;/title&gt;
&lt;/head&gt;&lt;body&gt;'</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;&lt;h1&gt;Título&lt;/h1&gt;&quot;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$content</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;&lt;a href=<span style="color: #000099; font-weight: bold;">\&quot;</span>#<span style="color: #000099; font-weight: bold;">\&quot;</span>&gt;Link1&lt;/a&gt;&lt;br /&gt;&quot;</span><span style="color: #339933;">;</span>
<span style="color: #666666; font-style: italic;">//Aqui corre os eventos que permitem alterar o menu</span>
Events<span style="color: #339933;">::</span><span style="color: #004000;">Run</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;html_generic_body_menu&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #b1b100;">echo</span> <span style="color: #000088;">$content</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'&lt;/body&gt;
&lt;/html&gt;
'</span></pre></div></div>

<h3>JavaScript Events</h3>
<p>Muitas vezes torna-se cansativo estar a chamar vários exemplos por AJAX, ou até fazer a verificação no PHP através de QueryStrings. Assim sendo, e com este exemplo aplicado, basta, no evento JavaScript, chamar uma função, JavaScript também, o nome do evento em PHP, e depois é só ir adicionando funções PHP ao código PHP.</p>
<p><strong>index.php</strong></p>

<div class="wp_syntax"><div class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt; ?php </span>
<span style="color: #009900;">require<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;..\..\Events.php&quot;</span><span style="color: #66cc66;">&#41;</span>;</span>
&nbsp;
<span style="color: #009900;">?&gt;</span>
<span style="color: #009900;">&lt; !DOCTYPE html PUBLIC <span style="color: #ff0000;">&quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot;</span> <span style="color: #ff0000;">&quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">html</span> xmlns<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;http://www.w3.org/1999/xhtml&quot;</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">head</span>&gt;</span>
        <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">meta</span> <span style="color: #000066;">http-equiv</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;Content-Type&quot;</span> <span style="color: #000066;">content</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text/html; charset=iso-8856-16&quot;</span> <span style="color: #66cc66;">/</span>&gt;</span>
        <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">script</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text/javascript&quot;</span>&gt;</span>
        function RunEvent(event_name){
&nbsp;
                if (window.XMLHttpRequest){// code for IE7+, Firefox, Chrome, Opera, Safari
                        xmlhttp=new XMLHttpRequest();
                } else {// code for IE6, IE5
                        xmlhttp=new ActiveXObject(&quot;Microsoft.XMLHTTP&quot;);
                }
&nbsp;
                xmlhttp.onreadystatechange=function(){
                        if (xmlhttp.readyState==4 <span style="color: #ddbb00;">&amp;&amp; xmlhttp.status==200){</span>
<span style="color: #ddbb00;">                                document.getElementById(&quot;count_number&quot;).innerHTML=xmlhttp.responseText;</span>
                        }
                }
&nbsp;
                xmlhttp.open(&quot;GET&quot;,&quot;run.php?event=&quot; + event_name + &quot;&quot;,true);
                xmlhttp.send();
        }
        <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">script</span>&gt;</span>
        <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">title</span>&gt;</span>JavaScript Buttons Example<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">title</span>&gt;</span>
        <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">head</span>&gt;</span>
        <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">body</span>&gt;</span>
        <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">input</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;button&quot;</span> <span style="color: #000066;">name</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;btn_sample&quot;</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;btn_sample&quot;</span> <span style="color: #000066;">onclick</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;RunEvent('html_buttons_click_btn_sample')&quot;</span>  <span style="color: #000066;">value</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;Test me. Click me.&quot;</span> <span style="color: #66cc66;">/</span>&gt;</span>
        <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;count_number&quot;</span>&gt;</span>0<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span>
        <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">body</span>&gt;</span>
        <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">html</span>&gt;</span></pre></div></div>

<p><strong>run.php</strong></p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">&nbsp;
<span style="color: #b1b100;">require</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;..\..\Events.php&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">defined</span><span style="color: #009900;">&#40;</span>IS_AUTH<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #990000;">exit</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">//Se a variável $_GET[&quot;event&quot;] não estiver declarada, termina a execução da página.</span>
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_GET</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;event&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;Não foi definido nenhum evento.&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #990000;">exit</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">//Define algumas configurações para não ser necessário anexar a função.</span>
Events<span style="color: #339933;">::</span><span style="color: #004000;">setConf</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Auto_run&quot;</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
Events<span style="color: #339933;">::</span><span style="color: #004000;">setConf</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Auto_index&quot;</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">//Declara uma função anexada ao clique do botão</span>
<span style="color: #000000; font-weight: bold;">function</span> update_file_handles_html_buttons_click_btn_sample <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #666666; font-style: italic;">//Vai buscar o número de clicks que o botão já tem</span>
        <span style="color: #000088;">$number_clicks</span> <span style="color: #339933;">=</span> <span style="color: #990000;">file_get_contents</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;clicks.txt&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #666666; font-style: italic;">//Escreve outra vez para o ficheiro adicionando um clique</span>
        <span style="color: #990000;">file_put_contents</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;clicks.txt&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$number_clicks</span> <span style="color: #339933;">+</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #b1b100;">echo</span> <span style="color: #000088;">$number_clicks</span> <span style="color: #339933;">+</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">//Corre todos os eventos associados ao clique do botão.</span>
Events<span style="color: #339933;">::</span><span style="color: #004000;">Run</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_GET</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;event&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Pode ver os exemplos em funcionamento, aceda <a href="http://scorchserver.freehosting.com/php_ses_examples/">aqui</a>.</p>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center shr-bookmarks-bg-knowledge">
<ul class="socials">
		<li class="shr-blogger">
			<a href="http://www.blogger.com/blog_this.pyra?t&amp;u=http://joaopedropereira.com/blog/2010/07/21/php-simple-events-system-overview/&amp;n=PHP+Simple+Events+System+Overview&amp;pli=1" rel="nofollow" class="external" title="Blog this on Blogger">Blog this on Blogger</a>
		</li>
		<li class="shr-delicious">
			<a href="http://delicious.com/post?url=http://joaopedropereira.com/blog/2010/07/21/php-simple-events-system-overview/&amp;title=PHP+Simple+Events+System+Overview" rel="nofollow" class="external" title="Share this on del.icio.us">Share this on del.icio.us</a>
		</li>
		<li class="shr-digg">
			<a href="http://digg.com/submit?phase=2&amp;url=http://joaopedropereira.com/blog/2010/07/21/php-simple-events-system-overview/&amp;title=PHP+Simple+Events+System+Overview" rel="nofollow" class="external" title="Digg this!">Digg this!</a>
		</li>
		<li class="shr-facebook">
			<a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://joaopedropereira.com/blog/2010/07/21/php-simple-events-system-overview/&amp;t=PHP+Simple+Events+System+Overview" rel="nofollow" class="external" title="Share this on Facebook">Share this on Facebook</a>
		</li>
		<li class="shr-friendfeed">
			<a href="http://www.friendfeed.com/share?title=PHP+Simple+Events+System+Overview&amp;link=http://joaopedropereira.com/blog/2010/07/21/php-simple-events-system-overview/" rel="nofollow" class="external" title="Share this on FriendFeed">Share this on FriendFeed</a>
		</li>
		<li class="shr-googlebuzz">
			<a href="http://www.google.com/buzz/post?url=http://joaopedropereira.com/blog/2010/07/21/php-simple-events-system-overview/&amp;imageurl=" rel="nofollow" class="external" title="Post on Google Buzz">Post on Google Buzz</a>
		</li>
		<li class="shr-googlereader">
			<a href="http://www.google.com/reader/link?url=http://joaopedropereira.com/blog/2010/07/21/php-simple-events-system-overview/&amp;title=PHP+Simple+Events+System+Overview&amp;srcUrl=http://joaopedropereira.com/blog/2010/07/21/php-simple-events-system-overview/&amp;srcTitle=PHP+Simple+Events+System+Overview&amp;snippet=O%20PHP-SimpleEventsSystem%20%C3%A9%20uma%20simples%20classe%20em%20PHP%20que%20permite%20a%20qualquer%20programador%20criar%20uma%20aplica%C3%A7%C3%A3o%20orientada%20a%20eventos%20em%20PHP.%20Sendo%20assim%2C%20esta%20classe%20possibilita%20a%20cria%C3%A7%C3%A3o%20mais%20facilmente%20de%20aplica%C3%A7%C3%B5es%20web%20com%20possibilidade%20de%20adicionar%20plugins%2C%20sem%20que%20estes%20tenham%20de%20mexer%20com%20o%20" rel="nofollow" class="external" title="Add this to Google Reader">Add this to Google Reader</a>
		</li>
		<li class="shr-linkedin">
			<a href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://joaopedropereira.com/blog/2010/07/21/php-simple-events-system-overview/&amp;title=PHP+Simple+Events+System+Overview&amp;summary=O%20PHP-SimpleEventsSystem%20%C3%A9%20uma%20simples%20classe%20em%20PHP%20que%20permite%20a%20qualquer%20programador%20criar%20uma%20aplica%C3%A7%C3%A3o%20orientada%20a%20eventos%20em%20PHP.%20Sendo%20assim%2C%20esta%20classe%20possibilita%20a%20cria%C3%A7%C3%A3o%20mais%20facilmente%20de%20aplica%C3%A7%C3%B5es%20web%20com%20possibilidade%20de%20adicionar%20plugins%2C%20sem%20que%20estes%20tenham%20de%20mexer%20com%20o%20&amp;source=The Blog of a WebDeveloper" rel="nofollow" class="external" title="Share this on LinkedIn">Share this on LinkedIn</a>
		</li>
		<li class="shr-mail">
			<a href="mailto:?subject=%22PHP%20Simple%20Events%20System%20Overview%22&amp;body=Link: http://joaopedropereira.com/blog/2010/07/21/php-simple-events-system-overview/ (sent via shareaholic)%0D%0A%0D%0A----%0D%0A O%20PHP-SimpleEventsSystem%20%C3%A9%20uma%20simples%20classe%20em%20PHP%20que%20permite%20a%20qualquer%20programador%20criar%20uma%20aplica%C3%A7%C3%A3o%20orientada%20a%20eventos%20em%20PHP.%20Sendo%20assim%2C%20esta%20classe%20possibilita%20a%20cria%C3%A7%C3%A3o%20mais%20facilmente%20de%20aplica%C3%A7%C3%B5es%20web%20com%20possibilidade%20de%20adicionar%20plugins%2C%20sem%20que%20estes%20tenham%20de%20mexer%20com%20o%20" rel="nofollow" class="external" title="Email this to a friend?">Email this to a friend?</a>
		</li>
		<li class="shr-mixx">
			<a href="http://www.mixx.com/submit?page_url=http://joaopedropereira.com/blog/2010/07/21/php-simple-events-system-overview/&amp;title=PHP+Simple+Events+System+Overview" rel="nofollow" class="external" title="Share this on Mixx">Share this on Mixx</a>
		</li>
		<li class="shr-netvibes">
			<a href="http://www.netvibes.com/share?title=PHP+Simple+Events+System+Overview&amp;url=http://joaopedropereira.com/blog/2010/07/21/php-simple-events-system-overview/" rel="nofollow" class="external" title="Submit this to Netvibes">Submit this to Netvibes</a>
		</li>
		<li class="shr-newsvine">
			<a href="http://www.newsvine.com/_tools/seed&amp;save?u=http://joaopedropereira.com/blog/2010/07/21/php-simple-events-system-overview/&amp;h=PHP+Simple+Events+System+Overview" rel="nofollow" class="external" title="Seed this on Newsvine">Seed this on Newsvine</a>
		</li>
		<li class="shr-orkut">
			<a href="http://promote.orkut.com/preview?nt=orkut.com&amp;tt=PHP+Simple+Events+System+Overview&amp;du=http://joaopedropereira.com/blog/2010/07/21/php-simple-events-system-overview/&amp;cn=O%20PHP-SimpleEventsSystem%20%C3%A9%20uma%20simples%20classe%20em%20PHP%20que%20permite%20a%20qualquer%20programador%20criar%20uma%20aplica%C3%A7%C3%A3o%20orientada%20a%20eventos%20em%20PHP.%20Sendo%20assim%2C%20esta%20classe%20possibilita%20a%20cria%C3%A7%C3%A3o%20mais%20facilmente%20de%20aplica%C3%A7%C3%B5es%20web%20com%20possibilidade%20de%20adicionar%20plugins%2C%20sem%20que%20estes%20tenham%20de%20mexer%20com%20o%20" rel="nofollow" class="external" title="Promote this on Orkut">Promote this on Orkut</a>
		</li>
		<li class="shr-reddit">
			<a href="http://reddit.com/submit?url=http://joaopedropereira.com/blog/2010/07/21/php-simple-events-system-overview/&amp;title=PHP+Simple+Events+System+Overview" rel="nofollow" class="external" title="Share this on Reddit">Share this on Reddit</a>
		</li>
		<li class="shr-slashdot">
			<a href="http://slashdot.org/bookmark.pl?url=http://joaopedropereira.com/blog/2010/07/21/php-simple-events-system-overview/&amp;title=PHP+Simple+Events+System+Overview" rel="nofollow" class="external" title="Submit this to SlashDot">Submit this to SlashDot</a>
		</li>
		<li class="shr-sphinn">
			<a href="http://sphinn.com/index.php?c=post&amp;m=submit&amp;link=http://joaopedropereira.com/blog/2010/07/21/php-simple-events-system-overview/" rel="nofollow" class="external" title="Sphinn this on Sphinn">Sphinn this on Sphinn</a>
		</li>
		<li class="shr-stumbleupon">
			<a href="http://www.stumbleupon.com/submit?url=http://joaopedropereira.com/blog/2010/07/21/php-simple-events-system-overview/&amp;title=PHP+Simple+Events+System+Overview" rel="nofollow" class="external" title="Stumble upon something good? Share it on StumbleUpon">Stumble upon something good? Share it on StumbleUpon</a>
		</li>
		<li class="shr-techmeme">
			<a href="http://twitter.com/home/?status=Tip+@Techmeme+http://joaopedropereira.com/blog/2010/07/21/php-simple-events-system-overview/+&quot;PHP+Simple+Events+System+Overview&quot;&amp;source=shareaholic" rel="nofollow" class="external" title="Tip this to TechMeme">Tip this to TechMeme</a>
		</li>
		<li class="shr-technorati">
			<a href="http://technorati.com/faves?add=http://joaopedropereira.com/blog/2010/07/21/php-simple-events-system-overview/" rel="nofollow" class="external" title="Share this on Technorati">Share this on Technorati</a>
		</li>
		<li class="shr-tumblr">
			<a href="http://www.tumblr.com/share?v=3&amp;u=http%3A%2F%2Fjoaopedropereira.com%2Fblog%2F2010%2F07%2F21%2Fphp-simple-events-system-overview%2F&amp;t=PHP+Simple+Events+System+Overview" rel="nofollow" class="external" title="Share this on Tumblr">Share this on Tumblr</a>
		</li>
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=PHP+Simple+Events+System+Overview+-+http://bit.ly/bNyPjN&amp;source=shareaholic" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
		<li class="shr-yahoobuzz">
			<a href="http://buzz.yahoo.com/submit/?submitUrl=http://joaopedropereira.com/blog/2010/07/21/php-simple-events-system-overview/&amp;submitHeadline=PHP+Simple+Events+System+Overview&amp;submitSummary=O%20PHP-SimpleEventsSystem%20%C3%A9%20uma%20simples%20classe%20em%20PHP%20que%20permite%20a%20qualquer%20programador%20criar%20uma%20aplica%C3%A7%C3%A3o%20orientada%20a%20eventos%20em%20PHP.%20Sendo%20assim%2C%20esta%20classe%20possibilita%20a%20cria%C3%A7%C3%A3o%20mais%20facilmente%20de%20aplica%C3%A7%C3%B5es%20web%20com%20possibilidade%20de%20adicionar%20plugins%2C%20sem%20que%20estes%20tenham%20de%20mexer%20com%20o%20&amp;submitCategory=science&amp;submitAssetType=text" rel="nofollow" class="external" title="Buzz up!">Buzz up!</a>
		</li>
		<li class="shr-yahoomail">
			<a href="http://compose.mail.yahoo.com/?Subject=PHP+Simple+Events+System+Overview&amp;body=Link: http://joaopedropereira.com/blog/2010/07/21/php-simple-events-system-overview/ (sent via shareaholic)%0D%0A%0D%0A----%0D%0A O%20PHP-SimpleEventsSystem%20%C3%A9%20uma%20simples%20classe%20em%20PHP%20que%20permite%20a%20qualquer%20programador%20criar%20uma%20aplica%C3%A7%C3%A3o%20orientada%20a%20eventos%20em%20PHP.%20Sendo%20assim%2C%20esta%20classe%20possibilita%20a%20cria%C3%A7%C3%A3o%20mais%20facilmente%20de%20aplica%C3%A7%C3%B5es%20web%20com%20possibilidade%20de%20adicionar%20plugins%2C%20sem%20que%20estes%20tenham%20de%20mexer%20com%20o%20" rel="nofollow" class="external" title="Email this via Yahoo! Mail">Email this via Yahoo! Mail</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>

]]></content:encoded>
			<wfw:commentRss>http://joaopedropereira.com/blog/2010/07/21/php-simple-events-system-overview/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Não desaproveite o seu Footer!</title>
		<link>http://joaopedropereira.com/blog/2010/06/03/nao-desaproveite-o-seu-footer/</link>
		<comments>http://joaopedropereira.com/blog/2010/06/03/nao-desaproveite-o-seu-footer/#comments</comments>
		<pubDate>Thu, 03 Jun 2010 22:08:57 +0000</pubDate>
		<dc:creator>João Pedro Pereira</dc:creator>
				<category><![CDATA[Optimização]]></category>
		<category><![CDATA[Usabilidade]]></category>
		<category><![CDATA[Webdevelopment]]></category>
		<category><![CDATA[footer]]></category>
		<category><![CDATA[sitemap]]></category>
		<category><![CDATA[social]]></category>

		<guid isPermaLink="false">http://joaopedropereira.com/blog/?p=800</guid>
		<description><![CDATA[Ser WebDeveloper não é uma tarefa fácil, não só temos de estar sempre actualizados relativamente ao que o mercado de trabalho exige relativamente a conhecimentos em ferramentas, frameworks e linguagens de programação como também temos de estar em cima dos hot topics na área do WebDesign e Usabilidade. Construir um site do zero não é [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: left; margin-right: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fjoaopedropereira.com%2Fblog%2F2010%2F06%2F03%2Fnao-desaproveite-o-seu-footer%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fjoaopedropereira.com%2Fblog%2F2010%2F06%2F03%2Fnao-desaproveite-o-seu-footer%2F&amp;source=joaoppereira&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>Ser WebDeveloper não é uma tarefa fácil, não só temos de estar sempre actualizados relativamente ao que o mercado de trabalho exige relativamente a conhecimentos em ferramentas, frameworks e linguagens de programação como também temos de estar em cima dos hot topics na área do WebDesign e Usabilidade.</p>
<p>Construir um site do zero não é uma tarefa simples, pois exige muito planeamento, estruturação e pensamento criativo e ser criativo é muitas vezes uma dor de cabeça pois quando mais precisamos da nossa amiga criatividade ela pode não aparecer&#8230; E é preciso saber estimulá-la.</p>
<p>Tenho visto na Web Portuguesa bons sites a desaproveitar algumas áreas do site, e neste artigo vou referir-me ao footer.</p>
<p>Além do típico Acordo de Privacidade e Informações Legais (que é sempre uma boa forma de aproveitar o espaço) existem algum conteúdo especifico que pode e deve ser usado no footer.</p>
<p><img class="aligncenter size-medium wp-image-801" title="Sitemap" src="http://joaopedropereira.com/blog/wp-content/uploads/2010/06/inside_sitemap-222x300.jpg" alt="Sitemap" width="222" height="300" /><strong> Sitemap</strong> &#8211; É uma excelente forma de utilizar o espaço do footer pois é útil para os visitantes que se encontrem perdidos ou que simplesmente tenham pressa para encontrar o que procuram sem terem de fazer um scanning por todo o conteúdo do site, que pode ser moroso e por consequência pode fazer-nos perder utilizadores e possíveis clientes. Ninguém gosta de não encontrar rapidamente o que procura e cabe-nos a nós dar-lhes o que desejam.</p>
<p><img class="aligncenter size-medium wp-image-802" title="Contactos" src="http://joaopedropereira.com/blog/wp-content/uploads/2010/06/ContactUs-300x200.jpg" alt="Contactos" width="300" height="200" /></p>
<p><strong>Informação de Contacto </strong>- É também muito importante ter informações de como pode ser feito o contacto com o dono do site ou então criar um formulário de contacto para facilitar o contacto.</p>
<p><span style="text-decoration: underline;">Ferramentas e Inspiração:</span><br />
<a title="15 Great Online Form Building Tools" href="http://www.tripwiremagazine.com/2010/05/15-great-online-form-building-tools.html" target="_blank">15 Great Online Form Building Tools</a><br />
<a title="Beautiful Contact Forms For Your Inspiration" href="http://www.webdesignerdepot.com/2010/05/beautiful-contact-forms-for-your-inspiration/" target="_blank">Beautiful Contact Forms For Your Inspiration</a></p>
<p><strong> Sobre</strong> &#8211; A par da informação de contacto, uma rápida descrição do que é aquela página, quem é a empresa, quem é a pessoa, etc. algo que faça os utilizadores conhecer melhor.</p>
<p><img class="aligncenter size-medium wp-image-809" title="Web2.0 Logos" src="http://joaopedropereira.com/blog/wp-content/uploads/2010/06/web2_logos1-300x251.jpg" alt="" width="300" height="251" /></p>
<p><strong> Social Media</strong> &#8211;  É sem dúvida uma excelente forma de ganhar mais tráfego e/ou de manter os utilizadores actualizados quanto a informações relativos ao produto/conteúdo que o site tem ou vende.</p>
<p>Esta é uma lista de sugestões do que pode ser colocado no footer dos seus sites e dos sites que desenvolve, contudo a lista não termina por aqui existem muito mais coisas que podem ser colocados no footer, feed do Flickr com imagens interessantes, publicidade, formulários para subscrever a newsletters, feeds do twitter e/ou facebook, etc. etc. etc. Apenas a imaginação e originalidade de cada um é o limite.</p>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center shr-bookmarks-bg-knowledge">
<ul class="socials">
		<li class="shr-blogger">
			<a href="http://www.blogger.com/blog_this.pyra?t&amp;u=http://joaopedropereira.com/blog/2010/06/03/nao-desaproveite-o-seu-footer/&amp;n=N%C3%A3o+desaproveite+o+seu+Footer%21&amp;pli=1" rel="nofollow" class="external" title="Blog this on Blogger">Blog this on Blogger</a>
		</li>
		<li class="shr-delicious">
			<a href="http://delicious.com/post?url=http://joaopedropereira.com/blog/2010/06/03/nao-desaproveite-o-seu-footer/&amp;title=N%C3%A3o+desaproveite+o+seu+Footer%21" rel="nofollow" class="external" title="Share this on del.icio.us">Share this on del.icio.us</a>
		</li>
		<li class="shr-digg">
			<a href="http://digg.com/submit?phase=2&amp;url=http://joaopedropereira.com/blog/2010/06/03/nao-desaproveite-o-seu-footer/&amp;title=N%C3%A3o+desaproveite+o+seu+Footer%21" rel="nofollow" class="external" title="Digg this!">Digg this!</a>
		</li>
		<li class="shr-facebook">
			<a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://joaopedropereira.com/blog/2010/06/03/nao-desaproveite-o-seu-footer/&amp;t=N%C3%A3o+desaproveite+o+seu+Footer%21" rel="nofollow" class="external" title="Share this on Facebook">Share this on Facebook</a>
		</li>
		<li class="shr-friendfeed">
			<a href="http://www.friendfeed.com/share?title=N%C3%A3o+desaproveite+o+seu+Footer%21&amp;link=http://joaopedropereira.com/blog/2010/06/03/nao-desaproveite-o-seu-footer/" rel="nofollow" class="external" title="Share this on FriendFeed">Share this on FriendFeed</a>
		</li>
		<li class="shr-googlebuzz">
			<a href="http://www.google.com/buzz/post?url=http://joaopedropereira.com/blog/2010/06/03/nao-desaproveite-o-seu-footer/&amp;imageurl=" rel="nofollow" class="external" title="Post on Google Buzz">Post on Google Buzz</a>
		</li>
		<li class="shr-googlereader">
			<a href="http://www.google.com/reader/link?url=http://joaopedropereira.com/blog/2010/06/03/nao-desaproveite-o-seu-footer/&amp;title=N%C3%A3o+desaproveite+o+seu+Footer%21&amp;srcUrl=http://joaopedropereira.com/blog/2010/06/03/nao-desaproveite-o-seu-footer/&amp;srcTitle=N%C3%A3o+desaproveite+o+seu+Footer%21&amp;snippet=Ser%20WebDeveloper%20n%C3%A3o%20%C3%A9%20uma%20tarefa%20f%C3%A1cil%2C%20n%C3%A3o%20s%C3%B3%20temos%20de%20estar%20sempre%20actualizados%20relativamente%20ao%20que%20o%20mercado%20de%20trabalho%20exige%20relativamente%20a%20conhecimentos%20em%20ferramentas%2C%20frameworks%20e%20linguagens%20de%20programa%C3%A7%C3%A3o%20como%20tamb%C3%A9m%20temos%20de%20estar%20em%20cima%20dos%20hot%20topics%20na%20%C3%A1rea%20do%20WebDesign%20e%20U" rel="nofollow" class="external" title="Add this to Google Reader">Add this to Google Reader</a>
		</li>
		<li class="shr-linkedin">
			<a href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://joaopedropereira.com/blog/2010/06/03/nao-desaproveite-o-seu-footer/&amp;title=N%C3%A3o+desaproveite+o+seu+Footer%21&amp;summary=Ser%20WebDeveloper%20n%C3%A3o%20%C3%A9%20uma%20tarefa%20f%C3%A1cil%2C%20n%C3%A3o%20s%C3%B3%20temos%20de%20estar%20sempre%20actualizados%20relativamente%20ao%20que%20o%20mercado%20de%20trabalho%20exige%20relativamente%20a%20conhecimentos%20em%20ferramentas%2C%20frameworks%20e%20linguagens%20de%20programa%C3%A7%C3%A3o%20como%20tamb%C3%A9m%20temos%20de%20estar%20em%20cima%20dos%20hot%20topics%20na%20%C3%A1rea%20do%20WebDesign%20e%20U&amp;source=The Blog of a WebDeveloper" rel="nofollow" class="external" title="Share this on LinkedIn">Share this on LinkedIn</a>
		</li>
		<li class="shr-mail">
			<a href="mailto:?subject=%22N%C3%A3o%20desaproveite%20o%20seu%20Footer%21%22&amp;body=Link: http://joaopedropereira.com/blog/2010/06/03/nao-desaproveite-o-seu-footer/ (sent via shareaholic)%0D%0A%0D%0A----%0D%0A Ser%20WebDeveloper%20n%C3%A3o%20%C3%A9%20uma%20tarefa%20f%C3%A1cil%2C%20n%C3%A3o%20s%C3%B3%20temos%20de%20estar%20sempre%20actualizados%20relativamente%20ao%20que%20o%20mercado%20de%20trabalho%20exige%20relativamente%20a%20conhecimentos%20em%20ferramentas%2C%20frameworks%20e%20linguagens%20de%20programa%C3%A7%C3%A3o%20como%20tamb%C3%A9m%20temos%20de%20estar%20em%20cima%20dos%20hot%20topics%20na%20%C3%A1rea%20do%20WebDesign%20e%20U" rel="nofollow" class="external" title="Email this to a friend?">Email this to a friend?</a>
		</li>
		<li class="shr-mixx">
			<a href="http://www.mixx.com/submit?page_url=http://joaopedropereira.com/blog/2010/06/03/nao-desaproveite-o-seu-footer/&amp;title=N%C3%A3o+desaproveite+o+seu+Footer%21" rel="nofollow" class="external" title="Share this on Mixx">Share this on Mixx</a>
		</li>
		<li class="shr-netvibes">
			<a href="http://www.netvibes.com/share?title=N%C3%A3o+desaproveite+o+seu+Footer%21&amp;url=http://joaopedropereira.com/blog/2010/06/03/nao-desaproveite-o-seu-footer/" rel="nofollow" class="external" title="Submit this to Netvibes">Submit this to Netvibes</a>
		</li>
		<li class="shr-newsvine">
			<a href="http://www.newsvine.com/_tools/seed&amp;save?u=http://joaopedropereira.com/blog/2010/06/03/nao-desaproveite-o-seu-footer/&amp;h=N%C3%A3o+desaproveite+o+seu+Footer%21" rel="nofollow" class="external" title="Seed this on Newsvine">Seed this on Newsvine</a>
		</li>
		<li class="shr-orkut">
			<a href="http://promote.orkut.com/preview?nt=orkut.com&amp;tt=N%C3%A3o+desaproveite+o+seu+Footer%21&amp;du=http://joaopedropereira.com/blog/2010/06/03/nao-desaproveite-o-seu-footer/&amp;cn=Ser%20WebDeveloper%20n%C3%A3o%20%C3%A9%20uma%20tarefa%20f%C3%A1cil%2C%20n%C3%A3o%20s%C3%B3%20temos%20de%20estar%20sempre%20actualizados%20relativamente%20ao%20que%20o%20mercado%20de%20trabalho%20exige%20relativamente%20a%20conhecimentos%20em%20ferramentas%2C%20frameworks%20e%20linguagens%20de%20programa%C3%A7%C3%A3o%20como%20tamb%C3%A9m%20temos%20de%20estar%20em%20cima%20dos%20hot%20topics%20na%20%C3%A1rea%20do%20WebDesign%20e%20U" rel="nofollow" class="external" title="Promote this on Orkut">Promote this on Orkut</a>
		</li>
		<li class="shr-reddit">
			<a href="http://reddit.com/submit?url=http://joaopedropereira.com/blog/2010/06/03/nao-desaproveite-o-seu-footer/&amp;title=N%C3%A3o+desaproveite+o+seu+Footer%21" rel="nofollow" class="external" title="Share this on Reddit">Share this on Reddit</a>
		</li>
		<li class="shr-slashdot">
			<a href="http://slashdot.org/bookmark.pl?url=http://joaopedropereira.com/blog/2010/06/03/nao-desaproveite-o-seu-footer/&amp;title=N%C3%A3o+desaproveite+o+seu+Footer%21" rel="nofollow" class="external" title="Submit this to SlashDot">Submit this to SlashDot</a>
		</li>
		<li class="shr-sphinn">
			<a href="http://sphinn.com/index.php?c=post&amp;m=submit&amp;link=http://joaopedropereira.com/blog/2010/06/03/nao-desaproveite-o-seu-footer/" rel="nofollow" class="external" title="Sphinn this on Sphinn">Sphinn this on Sphinn</a>
		</li>
		<li class="shr-stumbleupon">
			<a href="http://www.stumbleupon.com/submit?url=http://joaopedropereira.com/blog/2010/06/03/nao-desaproveite-o-seu-footer/&amp;title=N%C3%A3o+desaproveite+o+seu+Footer%21" rel="nofollow" class="external" title="Stumble upon something good? Share it on StumbleUpon">Stumble upon something good? Share it on StumbleUpon</a>
		</li>
		<li class="shr-techmeme">
			<a href="http://twitter.com/home/?status=Tip+@Techmeme+http://joaopedropereira.com/blog/2010/06/03/nao-desaproveite-o-seu-footer/+&quot;N%C3%A3o+desaproveite+o+seu+Footer%21&quot;&amp;source=shareaholic" rel="nofollow" class="external" title="Tip this to TechMeme">Tip this to TechMeme</a>
		</li>
		<li class="shr-technorati">
			<a href="http://technorati.com/faves?add=http://joaopedropereira.com/blog/2010/06/03/nao-desaproveite-o-seu-footer/" rel="nofollow" class="external" title="Share this on Technorati">Share this on Technorati</a>
		</li>
		<li class="shr-tumblr">
			<a href="http://www.tumblr.com/share?v=3&amp;u=http%3A%2F%2Fjoaopedropereira.com%2Fblog%2F2010%2F06%2F03%2Fnao-desaproveite-o-seu-footer%2F&amp;t=N%C3%A3o+desaproveite+o+seu+Footer%21" rel="nofollow" class="external" title="Share this on Tumblr">Share this on Tumblr</a>
		</li>
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=N%C3%A3o+desaproveite+o+seu+Footer%21+-+http://bit.ly/9wuXec&amp;source=shareaholic" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
		<li class="shr-yahoobuzz">
			<a href="http://buzz.yahoo.com/submit/?submitUrl=http://joaopedropereira.com/blog/2010/06/03/nao-desaproveite-o-seu-footer/&amp;submitHeadline=N%C3%A3o+desaproveite+o+seu+Footer%21&amp;submitSummary=Ser%20WebDeveloper%20n%C3%A3o%20%C3%A9%20uma%20tarefa%20f%C3%A1cil%2C%20n%C3%A3o%20s%C3%B3%20temos%20de%20estar%20sempre%20actualizados%20relativamente%20ao%20que%20o%20mercado%20de%20trabalho%20exige%20relativamente%20a%20conhecimentos%20em%20ferramentas%2C%20frameworks%20e%20linguagens%20de%20programa%C3%A7%C3%A3o%20como%20tamb%C3%A9m%20temos%20de%20estar%20em%20cima%20dos%20hot%20topics%20na%20%C3%A1rea%20do%20WebDesign%20e%20U&amp;submitCategory=science&amp;submitAssetType=text" rel="nofollow" class="external" title="Buzz up!">Buzz up!</a>
		</li>
		<li class="shr-yahoomail">
			<a href="http://compose.mail.yahoo.com/?Subject=N%C3%A3o+desaproveite+o+seu+Footer%21&amp;body=Link: http://joaopedropereira.com/blog/2010/06/03/nao-desaproveite-o-seu-footer/ (sent via shareaholic)%0D%0A%0D%0A----%0D%0A Ser%20WebDeveloper%20n%C3%A3o%20%C3%A9%20uma%20tarefa%20f%C3%A1cil%2C%20n%C3%A3o%20s%C3%B3%20temos%20de%20estar%20sempre%20actualizados%20relativamente%20ao%20que%20o%20mercado%20de%20trabalho%20exige%20relativamente%20a%20conhecimentos%20em%20ferramentas%2C%20frameworks%20e%20linguagens%20de%20programa%C3%A7%C3%A3o%20como%20tamb%C3%A9m%20temos%20de%20estar%20em%20cima%20dos%20hot%20topics%20na%20%C3%A1rea%20do%20WebDesign%20e%20U" rel="nofollow" class="external" title="Email this via Yahoo! Mail">Email this via Yahoo! Mail</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>

]]></content:encoded>
			<wfw:commentRss>http://joaopedropereira.com/blog/2010/06/03/nao-desaproveite-o-seu-footer/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>New Features WordPress 3 Review</title>
		<link>http://joaopedropereira.com/blog/2010/04/21/wordpress-3-review/</link>
		<comments>http://joaopedropereira.com/blog/2010/04/21/wordpress-3-review/#comments</comments>
		<pubDate>Wed, 21 Apr 2010 20:23:10 +0000</pubDate>
		<dc:creator>João Pedro Pereira</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Tecnologia]]></category>
		<category><![CDATA[Webdevelopment]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[review]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://joaopedropereira.com/blog/?p=752</guid>
		<description><![CDATA[É provavelmente ainda um bocado cedo para falar do WordPress 3.0 pois o lançamento desta só está previsto para finais de Maio, mas tenho vindo a brincar um pouco com ele  e com as suas novas funcionalidades. A versão 3.0 do WordPress promete um visual mais soft da página de administração, vai também introduzir uma [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: left; margin-right: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fjoaopedropereira.com%2Fblog%2F2010%2F04%2F21%2Fwordpress-3-review%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fjoaopedropereira.com%2Fblog%2F2010%2F04%2F21%2Fwordpress-3-review%2F&amp;source=joaoppereira&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>É provavelmente ainda um bocado cedo para falar do WordPress 3.0 pois o lançamento desta só está previsto para finais de Maio, mas tenho vindo a brincar um pouco com ele  e com as suas novas funcionalidades.</p>
<p>A versão 3.0 do WordPress promete um visual mais soft da página de administração, vai também introduzir uma nova default theme, a <em>&#8220;Twenty Ten&#8221;</em>, que permite personalizar o fundo e as opções do cabeçalho ( header ), possibilidade de criar os menus com categorias, tags, posts, links externos, etc., entre outras modificações que podem ver na <a title="Wordpress -- Version 3.0" href="http://codex.wordpress.org/Version_3.0" target="_blank">página oficial</a>.</p>
<p><a href="http://joaopedropereira.com/blog/wp-content/uploads/2010/04/Twenty-Ten.png"><img class="aligncenter size-medium wp-image-762" title="Twenty Ten" src="http://joaopedropereira.com/blog/wp-content/uploads/2010/04/Twenty-Ten-300x240.png" alt="" width="300" height="240" /></a></p>
<p>Neste post vou dar realce a apenas duas características que surgirão na versão 3.0 do WordPress, ou pelo menos que estão prevista e que estão em desenvolvimento.</p>
<h2>WordPress + WordPress MU == WordPress 3.0</h2>
<p>O WordPress MU ou WordPress Multi-User era uma versão modificada do sistema WordPress para permitir redes de blogs numa só instalação.</p>
<p><strong><span style="text-decoration: underline;">Site:</span></strong> <a title="Wordpress MU" href="http://mu.wordpress.org/" target="_blank">http://mu.wordpress.org</a></p>
<p>Create a Network of Multiple Sites on WordPress 3.0</p>
<p>É tão simples como adicionar no ficheiro wp-config.php a seguinte linha:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #990000;">define</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'WP_ALLOW_MULTISITE'</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Seleccionar o menu<em> Tools -&gt; Network</em> e seguir as instruções.</p>
<p>Este é o menu que vos espera depois de tudo configurado.</p>
<p><img class="aligncenter size-full wp-image-757" title="Wordpress Network Menu" src="http://joaopedropereira.com/blog/wp-content/uploads/2010/04/menu.png" alt="" width="150" height="290" /></p>
<p><strong><span style="text-decoration: underline;">Ver artigo:</span></strong> <a title="Create a Network" href="http://codex.wordpress.org/User:Andrea/Create_A_Network" target="_blank">http://codex.wordpress.org/User:Andrea/Create_A_Network</a></p>
<h2>Custom Post Types on WordPress 3.0</h2>
<p>Quem já teve de desenvolver uma theme para WordPress um pouco mais complexo provavelmente já teve de fazer uns quantos hacks de forma a conseguir ter estilos diferentes para categorias diferentes&#8230; Os developers do WordPress pensaram em nós e decidiram tornar a possibilidade de ter vários estilos para diferentes tipos de posts de uma forma mais simples na versão 3.0 do WordPress.</p>
<p>Para tirar partido desta funcionalidade é necessário adicionar o seguinte código no ficheiro wp-content/themes/yourtheme/functions.php :</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">register_post_type<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'testemunials'</span><span style="color: #339933;">,</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span>
    <span style="color: #0000ff;">'label'</span> <span style="color: #339933;">=&gt;</span> __<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Testemunials'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
    <span style="color: #0000ff;">'singular_label'</span> <span style="color: #339933;">=&gt;</span> __<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Testemunial'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
    <span style="color: #0000ff;">'description'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'Here goes my testemunials'</span><span style="color: #339933;">,</span>
    <span style="color: #0000ff;">'public'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #339933;">,</span>
    <span style="color: #0000ff;">'show_ui'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #339933;">,</span>
    <span style="color: #0000ff;">'capability_type'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'post'</span><span style="color: #339933;">,</span>
    <span style="color: #0000ff;">'hierarchical'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">,</span>
    <span style="color: #0000ff;">'rewrite'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">,</span>
    <span style="color: #0000ff;">'query_var'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">,</span>
    <span style="color: #0000ff;">'supports'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span>
        <span style="color: #0000ff;">'title'</span><span style="color: #339933;">,</span>
        <span style="color: #0000ff;">'editor'</span><span style="color: #339933;">,</span>
        <span style="color: #0000ff;">'author'</span><span style="color: #339933;">,</span>
        <span style="color: #0000ff;">'excerpts'</span><span style="color: #339933;">,</span>
        <span style="color: #0000ff;">'comments'</span>
    <span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p><img class="aligncenter size-medium wp-image-773" title="Menu Custom Post-Type" src="http://joaopedropereira.com/blog/wp-content/uploads/2010/04/menu2-143x300.png" alt="" width="143" height="300" /></p>
<p>Tal como é possível definir vários tipos de posts também é possível utilizar esta funcionalidade para páginas diferentes alterando o parâmetro &#8216;capability_type&#8217; para &#8216;capability_type&#8217;=&gt;&#8217;page&#8217;.</p>
<p><strong><span style="text-decoration: underline;">Function Reference/register post type:</span></strong> <a title="Function Reference/register post type" href="http://codex.wordpress.org/Function_Reference/register_post_type" target="_blank">http://codex.wordpress.org/Function_Reference/register_post_type</a></p>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center shr-bookmarks-bg-knowledge">
<ul class="socials">
		<li class="shr-blogger">
			<a href="http://www.blogger.com/blog_this.pyra?t&amp;u=http://joaopedropereira.com/blog/2010/04/21/wordpress-3-review/&amp;n=New+Features+Wordpress+3+Review&amp;pli=1" rel="nofollow" class="external" title="Blog this on Blogger">Blog this on Blogger</a>
		</li>
		<li class="shr-delicious">
			<a href="http://delicious.com/post?url=http://joaopedropereira.com/blog/2010/04/21/wordpress-3-review/&amp;title=New+Features+Wordpress+3+Review" rel="nofollow" class="external" title="Share this on del.icio.us">Share this on del.icio.us</a>
		</li>
		<li class="shr-digg">
			<a href="http://digg.com/submit?phase=2&amp;url=http://joaopedropereira.com/blog/2010/04/21/wordpress-3-review/&amp;title=New+Features+Wordpress+3+Review" rel="nofollow" class="external" title="Digg this!">Digg this!</a>
		</li>
		<li class="shr-facebook">
			<a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://joaopedropereira.com/blog/2010/04/21/wordpress-3-review/&amp;t=New+Features+Wordpress+3+Review" rel="nofollow" class="external" title="Share this on Facebook">Share this on Facebook</a>
		</li>
		<li class="shr-friendfeed">
			<a href="http://www.friendfeed.com/share?title=New+Features+Wordpress+3+Review&amp;link=http://joaopedropereira.com/blog/2010/04/21/wordpress-3-review/" rel="nofollow" class="external" title="Share this on FriendFeed">Share this on FriendFeed</a>
		</li>
		<li class="shr-googlebuzz">
			<a href="http://www.google.com/buzz/post?url=http://joaopedropereira.com/blog/2010/04/21/wordpress-3-review/&amp;imageurl=" rel="nofollow" class="external" title="Post on Google Buzz">Post on Google Buzz</a>
		</li>
		<li class="shr-googlereader">
			<a href="http://www.google.com/reader/link?url=http://joaopedropereira.com/blog/2010/04/21/wordpress-3-review/&amp;title=New+Features+Wordpress+3+Review&amp;srcUrl=http://joaopedropereira.com/blog/2010/04/21/wordpress-3-review/&amp;srcTitle=New+Features+Wordpress+3+Review&amp;snippet=%C3%89%20provavelmente%20ainda%20um%20bocado%20cedo%20para%20falar%20do%20Wordpress%203.0%20pois%20o%20lan%C3%A7amento%20desta%20s%C3%B3%20est%C3%A1%20previsto%20para%20finais%20de%20Maio%2C%20mas%20tenho%20vindo%20a%20brincar%20um%20pouco%20com%20ele%20%C2%A0e%20com%20as%20suas%20novas%20funcionalidades.%0D%0A%0D%0AA%20vers%C3%A3o%203.0%20do%20Wordpress%20promete%20um%20visual%20mais%20soft%20da%20p%C3%A1gina%20de%20administra%C3%A7%C3%A3o" rel="nofollow" class="external" title="Add this to Google Reader">Add this to Google Reader</a>
		</li>
		<li class="shr-linkedin">
			<a href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://joaopedropereira.com/blog/2010/04/21/wordpress-3-review/&amp;title=New+Features+Wordpress+3+Review&amp;summary=%C3%89%20provavelmente%20ainda%20um%20bocado%20cedo%20para%20falar%20do%20Wordpress%203.0%20pois%20o%20lan%C3%A7amento%20desta%20s%C3%B3%20est%C3%A1%20previsto%20para%20finais%20de%20Maio%2C%20mas%20tenho%20vindo%20a%20brincar%20um%20pouco%20com%20ele%20%C2%A0e%20com%20as%20suas%20novas%20funcionalidades.%0D%0A%0D%0AA%20vers%C3%A3o%203.0%20do%20Wordpress%20promete%20um%20visual%20mais%20soft%20da%20p%C3%A1gina%20de%20administra%C3%A7%C3%A3o&amp;source=The Blog of a WebDeveloper" rel="nofollow" class="external" title="Share this on LinkedIn">Share this on LinkedIn</a>
		</li>
		<li class="shr-mail">
			<a href="mailto:?subject=%22New%20Features%20Wordpress%203%20Review%22&amp;body=Link: http://joaopedropereira.com/blog/2010/04/21/wordpress-3-review/ (sent via shareaholic)%0D%0A%0D%0A----%0D%0A %C3%89%20provavelmente%20ainda%20um%20bocado%20cedo%20para%20falar%20do%20Wordpress%203.0%20pois%20o%20lan%C3%A7amento%20desta%20s%C3%B3%20est%C3%A1%20previsto%20para%20finais%20de%20Maio%2C%20mas%20tenho%20vindo%20a%20brincar%20um%20pouco%20com%20ele%20%C2%A0e%20com%20as%20suas%20novas%20funcionalidades.%0D%0A%0D%0AA%20vers%C3%A3o%203.0%20do%20Wordpress%20promete%20um%20visual%20mais%20soft%20da%20p%C3%A1gina%20de%20administra%C3%A7%C3%A3o" rel="nofollow" class="external" title="Email this to a friend?">Email this to a friend?</a>
		</li>
		<li class="shr-mixx">
			<a href="http://www.mixx.com/submit?page_url=http://joaopedropereira.com/blog/2010/04/21/wordpress-3-review/&amp;title=New+Features+Wordpress+3+Review" rel="nofollow" class="external" title="Share this on Mixx">Share this on Mixx</a>
		</li>
		<li class="shr-netvibes">
			<a href="http://www.netvibes.com/share?title=New+Features+Wordpress+3+Review&amp;url=http://joaopedropereira.com/blog/2010/04/21/wordpress-3-review/" rel="nofollow" class="external" title="Submit this to Netvibes">Submit this to Netvibes</a>
		</li>
		<li class="shr-newsvine">
			<a href="http://www.newsvine.com/_tools/seed&amp;save?u=http://joaopedropereira.com/blog/2010/04/21/wordpress-3-review/&amp;h=New+Features+Wordpress+3+Review" rel="nofollow" class="external" title="Seed this on Newsvine">Seed this on Newsvine</a>
		</li>
		<li class="shr-orkut">
			<a href="http://promote.orkut.com/preview?nt=orkut.com&amp;tt=New+Features+Wordpress+3+Review&amp;du=http://joaopedropereira.com/blog/2010/04/21/wordpress-3-review/&amp;cn=%C3%89%20provavelmente%20ainda%20um%20bocado%20cedo%20para%20falar%20do%20Wordpress%203.0%20pois%20o%20lan%C3%A7amento%20desta%20s%C3%B3%20est%C3%A1%20previsto%20para%20finais%20de%20Maio%2C%20mas%20tenho%20vindo%20a%20brincar%20um%20pouco%20com%20ele%20%C2%A0e%20com%20as%20suas%20novas%20funcionalidades.%0D%0A%0D%0AA%20vers%C3%A3o%203.0%20do%20Wordpress%20promete%20um%20visual%20mais%20soft%20da%20p%C3%A1gina%20de%20administra%C3%A7%C3%A3o" rel="nofollow" class="external" title="Promote this on Orkut">Promote this on Orkut</a>
		</li>
		<li class="shr-reddit">
			<a href="http://reddit.com/submit?url=http://joaopedropereira.com/blog/2010/04/21/wordpress-3-review/&amp;title=New+Features+Wordpress+3+Review" rel="nofollow" class="external" title="Share this on Reddit">Share this on Reddit</a>
		</li>
		<li class="shr-slashdot">
			<a href="http://slashdot.org/bookmark.pl?url=http://joaopedropereira.com/blog/2010/04/21/wordpress-3-review/&amp;title=New+Features+Wordpress+3+Review" rel="nofollow" class="external" title="Submit this to SlashDot">Submit this to SlashDot</a>
		</li>
		<li class="shr-sphinn">
			<a href="http://sphinn.com/index.php?c=post&amp;m=submit&amp;link=http://joaopedropereira.com/blog/2010/04/21/wordpress-3-review/" rel="nofollow" class="external" title="Sphinn this on Sphinn">Sphinn this on Sphinn</a>
		</li>
		<li class="shr-stumbleupon">
			<a href="http://www.stumbleupon.com/submit?url=http://joaopedropereira.com/blog/2010/04/21/wordpress-3-review/&amp;title=New+Features+Wordpress+3+Review" rel="nofollow" class="external" title="Stumble upon something good? Share it on StumbleUpon">Stumble upon something good? Share it on StumbleUpon</a>
		</li>
		<li class="shr-techmeme">
			<a href="http://twitter.com/home/?status=Tip+@Techmeme+http://joaopedropereira.com/blog/2010/04/21/wordpress-3-review/+&quot;New+Features+Wordpress+3+Review&quot;&amp;source=shareaholic" rel="nofollow" class="external" title="Tip this to TechMeme">Tip this to TechMeme</a>
		</li>
		<li class="shr-technorati">
			<a href="http://technorati.com/faves?add=http://joaopedropereira.com/blog/2010/04/21/wordpress-3-review/" rel="nofollow" class="external" title="Share this on Technorati">Share this on Technorati</a>
		</li>
		<li class="shr-tumblr">
			<a href="http://www.tumblr.com/share?v=3&amp;u=http%3A%2F%2Fjoaopedropereira.com%2Fblog%2F2010%2F04%2F21%2Fwordpress-3-review%2F&amp;t=New+Features+Wordpress+3+Review" rel="nofollow" class="external" title="Share this on Tumblr">Share this on Tumblr</a>
		</li>
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=New+Features+Wordpress+3+Review+-+http://bit.ly/9HYhCq&amp;source=shareaholic" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
		<li class="shr-yahoobuzz">
			<a href="http://buzz.yahoo.com/submit/?submitUrl=http://joaopedropereira.com/blog/2010/04/21/wordpress-3-review/&amp;submitHeadline=New+Features+Wordpress+3+Review&amp;submitSummary=%C3%89%20provavelmente%20ainda%20um%20bocado%20cedo%20para%20falar%20do%20Wordpress%203.0%20pois%20o%20lan%C3%A7amento%20desta%20s%C3%B3%20est%C3%A1%20previsto%20para%20finais%20de%20Maio%2C%20mas%20tenho%20vindo%20a%20brincar%20um%20pouco%20com%20ele%20%C2%A0e%20com%20as%20suas%20novas%20funcionalidades.%0D%0A%0D%0AA%20vers%C3%A3o%203.0%20do%20Wordpress%20promete%20um%20visual%20mais%20soft%20da%20p%C3%A1gina%20de%20administra%C3%A7%C3%A3o&amp;submitCategory=science&amp;submitAssetType=text" rel="nofollow" class="external" title="Buzz up!">Buzz up!</a>
		</li>
		<li class="shr-yahoomail">
			<a href="http://compose.mail.yahoo.com/?Subject=New+Features+Wordpress+3+Review&amp;body=Link: http://joaopedropereira.com/blog/2010/04/21/wordpress-3-review/ (sent via shareaholic)%0D%0A%0D%0A----%0D%0A %C3%89%20provavelmente%20ainda%20um%20bocado%20cedo%20para%20falar%20do%20Wordpress%203.0%20pois%20o%20lan%C3%A7amento%20desta%20s%C3%B3%20est%C3%A1%20previsto%20para%20finais%20de%20Maio%2C%20mas%20tenho%20vindo%20a%20brincar%20um%20pouco%20com%20ele%20%C2%A0e%20com%20as%20suas%20novas%20funcionalidades.%0D%0A%0D%0AA%20vers%C3%A3o%203.0%20do%20Wordpress%20promete%20um%20visual%20mais%20soft%20da%20p%C3%A1gina%20de%20administra%C3%A7%C3%A3o" rel="nofollow" class="external" title="Email this via Yahoo! Mail">Email this via Yahoo! Mail</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>

]]></content:encoded>
			<wfw:commentRss>http://joaopedropereira.com/blog/2010/04/21/wordpress-3-review/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>PHP Security Check-List CheatSheet</title>
		<link>http://joaopedropereira.com/blog/2010/04/18/php-security-check-list-cheatsheet/</link>
		<comments>http://joaopedropereira.com/blog/2010/04/18/php-security-check-list-cheatsheet/#comments</comments>
		<pubDate>Sun, 18 Apr 2010 13:41:56 +0000</pubDate>
		<dc:creator>João Pedro Pereira</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Segurança]]></category>
		<category><![CDATA[Webdevelopment]]></category>
		<category><![CDATA[cheatsheet]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://joaopedropereira.com/blog/?p=743</guid>
		<description><![CDATA[Para cada projecto que tenho desenvolvido ultimamente utilizando a linguagem de programação server-side PHP, tenho-me guiado por uma checklist de forma a não me esquecer  de nada evitando assim falhas graves nas aplicações que desenvolvo. Pois a segurança é uma das preocupações que tenho. Esta checklist aborda diversas situações como, casos gerais, casos de input, [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: left; margin-right: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fjoaopedropereira.com%2Fblog%2F2010%2F04%2F18%2Fphp-security-check-list-cheatsheet%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fjoaopedropereira.com%2Fblog%2F2010%2F04%2F18%2Fphp-security-check-list-cheatsheet%2F&amp;source=joaoppereira&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>Para cada projecto que tenho desenvolvido ultimamente utilizando a linguagem de programação server-side PHP, tenho-me guiado por uma checklist de forma a não me esquecer  de nada evitando assim falhas graves nas aplicações que desenvolvo. Pois a segurança é uma das preocupações que tenho.</p>
<p>Esta checklist aborda diversas situações como, casos gerais, casos de input, file uploads, autenticação, entre outros.</p>
<div id="attachment_744" class="wp-caption aligncenter" style="width: 234px"><a href="http://joaopedropereira.com/files/phpsec_cheatsheet.pdf"><img class="size-medium wp-image-744" title="PHP Security CheckList" src="http://joaopedropereira.com/blog/wp-content/uploads/2010/04/phpsec_cheatsheet-224x300.png" alt="" width="224" height="300" /></a><p class="wp-caption-text">Click on image to download</p></div>
<p>Recomendo vivamente a sua utilização e até sugestões de melhorias, apesar de ela não ser da minha autoria.</p>
<p>O que acham desta checklist? Conhecem alguma melhor? Como se guiam no desenvolvimento de aplicações web de forma  a manter a segurança da mesma?</p>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center shr-bookmarks-bg-knowledge">
<ul class="socials">
		<li class="shr-blogger">
			<a href="http://www.blogger.com/blog_this.pyra?t&amp;u=http://joaopedropereira.com/blog/2010/04/18/php-security-check-list-cheatsheet/&amp;n=PHP+Security+Check-List+CheatSheet&amp;pli=1" rel="nofollow" class="external" title="Blog this on Blogger">Blog this on Blogger</a>
		</li>
		<li class="shr-delicious">
			<a href="http://delicious.com/post?url=http://joaopedropereira.com/blog/2010/04/18/php-security-check-list-cheatsheet/&amp;title=PHP+Security+Check-List+CheatSheet" rel="nofollow" class="external" title="Share this on del.icio.us">Share this on del.icio.us</a>
		</li>
		<li class="shr-digg">
			<a href="http://digg.com/submit?phase=2&amp;url=http://joaopedropereira.com/blog/2010/04/18/php-security-check-list-cheatsheet/&amp;title=PHP+Security+Check-List+CheatSheet" rel="nofollow" class="external" title="Digg this!">Digg this!</a>
		</li>
		<li class="shr-facebook">
			<a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://joaopedropereira.com/blog/2010/04/18/php-security-check-list-cheatsheet/&amp;t=PHP+Security+Check-List+CheatSheet" rel="nofollow" class="external" title="Share this on Facebook">Share this on Facebook</a>
		</li>
		<li class="shr-friendfeed">
			<a href="http://www.friendfeed.com/share?title=PHP+Security+Check-List+CheatSheet&amp;link=http://joaopedropereira.com/blog/2010/04/18/php-security-check-list-cheatsheet/" rel="nofollow" class="external" title="Share this on FriendFeed">Share this on FriendFeed</a>
		</li>
		<li class="shr-googlebuzz">
			<a href="http://www.google.com/buzz/post?url=http://joaopedropereira.com/blog/2010/04/18/php-security-check-list-cheatsheet/&amp;imageurl=" rel="nofollow" class="external" title="Post on Google Buzz">Post on Google Buzz</a>
		</li>
		<li class="shr-googlereader">
			<a href="http://www.google.com/reader/link?url=http://joaopedropereira.com/blog/2010/04/18/php-security-check-list-cheatsheet/&amp;title=PHP+Security+Check-List+CheatSheet&amp;srcUrl=http://joaopedropereira.com/blog/2010/04/18/php-security-check-list-cheatsheet/&amp;srcTitle=PHP+Security+Check-List+CheatSheet&amp;snippet=Para%20cada%20projecto%20que%20tenho%20desenvolvido%20ultimamente%20utilizando%20a%20linguagem%20de%20programa%C3%A7%C3%A3o%20server-side%20PHP%2C%20tenho-me%20guiado%20por%20uma%20checklist%20de%20forma%20a%20n%C3%A3o%20me%20esquecer%20%C2%A0de%20nada%20evitando%20assim%20falhas%20graves%20nas%20aplica%C3%A7%C3%B5es%20que%20desenvolvo.%20Pois%20a%20seguran%C3%A7a%20%C3%A9%20uma%20das%20preocupa%C3%A7%C3%B5es%20que%20tenho.%0D" rel="nofollow" class="external" title="Add this to Google Reader">Add this to Google Reader</a>
		</li>
		<li class="shr-linkedin">
			<a href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://joaopedropereira.com/blog/2010/04/18/php-security-check-list-cheatsheet/&amp;title=PHP+Security+Check-List+CheatSheet&amp;summary=Para%20cada%20projecto%20que%20tenho%20desenvolvido%20ultimamente%20utilizando%20a%20linguagem%20de%20programa%C3%A7%C3%A3o%20server-side%20PHP%2C%20tenho-me%20guiado%20por%20uma%20checklist%20de%20forma%20a%20n%C3%A3o%20me%20esquecer%20%C2%A0de%20nada%20evitando%20assim%20falhas%20graves%20nas%20aplica%C3%A7%C3%B5es%20que%20desenvolvo.%20Pois%20a%20seguran%C3%A7a%20%C3%A9%20uma%20das%20preocupa%C3%A7%C3%B5es%20que%20tenho.%0D&amp;source=The Blog of a WebDeveloper" rel="nofollow" class="external" title="Share this on LinkedIn">Share this on LinkedIn</a>
		</li>
		<li class="shr-mail">
			<a href="mailto:?subject=%22PHP%20Security%20Check-List%20CheatSheet%22&amp;body=Link: http://joaopedropereira.com/blog/2010/04/18/php-security-check-list-cheatsheet/ (sent via shareaholic)%0D%0A%0D%0A----%0D%0A Para%20cada%20projecto%20que%20tenho%20desenvolvido%20ultimamente%20utilizando%20a%20linguagem%20de%20programa%C3%A7%C3%A3o%20server-side%20PHP%2C%20tenho-me%20guiado%20por%20uma%20checklist%20de%20forma%20a%20n%C3%A3o%20me%20esquecer%20%C2%A0de%20nada%20evitando%20assim%20falhas%20graves%20nas%20aplica%C3%A7%C3%B5es%20que%20desenvolvo.%20Pois%20a%20seguran%C3%A7a%20%C3%A9%20uma%20das%20preocupa%C3%A7%C3%B5es%20que%20tenho.%0D" rel="nofollow" class="external" title="Email this to a friend?">Email this to a friend?</a>
		</li>
		<li class="shr-mixx">
			<a href="http://www.mixx.com/submit?page_url=http://joaopedropereira.com/blog/2010/04/18/php-security-check-list-cheatsheet/&amp;title=PHP+Security+Check-List+CheatSheet" rel="nofollow" class="external" title="Share this on Mixx">Share this on Mixx</a>
		</li>
		<li class="shr-netvibes">
			<a href="http://www.netvibes.com/share?title=PHP+Security+Check-List+CheatSheet&amp;url=http://joaopedropereira.com/blog/2010/04/18/php-security-check-list-cheatsheet/" rel="nofollow" class="external" title="Submit this to Netvibes">Submit this to Netvibes</a>
		</li>
		<li class="shr-newsvine">
			<a href="http://www.newsvine.com/_tools/seed&amp;save?u=http://joaopedropereira.com/blog/2010/04/18/php-security-check-list-cheatsheet/&amp;h=PHP+Security+Check-List+CheatSheet" rel="nofollow" class="external" title="Seed this on Newsvine">Seed this on Newsvine</a>
		</li>
		<li class="shr-orkut">
			<a href="http://promote.orkut.com/preview?nt=orkut.com&amp;tt=PHP+Security+Check-List+CheatSheet&amp;du=http://joaopedropereira.com/blog/2010/04/18/php-security-check-list-cheatsheet/&amp;cn=Para%20cada%20projecto%20que%20tenho%20desenvolvido%20ultimamente%20utilizando%20a%20linguagem%20de%20programa%C3%A7%C3%A3o%20server-side%20PHP%2C%20tenho-me%20guiado%20por%20uma%20checklist%20de%20forma%20a%20n%C3%A3o%20me%20esquecer%20%C2%A0de%20nada%20evitando%20assim%20falhas%20graves%20nas%20aplica%C3%A7%C3%B5es%20que%20desenvolvo.%20Pois%20a%20seguran%C3%A7a%20%C3%A9%20uma%20das%20preocupa%C3%A7%C3%B5es%20que%20tenho.%0D" rel="nofollow" class="external" title="Promote this on Orkut">Promote this on Orkut</a>
		</li>
		<li class="shr-reddit">
			<a href="http://reddit.com/submit?url=http://joaopedropereira.com/blog/2010/04/18/php-security-check-list-cheatsheet/&amp;title=PHP+Security+Check-List+CheatSheet" rel="nofollow" class="external" title="Share this on Reddit">Share this on Reddit</a>
		</li>
		<li class="shr-slashdot">
			<a href="http://slashdot.org/bookmark.pl?url=http://joaopedropereira.com/blog/2010/04/18/php-security-check-list-cheatsheet/&amp;title=PHP+Security+Check-List+CheatSheet" rel="nofollow" class="external" title="Submit this to SlashDot">Submit this to SlashDot</a>
		</li>
		<li class="shr-sphinn">
			<a href="http://sphinn.com/index.php?c=post&amp;m=submit&amp;link=http://joaopedropereira.com/blog/2010/04/18/php-security-check-list-cheatsheet/" rel="nofollow" class="external" title="Sphinn this on Sphinn">Sphinn this on Sphinn</a>
		</li>
		<li class="shr-stumbleupon">
			<a href="http://www.stumbleupon.com/submit?url=http://joaopedropereira.com/blog/2010/04/18/php-security-check-list-cheatsheet/&amp;title=PHP+Security+Check-List+CheatSheet" rel="nofollow" class="external" title="Stumble upon something good? Share it on StumbleUpon">Stumble upon something good? Share it on StumbleUpon</a>
		</li>
		<li class="shr-techmeme">
			<a href="http://twitter.com/home/?status=Tip+@Techmeme+http://joaopedropereira.com/blog/2010/04/18/php-security-check-list-cheatsheet/+&quot;PHP+Security+Check-List+CheatSheet&quot;&amp;source=shareaholic" rel="nofollow" class="external" title="Tip this to TechMeme">Tip this to TechMeme</a>
		</li>
		<li class="shr-technorati">
			<a href="http://technorati.com/faves?add=http://joaopedropereira.com/blog/2010/04/18/php-security-check-list-cheatsheet/" rel="nofollow" class="external" title="Share this on Technorati">Share this on Technorati</a>
		</li>
		<li class="shr-tumblr">
			<a href="http://www.tumblr.com/share?v=3&amp;u=http%3A%2F%2Fjoaopedropereira.com%2Fblog%2F2010%2F04%2F18%2Fphp-security-check-list-cheatsheet%2F&amp;t=PHP+Security+Check-List+CheatSheet" rel="nofollow" class="external" title="Share this on Tumblr">Share this on Tumblr</a>
		</li>
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=PHP+Security+Check-List+CheatSheet+-+http://bit.ly/d1Kn1b&amp;source=shareaholic" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
		<li class="shr-yahoobuzz">
			<a href="http://buzz.yahoo.com/submit/?submitUrl=http://joaopedropereira.com/blog/2010/04/18/php-security-check-list-cheatsheet/&amp;submitHeadline=PHP+Security+Check-List+CheatSheet&amp;submitSummary=Para%20cada%20projecto%20que%20tenho%20desenvolvido%20ultimamente%20utilizando%20a%20linguagem%20de%20programa%C3%A7%C3%A3o%20server-side%20PHP%2C%20tenho-me%20guiado%20por%20uma%20checklist%20de%20forma%20a%20n%C3%A3o%20me%20esquecer%20%C2%A0de%20nada%20evitando%20assim%20falhas%20graves%20nas%20aplica%C3%A7%C3%B5es%20que%20desenvolvo.%20Pois%20a%20seguran%C3%A7a%20%C3%A9%20uma%20das%20preocupa%C3%A7%C3%B5es%20que%20tenho.%0D&amp;submitCategory=science&amp;submitAssetType=text" rel="nofollow" class="external" title="Buzz up!">Buzz up!</a>
		</li>
		<li class="shr-yahoomail">
			<a href="http://compose.mail.yahoo.com/?Subject=PHP+Security+Check-List+CheatSheet&amp;body=Link: http://joaopedropereira.com/blog/2010/04/18/php-security-check-list-cheatsheet/ (sent via shareaholic)%0D%0A%0D%0A----%0D%0A Para%20cada%20projecto%20que%20tenho%20desenvolvido%20ultimamente%20utilizando%20a%20linguagem%20de%20programa%C3%A7%C3%A3o%20server-side%20PHP%2C%20tenho-me%20guiado%20por%20uma%20checklist%20de%20forma%20a%20n%C3%A3o%20me%20esquecer%20%C2%A0de%20nada%20evitando%20assim%20falhas%20graves%20nas%20aplica%C3%A7%C3%B5es%20que%20desenvolvo.%20Pois%20a%20seguran%C3%A7a%20%C3%A9%20uma%20das%20preocupa%C3%A7%C3%B5es%20que%20tenho.%0D" rel="nofollow" class="external" title="Email this via Yahoo! Mail">Email this via Yahoo! Mail</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>

]]></content:encoded>
			<wfw:commentRss>http://joaopedropereira.com/blog/2010/04/18/php-security-check-list-cheatsheet/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Vulnerabilidades Site Novas Oportunidades</title>
		<link>http://joaopedropereira.com/blog/2010/03/08/vulnerabilidades-site-novas-oportunidades/</link>
		<comments>http://joaopedropereira.com/blog/2010/03/08/vulnerabilidades-site-novas-oportunidades/#comments</comments>
		<pubDate>Mon, 08 Mar 2010 14:43:23 +0000</pubDate>
		<dc:creator>João Pedro Pereira</dc:creator>
				<category><![CDATA[Segurança]]></category>
		<category><![CDATA[Webdevelopment]]></category>
		<category><![CDATA[SQL Injection]]></category>
		<category><![CDATA[vulnerabilidade]]></category>
		<category><![CDATA[xss]]></category>

		<guid isPermaLink="false">http://joaopedropereira.com/blog/?p=722</guid>
		<description><![CDATA[Já há algum tempo que tenho andado a investigar sites nacionais em busca de falhas de segurança e quase todos as têm, as mais frequentes são as falhas XSS mas também é muito comum encontrar falhas de SQL Injection. Hoje tive acesso através de um tweet do Público (http://bit.ly/aU0kuy) à informação de que o site [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: left; margin-right: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fjoaopedropereira.com%2Fblog%2F2010%2F03%2F08%2Fvulnerabilidades-site-novas-oportunidades%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fjoaopedropereira.com%2Fblog%2F2010%2F03%2F08%2Fvulnerabilidades-site-novas-oportunidades%2F&amp;source=joaoppereira&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>Já há algum tempo que tenho andado a investigar sites nacionais em busca de falhas de segurança e quase todos as têm, as mais frequentes são as falhas XSS mas também é muito comum encontrar falhas de SQL Injection.</p>
<p style="text-align: center;"><a href="http://joaopedropereira.com/blog/wp-content/uploads/2010/03/logo.png"><img class="size-full wp-image-728 aligncenter" title="Novas Oportunidades" src="http://joaopedropereira.com/blog/wp-content/uploads/2010/03/logo.png" alt="" width="301" height="157" /></a></p>
<p>Hoje tive acesso através de um tweet do Público (<a title="Site das Novas Oportunidades atacado por hacker" href="http://bit.ly/aU0kuy" target="_blank">http://bit.ly/aU0kuy</a>) à informação de que o site das <a title="Novas Oportunidades" href="http://www.novasoportunidades.gov.pt/" target="_blank">Novas Oportunidades</a> tinha sido explorado e alterado por  alguém&#8230; Decidi então enquanto era tempo verificar as falhas que existiam no site e qual o meu espanto (not) quando vejo presentes falhas de XSS, falhas de SQL Injection e falhas de validação de parâmetros que permitem Impersonation Attack através de injecção de URL.</p>
<p>O ataque relatado pelo público foi feito através de SQL Injection possivelmente na página seguinte pois esta está totalmente aberta a ataques deste género: <a href="http://testemunhos.novasoportunidades.gov.pt/detalhe_video.aspx?id=9&amp;tipo=1" target="_blank" class="broken_link">http://testemunhos.novasoportunidades.gov.pt/detalhe_video.aspx</a></p>
<p><a href="http://joaopedropereira.com/blog/wp-content/uploads/2010/03/Screenshot-3.png"><img class="aligncenter size-thumbnail wp-image-736" title="Novas Oportunidades SQL Injection" src="http://joaopedropereira.com/blog/wp-content/uploads/2010/03/Screenshot-3-150x150.png" alt="" width="150" height="150" /></a></p>
<p>O ataque que referi relativo a problemas de validação de parâmetros que permitem injecção de URL: <a href="http://www.novasoportunidades.gov.pt/outerFrame.jsp?link=http://joaopedropereira.com/blog/ " target="_blank">http://www.novasoportunidades.gov.pt/outerFrame.jsp?link=http://joaopedropereira.com/blog/</a></p>
<p><a href="http://joaopedropereira.com/blog/wp-content/uploads/2010/03/Screenshot-2.png"><img class="aligncenter size-thumbnail wp-image-735" title="Novas Oportunidades Impersonation Attack" src="http://joaopedropereira.com/blog/wp-content/uploads/2010/03/Screenshot-2-150x150.png" alt="" width="150" height="150" /></a></p>
<p>Com alguma imaginação pode-se fazer alguns ataques interessantes a partir daqui&#8230;</p>
<p>Na pesquisa também podemos facilmente fazer ataques de XSS (Cross Site Scripting) como referi anteriormente: <a href="http://www.novasoportunidades.gov.pt/np4/q?q=%3Cscript%3Ealert%28%22The+Blog+of+a+WebDeveloper%22%29%3C%2Fscript%3E" target="_blank">http://www.novasoportunidades.gov.pt/np4/q?q=%3Cscript%3Ealert%28%22The+Blog+of+a+WebDeveloper%22%29%3C%2Fscript%3E</a></p>
<p><a href="http://joaopedropereira.com/blog/wp-content/uploads/2010/03/Screenshot-1.png"><img class="aligncenter size-thumbnail wp-image-734" title="Novas Oportunidades XSS Attack" src="http://joaopedropereira.com/blog/wp-content/uploads/2010/03/Screenshot-1-150x150.png" alt="" width="150" height="150" /></a></p>
<p>Isto mostra a preparação e conhecimentos ao nível de segurança informática que os WebDevelopers que o estado contrata têm&#8230; Atenção este não é o único site governamental com problemas graves de segurança, existem mais e talvez que transaccionem dados mais importantes&#8230;</p>
<p><strong><span style="text-decoration: underline;">Nota</span></strong>: Este post não tem como intuito incentivar qualquer tipo de ataque informático, pretende apenas informar e alertar para os problemas informáticos que podem surgir num futuro nas infraestruturas governamentais (e não só). É importante ter as nossas plataformas o mais seguras possíveis, para não sermos surpreendidos um dia.</p>
<p><strong><span style="text-decoration: underline;">EDIT</span></strong></p>
<p>As falhas estão a ser corrigidas, quase completas por isso para registo futuro adicionei screenshots das falhas. É também de valor ler e participar nos comentários a este post que estão a dar uma boa análise do Web Development nacional.</p>
<p><strong>EDIT 2</strong></p>
<p>Governo desmente ataque informático: <a title="Portal Novas Oportunidades não foi alvo de ataque informático" href="http://www.governo.gov.pt/pt/GC18/Governo/Ministerios/MTSS/Notas/Pages/20100308_MTSS_Com_Novas_Oportunidades.aspx" target="_blank">Portal Novas Oportunidades não foi alvo de ataque informático </a>. Provavelmente precisam que venha algo abaixo e que cause danos a muitas pessoas para admitirem os erros&#8230;</p>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center shr-bookmarks-bg-knowledge">
<ul class="socials">
		<li class="shr-blogger">
			<a href="http://www.blogger.com/blog_this.pyra?t&amp;u=http://joaopedropereira.com/blog/2010/03/08/vulnerabilidades-site-novas-oportunidades/&amp;n=Vulnerabilidades+Site+Novas+Oportunidades&amp;pli=1" rel="nofollow" class="external" title="Blog this on Blogger">Blog this on Blogger</a>
		</li>
		<li class="shr-delicious">
			<a href="http://delicious.com/post?url=http://joaopedropereira.com/blog/2010/03/08/vulnerabilidades-site-novas-oportunidades/&amp;title=Vulnerabilidades+Site+Novas+Oportunidades" rel="nofollow" class="external" title="Share this on del.icio.us">Share this on del.icio.us</a>
		</li>
		<li class="shr-digg">
			<a href="http://digg.com/submit?phase=2&amp;url=http://joaopedropereira.com/blog/2010/03/08/vulnerabilidades-site-novas-oportunidades/&amp;title=Vulnerabilidades+Site+Novas+Oportunidades" rel="nofollow" class="external" title="Digg this!">Digg this!</a>
		</li>
		<li class="shr-facebook">
			<a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://joaopedropereira.com/blog/2010/03/08/vulnerabilidades-site-novas-oportunidades/&amp;t=Vulnerabilidades+Site+Novas+Oportunidades" rel="nofollow" class="external" title="Share this on Facebook">Share this on Facebook</a>
		</li>
		<li class="shr-friendfeed">
			<a href="http://www.friendfeed.com/share?title=Vulnerabilidades+Site+Novas+Oportunidades&amp;link=http://joaopedropereira.com/blog/2010/03/08/vulnerabilidades-site-novas-oportunidades/" rel="nofollow" class="external" title="Share this on FriendFeed">Share this on FriendFeed</a>
		</li>
		<li class="shr-googlebuzz">
			<a href="http://www.google.com/buzz/post?url=http://joaopedropereira.com/blog/2010/03/08/vulnerabilidades-site-novas-oportunidades/&amp;imageurl=" rel="nofollow" class="external" title="Post on Google Buzz">Post on Google Buzz</a>
		</li>
		<li class="shr-googlereader">
			<a href="http://www.google.com/reader/link?url=http://joaopedropereira.com/blog/2010/03/08/vulnerabilidades-site-novas-oportunidades/&amp;title=Vulnerabilidades+Site+Novas+Oportunidades&amp;srcUrl=http://joaopedropereira.com/blog/2010/03/08/vulnerabilidades-site-novas-oportunidades/&amp;srcTitle=Vulnerabilidades+Site+Novas+Oportunidades&amp;snippet=J%C3%A1%20h%C3%A1%20algum%20tempo%20que%20tenho%20andado%20a%20investigar%20sites%20nacionais%20em%20busca%20de%20falhas%20de%20seguran%C3%A7a%20e%20quase%20todos%20as%20t%C3%AAm%2C%20as%20mais%20frequentes%20s%C3%A3o%20as%20falhas%20XSS%20mas%20tamb%C3%A9m%20%C3%A9%20muito%20comum%20encontrar%20falhas%20de%20SQL%20Injection.%0D%0A%0D%0AHoje%20tive%20acesso%20atrav%C3%A9s%20de%20um%20tweet%20do%20P%C3%BAblico%20%28http%3A%2F%2Fbit.ly%2FaU0kuy%29%20%C3%A0" rel="nofollow" class="external" title="Add this to Google Reader">Add this to Google Reader</a>
		</li>
		<li class="shr-linkedin">
			<a href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://joaopedropereira.com/blog/2010/03/08/vulnerabilidades-site-novas-oportunidades/&amp;title=Vulnerabilidades+Site+Novas+Oportunidades&amp;summary=J%C3%A1%20h%C3%A1%20algum%20tempo%20que%20tenho%20andado%20a%20investigar%20sites%20nacionais%20em%20busca%20de%20falhas%20de%20seguran%C3%A7a%20e%20quase%20todos%20as%20t%C3%AAm%2C%20as%20mais%20frequentes%20s%C3%A3o%20as%20falhas%20XSS%20mas%20tamb%C3%A9m%20%C3%A9%20muito%20comum%20encontrar%20falhas%20de%20SQL%20Injection.%0D%0A%0D%0AHoje%20tive%20acesso%20atrav%C3%A9s%20de%20um%20tweet%20do%20P%C3%BAblico%20%28http%3A%2F%2Fbit.ly%2FaU0kuy%29%20%C3%A0&amp;source=The Blog of a WebDeveloper" rel="nofollow" class="external" title="Share this on LinkedIn">Share this on LinkedIn</a>
		</li>
		<li class="shr-mail">
			<a href="mailto:?subject=%22Vulnerabilidades%20Site%20Novas%20Oportunidades%22&amp;body=Link: http://joaopedropereira.com/blog/2010/03/08/vulnerabilidades-site-novas-oportunidades/ (sent via shareaholic)%0D%0A%0D%0A----%0D%0A J%C3%A1%20h%C3%A1%20algum%20tempo%20que%20tenho%20andado%20a%20investigar%20sites%20nacionais%20em%20busca%20de%20falhas%20de%20seguran%C3%A7a%20e%20quase%20todos%20as%20t%C3%AAm%2C%20as%20mais%20frequentes%20s%C3%A3o%20as%20falhas%20XSS%20mas%20tamb%C3%A9m%20%C3%A9%20muito%20comum%20encontrar%20falhas%20de%20SQL%20Injection.%0D%0A%0D%0AHoje%20tive%20acesso%20atrav%C3%A9s%20de%20um%20tweet%20do%20P%C3%BAblico%20%28http%3A%2F%2Fbit.ly%2FaU0kuy%29%20%C3%A0" rel="nofollow" class="external" title="Email this to a friend?">Email this to a friend?</a>
		</li>
		<li class="shr-mixx">
			<a href="http://www.mixx.com/submit?page_url=http://joaopedropereira.com/blog/2010/03/08/vulnerabilidades-site-novas-oportunidades/&amp;title=Vulnerabilidades+Site+Novas+Oportunidades" rel="nofollow" class="external" title="Share this on Mixx">Share this on Mixx</a>
		</li>
		<li class="shr-netvibes">
			<a href="http://www.netvibes.com/share?title=Vulnerabilidades+Site+Novas+Oportunidades&amp;url=http://joaopedropereira.com/blog/2010/03/08/vulnerabilidades-site-novas-oportunidades/" rel="nofollow" class="external" title="Submit this to Netvibes">Submit this to Netvibes</a>
		</li>
		<li class="shr-newsvine">
			<a href="http://www.newsvine.com/_tools/seed&amp;save?u=http://joaopedropereira.com/blog/2010/03/08/vulnerabilidades-site-novas-oportunidades/&amp;h=Vulnerabilidades+Site+Novas+Oportunidades" rel="nofollow" class="external" title="Seed this on Newsvine">Seed this on Newsvine</a>
		</li>
		<li class="shr-orkut">
			<a href="http://promote.orkut.com/preview?nt=orkut.com&amp;tt=Vulnerabilidades+Site+Novas+Oportunidades&amp;du=http://joaopedropereira.com/blog/2010/03/08/vulnerabilidades-site-novas-oportunidades/&amp;cn=J%C3%A1%20h%C3%A1%20algum%20tempo%20que%20tenho%20andado%20a%20investigar%20sites%20nacionais%20em%20busca%20de%20falhas%20de%20seguran%C3%A7a%20e%20quase%20todos%20as%20t%C3%AAm%2C%20as%20mais%20frequentes%20s%C3%A3o%20as%20falhas%20XSS%20mas%20tamb%C3%A9m%20%C3%A9%20muito%20comum%20encontrar%20falhas%20de%20SQL%20Injection.%0D%0A%0D%0AHoje%20tive%20acesso%20atrav%C3%A9s%20de%20um%20tweet%20do%20P%C3%BAblico%20%28http%3A%2F%2Fbit.ly%2FaU0kuy%29%20%C3%A0" rel="nofollow" class="external" title="Promote this on Orkut">Promote this on Orkut</a>
		</li>
		<li class="shr-reddit">
			<a href="http://reddit.com/submit?url=http://joaopedropereira.com/blog/2010/03/08/vulnerabilidades-site-novas-oportunidades/&amp;title=Vulnerabilidades+Site+Novas+Oportunidades" rel="nofollow" class="external" title="Share this on Reddit">Share this on Reddit</a>
		</li>
		<li class="shr-slashdot">
			<a href="http://slashdot.org/bookmark.pl?url=http://joaopedropereira.com/blog/2010/03/08/vulnerabilidades-site-novas-oportunidades/&amp;title=Vulnerabilidades+Site+Novas+Oportunidades" rel="nofollow" class="external" title="Submit this to SlashDot">Submit this to SlashDot</a>
		</li>
		<li class="shr-sphinn">
			<a href="http://sphinn.com/index.php?c=post&amp;m=submit&amp;link=http://joaopedropereira.com/blog/2010/03/08/vulnerabilidades-site-novas-oportunidades/" rel="nofollow" class="external" title="Sphinn this on Sphinn">Sphinn this on Sphinn</a>
		</li>
		<li class="shr-stumbleupon">
			<a href="http://www.stumbleupon.com/submit?url=http://joaopedropereira.com/blog/2010/03/08/vulnerabilidades-site-novas-oportunidades/&amp;title=Vulnerabilidades+Site+Novas+Oportunidades" rel="nofollow" class="external" title="Stumble upon something good? Share it on StumbleUpon">Stumble upon something good? Share it on StumbleUpon</a>
		</li>
		<li class="shr-techmeme">
			<a href="http://twitter.com/home/?status=Tip+@Techmeme+http://joaopedropereira.com/blog/2010/03/08/vulnerabilidades-site-novas-oportunidades/+&quot;Vulnerabilidades+Site+Novas+Oportunidades&quot;&amp;source=shareaholic" rel="nofollow" class="external" title="Tip this to TechMeme">Tip this to TechMeme</a>
		</li>
		<li class="shr-technorati">
			<a href="http://technorati.com/faves?add=http://joaopedropereira.com/blog/2010/03/08/vulnerabilidades-site-novas-oportunidades/" rel="nofollow" class="external" title="Share this on Technorati">Share this on Technorati</a>
		</li>
		<li class="shr-tumblr">
			<a href="http://www.tumblr.com/share?v=3&amp;u=http%3A%2F%2Fjoaopedropereira.com%2Fblog%2F2010%2F03%2F08%2Fvulnerabilidades-site-novas-oportunidades%2F&amp;t=Vulnerabilidades+Site+Novas+Oportunidades" rel="nofollow" class="external" title="Share this on Tumblr">Share this on Tumblr</a>
		</li>
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=Vulnerabilidades+Site+Novas+Oportunidades+-+http://bit.ly/czpIh1&amp;source=shareaholic" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
		<li class="shr-yahoobuzz">
			<a href="http://buzz.yahoo.com/submit/?submitUrl=http://joaopedropereira.com/blog/2010/03/08/vulnerabilidades-site-novas-oportunidades/&amp;submitHeadline=Vulnerabilidades+Site+Novas+Oportunidades&amp;submitSummary=J%C3%A1%20h%C3%A1%20algum%20tempo%20que%20tenho%20andado%20a%20investigar%20sites%20nacionais%20em%20busca%20de%20falhas%20de%20seguran%C3%A7a%20e%20quase%20todos%20as%20t%C3%AAm%2C%20as%20mais%20frequentes%20s%C3%A3o%20as%20falhas%20XSS%20mas%20tamb%C3%A9m%20%C3%A9%20muito%20comum%20encontrar%20falhas%20de%20SQL%20Injection.%0D%0A%0D%0AHoje%20tive%20acesso%20atrav%C3%A9s%20de%20um%20tweet%20do%20P%C3%BAblico%20%28http%3A%2F%2Fbit.ly%2FaU0kuy%29%20%C3%A0&amp;submitCategory=science&amp;submitAssetType=text" rel="nofollow" class="external" title="Buzz up!">Buzz up!</a>
		</li>
		<li class="shr-yahoomail">
			<a href="http://compose.mail.yahoo.com/?Subject=Vulnerabilidades+Site+Novas+Oportunidades&amp;body=Link: http://joaopedropereira.com/blog/2010/03/08/vulnerabilidades-site-novas-oportunidades/ (sent via shareaholic)%0D%0A%0D%0A----%0D%0A J%C3%A1%20h%C3%A1%20algum%20tempo%20que%20tenho%20andado%20a%20investigar%20sites%20nacionais%20em%20busca%20de%20falhas%20de%20seguran%C3%A7a%20e%20quase%20todos%20as%20t%C3%AAm%2C%20as%20mais%20frequentes%20s%C3%A3o%20as%20falhas%20XSS%20mas%20tamb%C3%A9m%20%C3%A9%20muito%20comum%20encontrar%20falhas%20de%20SQL%20Injection.%0D%0A%0D%0AHoje%20tive%20acesso%20atrav%C3%A9s%20de%20um%20tweet%20do%20P%C3%BAblico%20%28http%3A%2F%2Fbit.ly%2FaU0kuy%29%20%C3%A0" rel="nofollow" class="external" title="Email this via Yahoo! Mail">Email this via Yahoo! Mail</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>

]]></content:encoded>
			<wfw:commentRss>http://joaopedropereira.com/blog/2010/03/08/vulnerabilidades-site-novas-oportunidades/feed/</wfw:commentRss>
		<slash:comments>23</slash:comments>
		</item>
		<item>
		<title>Parsing de IP utilizando PHP+REGEX</title>
		<link>http://joaopedropereira.com/blog/2010/01/20/parsing-ip-utilizando-php-regex/</link>
		<comments>http://joaopedropereira.com/blog/2010/01/20/parsing-ip-utilizando-php-regex/#comments</comments>
		<pubDate>Wed, 20 Jan 2010 22:09:39 +0000</pubDate>
		<dc:creator>João Pedro Pereira</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Webdevelopment]]></category>
		<category><![CDATA[parsing]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[proxychains]]></category>
		<category><![CDATA[regex]]></category>
		<category><![CDATA[snippet]]></category>

		<guid isPermaLink="false">http://joaopedropereira.com/blog/?p=671</guid>
		<description><![CDATA[No meio de época exames/frequências e muito trabalho arranjei um bocado de tempo para colocar aqui o último snippet que escrevi para fazer parsing de um ficheiro que contém uma lista de IP&#8217;s e portas onde correm serviços de proxy. Isto porque ando a experimentar configurações mais avançadas em ferramentas como o proxychains que nas [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: left; margin-right: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fjoaopedropereira.com%2Fblog%2F2010%2F01%2F20%2Fparsing-ip-utilizando-php-regex%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fjoaopedropereira.com%2Fblog%2F2010%2F01%2F20%2Fparsing-ip-utilizando-php-regex%2F&amp;source=joaoppereira&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>No meio de época exames/frequências e muito trabalho arranjei um bocado de tempo para colocar aqui o último snippet que escrevi para fazer parsing de um ficheiro que contém uma lista de IP&#8217;s e portas onde correm serviços de proxy.<br />
Isto porque ando a experimentar configurações mais avançadas em ferramentas como o <a href="http://proxychains.sourceforge.net/">proxychains</a> que nas suas configurações exigem um esquema especifico para proxys.</p>
<p><strong>Syntax necessária:</strong> http ip porta<br />
<strong>Syntax do ficheiro:</strong> ip:porta</p>
<h2>Snippet</h2>
<pre class="brush: php">$url = &#039;http://blackhatbootcamp.net/proxies/data/ultimate_proxies.txt&#039;;

	preg_match_all(&#039;/[0-9]{1,3}+\.[0-9]{1,3}+\.[0-9]{1,3}+\.[0-9]{1,3}+\:[0-9]{2}/&#039;, file_get_contents($url), $matches); 

	$size=sizeof($matches[0]);
	foreach($matches as $var) {
		for($i=0; $i&lt; $size; $i++)
			echo preg_replace(&#039;/(\d{1,3}).(\d{1,3}).(\d{1,3}).(\d{1,3}):(\d{2})/&#039;, &quot;http $1.$2.$3.$4 $5&lt;br/&gt;&quot;, $var[$i]);
	}</pre>
<p>Sei que python e PERL têm uma grande capacidade de utilização de REGEX, se andarem por aí conhecedores do assunto podem partilhar os snippets aqui <img src='http://joaopedropereira.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center shr-bookmarks-bg-knowledge">
<ul class="socials">
		<li class="shr-blogger">
			<a href="http://www.blogger.com/blog_this.pyra?t&amp;u=http://joaopedropereira.com/blog/2010/01/20/parsing-ip-utilizando-php-regex/&amp;n=Parsing+de+IP+utilizando+PHP%2BREGEX&amp;pli=1" rel="nofollow" class="external" title="Blog this on Blogger">Blog this on Blogger</a>
		</li>
		<li class="shr-delicious">
			<a href="http://delicious.com/post?url=http://joaopedropereira.com/blog/2010/01/20/parsing-ip-utilizando-php-regex/&amp;title=Parsing+de+IP+utilizando+PHP%2BREGEX" rel="nofollow" class="external" title="Share this on del.icio.us">Share this on del.icio.us</a>
		</li>
		<li class="shr-digg">
			<a href="http://digg.com/submit?phase=2&amp;url=http://joaopedropereira.com/blog/2010/01/20/parsing-ip-utilizando-php-regex/&amp;title=Parsing+de+IP+utilizando+PHP%2BREGEX" rel="nofollow" class="external" title="Digg this!">Digg this!</a>
		</li>
		<li class="shr-facebook">
			<a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://joaopedropereira.com/blog/2010/01/20/parsing-ip-utilizando-php-regex/&amp;t=Parsing+de+IP+utilizando+PHP%2BREGEX" rel="nofollow" class="external" title="Share this on Facebook">Share this on Facebook</a>
		</li>
		<li class="shr-friendfeed">
			<a href="http://www.friendfeed.com/share?title=Parsing+de+IP+utilizando+PHP%2BREGEX&amp;link=http://joaopedropereira.com/blog/2010/01/20/parsing-ip-utilizando-php-regex/" rel="nofollow" class="external" title="Share this on FriendFeed">Share this on FriendFeed</a>
		</li>
		<li class="shr-googlebuzz">
			<a href="http://www.google.com/buzz/post?url=http://joaopedropereira.com/blog/2010/01/20/parsing-ip-utilizando-php-regex/&amp;imageurl=" rel="nofollow" class="external" title="Post on Google Buzz">Post on Google Buzz</a>
		</li>
		<li class="shr-googlereader">
			<a href="http://www.google.com/reader/link?url=http://joaopedropereira.com/blog/2010/01/20/parsing-ip-utilizando-php-regex/&amp;title=Parsing+de+IP+utilizando+PHP%2BREGEX&amp;srcUrl=http://joaopedropereira.com/blog/2010/01/20/parsing-ip-utilizando-php-regex/&amp;srcTitle=Parsing+de+IP+utilizando+PHP%2BREGEX&amp;snippet=No%20meio%20de%20%C3%A9poca%20exames%2Ffrequ%C3%AAncias%20e%20muito%20trabalho%20arranjei%20um%20bocado%20de%20tempo%20para%20colocar%20aqui%20o%20%C3%BAltimo%20snippet%20que%20escrevi%20para%20fazer%20parsing%20de%20um%20ficheiro%20que%20cont%C3%A9m%20uma%20lista%20de%20IP%27s%20e%20portas%20onde%20correm%20servi%C3%A7os%20de%20proxy.%0D%0AIsto%20porque%20ando%20a%20experimentar%20configura%C3%A7%C3%B5es%20mais%20avan%C3%A7adas" rel="nofollow" class="external" title="Add this to Google Reader">Add this to Google Reader</a>
		</li>
		<li class="shr-linkedin">
			<a href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://joaopedropereira.com/blog/2010/01/20/parsing-ip-utilizando-php-regex/&amp;title=Parsing+de+IP+utilizando+PHP%2BREGEX&amp;summary=No%20meio%20de%20%C3%A9poca%20exames%2Ffrequ%C3%AAncias%20e%20muito%20trabalho%20arranjei%20um%20bocado%20de%20tempo%20para%20colocar%20aqui%20o%20%C3%BAltimo%20snippet%20que%20escrevi%20para%20fazer%20parsing%20de%20um%20ficheiro%20que%20cont%C3%A9m%20uma%20lista%20de%20IP%27s%20e%20portas%20onde%20correm%20servi%C3%A7os%20de%20proxy.%0D%0AIsto%20porque%20ando%20a%20experimentar%20configura%C3%A7%C3%B5es%20mais%20avan%C3%A7adas&amp;source=The Blog of a WebDeveloper" rel="nofollow" class="external" title="Share this on LinkedIn">Share this on LinkedIn</a>
		</li>
		<li class="shr-mail">
			<a href="mailto:?subject=%22Parsing%20de%20IP%20utilizando%20PHP%2BREGEX%22&amp;body=Link: http://joaopedropereira.com/blog/2010/01/20/parsing-ip-utilizando-php-regex/ (sent via shareaholic)%0D%0A%0D%0A----%0D%0A No%20meio%20de%20%C3%A9poca%20exames%2Ffrequ%C3%AAncias%20e%20muito%20trabalho%20arranjei%20um%20bocado%20de%20tempo%20para%20colocar%20aqui%20o%20%C3%BAltimo%20snippet%20que%20escrevi%20para%20fazer%20parsing%20de%20um%20ficheiro%20que%20cont%C3%A9m%20uma%20lista%20de%20IP%27s%20e%20portas%20onde%20correm%20servi%C3%A7os%20de%20proxy.%0D%0AIsto%20porque%20ando%20a%20experimentar%20configura%C3%A7%C3%B5es%20mais%20avan%C3%A7adas" rel="nofollow" class="external" title="Email this to a friend?">Email this to a friend?</a>
		</li>
		<li class="shr-mixx">
			<a href="http://www.mixx.com/submit?page_url=http://joaopedropereira.com/blog/2010/01/20/parsing-ip-utilizando-php-regex/&amp;title=Parsing+de+IP+utilizando+PHP%2BREGEX" rel="nofollow" class="external" title="Share this on Mixx">Share this on Mixx</a>
		</li>
		<li class="shr-netvibes">
			<a href="http://www.netvibes.com/share?title=Parsing+de+IP+utilizando+PHP%2BREGEX&amp;url=http://joaopedropereira.com/blog/2010/01/20/parsing-ip-utilizando-php-regex/" rel="nofollow" class="external" title="Submit this to Netvibes">Submit this to Netvibes</a>
		</li>
		<li class="shr-newsvine">
			<a href="http://www.newsvine.com/_tools/seed&amp;save?u=http://joaopedropereira.com/blog/2010/01/20/parsing-ip-utilizando-php-regex/&amp;h=Parsing+de+IP+utilizando+PHP%2BREGEX" rel="nofollow" class="external" title="Seed this on Newsvine">Seed this on Newsvine</a>
		</li>
		<li class="shr-orkut">
			<a href="http://promote.orkut.com/preview?nt=orkut.com&amp;tt=Parsing+de+IP+utilizando+PHP%2BREGEX&amp;du=http://joaopedropereira.com/blog/2010/01/20/parsing-ip-utilizando-php-regex/&amp;cn=No%20meio%20de%20%C3%A9poca%20exames%2Ffrequ%C3%AAncias%20e%20muito%20trabalho%20arranjei%20um%20bocado%20de%20tempo%20para%20colocar%20aqui%20o%20%C3%BAltimo%20snippet%20que%20escrevi%20para%20fazer%20parsing%20de%20um%20ficheiro%20que%20cont%C3%A9m%20uma%20lista%20de%20IP%27s%20e%20portas%20onde%20correm%20servi%C3%A7os%20de%20proxy.%0D%0AIsto%20porque%20ando%20a%20experimentar%20configura%C3%A7%C3%B5es%20mais%20avan%C3%A7adas" rel="nofollow" class="external" title="Promote this on Orkut">Promote this on Orkut</a>
		</li>
		<li class="shr-reddit">
			<a href="http://reddit.com/submit?url=http://joaopedropereira.com/blog/2010/01/20/parsing-ip-utilizando-php-regex/&amp;title=Parsing+de+IP+utilizando+PHP%2BREGEX" rel="nofollow" class="external" title="Share this on Reddit">Share this on Reddit</a>
		</li>
		<li class="shr-slashdot">
			<a href="http://slashdot.org/bookmark.pl?url=http://joaopedropereira.com/blog/2010/01/20/parsing-ip-utilizando-php-regex/&amp;title=Parsing+de+IP+utilizando+PHP%2BREGEX" rel="nofollow" class="external" title="Submit this to SlashDot">Submit this to SlashDot</a>
		</li>
		<li class="shr-sphinn">
			<a href="http://sphinn.com/index.php?c=post&amp;m=submit&amp;link=http://joaopedropereira.com/blog/2010/01/20/parsing-ip-utilizando-php-regex/" rel="nofollow" class="external" title="Sphinn this on Sphinn">Sphinn this on Sphinn</a>
		</li>
		<li class="shr-stumbleupon">
			<a href="http://www.stumbleupon.com/submit?url=http://joaopedropereira.com/blog/2010/01/20/parsing-ip-utilizando-php-regex/&amp;title=Parsing+de+IP+utilizando+PHP%2BREGEX" rel="nofollow" class="external" title="Stumble upon something good? Share it on StumbleUpon">Stumble upon something good? Share it on StumbleUpon</a>
		</li>
		<li class="shr-techmeme">
			<a href="http://twitter.com/home/?status=Tip+@Techmeme+http://joaopedropereira.com/blog/2010/01/20/parsing-ip-utilizando-php-regex/+&quot;Parsing+de+IP+utilizando+PHP%2BREGEX&quot;&amp;source=shareaholic" rel="nofollow" class="external" title="Tip this to TechMeme">Tip this to TechMeme</a>
		</li>
		<li class="shr-technorati">
			<a href="http://technorati.com/faves?add=http://joaopedropereira.com/blog/2010/01/20/parsing-ip-utilizando-php-regex/" rel="nofollow" class="external" title="Share this on Technorati">Share this on Technorati</a>
		</li>
		<li class="shr-tumblr">
			<a href="http://www.tumblr.com/share?v=3&amp;u=http%3A%2F%2Fjoaopedropereira.com%2Fblog%2F2010%2F01%2F20%2Fparsing-ip-utilizando-php-regex%2F&amp;t=Parsing+de+IP+utilizando+PHP%2BREGEX" rel="nofollow" class="external" title="Share this on Tumblr">Share this on Tumblr</a>
		</li>
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=Parsing+de+IP+utilizando+PHP%2BREGEX+-+http://bit.ly/9hq6dP&amp;source=shareaholic" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
		<li class="shr-yahoobuzz">
			<a href="http://buzz.yahoo.com/submit/?submitUrl=http://joaopedropereira.com/blog/2010/01/20/parsing-ip-utilizando-php-regex/&amp;submitHeadline=Parsing+de+IP+utilizando+PHP%2BREGEX&amp;submitSummary=No%20meio%20de%20%C3%A9poca%20exames%2Ffrequ%C3%AAncias%20e%20muito%20trabalho%20arranjei%20um%20bocado%20de%20tempo%20para%20colocar%20aqui%20o%20%C3%BAltimo%20snippet%20que%20escrevi%20para%20fazer%20parsing%20de%20um%20ficheiro%20que%20cont%C3%A9m%20uma%20lista%20de%20IP%27s%20e%20portas%20onde%20correm%20servi%C3%A7os%20de%20proxy.%0D%0AIsto%20porque%20ando%20a%20experimentar%20configura%C3%A7%C3%B5es%20mais%20avan%C3%A7adas&amp;submitCategory=science&amp;submitAssetType=text" rel="nofollow" class="external" title="Buzz up!">Buzz up!</a>
		</li>
		<li class="shr-yahoomail">
			<a href="http://compose.mail.yahoo.com/?Subject=Parsing+de+IP+utilizando+PHP%2BREGEX&amp;body=Link: http://joaopedropereira.com/blog/2010/01/20/parsing-ip-utilizando-php-regex/ (sent via shareaholic)%0D%0A%0D%0A----%0D%0A No%20meio%20de%20%C3%A9poca%20exames%2Ffrequ%C3%AAncias%20e%20muito%20trabalho%20arranjei%20um%20bocado%20de%20tempo%20para%20colocar%20aqui%20o%20%C3%BAltimo%20snippet%20que%20escrevi%20para%20fazer%20parsing%20de%20um%20ficheiro%20que%20cont%C3%A9m%20uma%20lista%20de%20IP%27s%20e%20portas%20onde%20correm%20servi%C3%A7os%20de%20proxy.%0D%0AIsto%20porque%20ando%20a%20experimentar%20configura%C3%A7%C3%B5es%20mais%20avan%C3%A7adas" rel="nofollow" class="external" title="Email this via Yahoo! Mail">Email this via Yahoo! Mail</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>

]]></content:encoded>
			<wfw:commentRss>http://joaopedropereira.com/blog/2010/01/20/parsing-ip-utilizando-php-regex/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Trabalhando com jQuery e MooTools ao mesmo tempo</title>
		<link>http://joaopedropereira.com/blog/2010/01/07/trabalhando-com-jquery-e-mootools-ao-mesmo-tempo/</link>
		<comments>http://joaopedropereira.com/blog/2010/01/07/trabalhando-com-jquery-e-mootools-ao-mesmo-tempo/#comments</comments>
		<pubDate>Thu, 07 Jan 2010 18:19:18 +0000</pubDate>
		<dc:creator>João Pedro Pereira</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Webdevelopment]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[mootools]]></category>

		<guid isPermaLink="false">http://joaopedropereira.com/blog/?p=648</guid>
		<description><![CDATA[Hoje estava a melhorar a área de administração para o portal de um cliente que será brevemente lançado, e deparei-me com o problema&#8230; Tinha um plugin desenvolvido em jQuery e outro em MooTools que queria ver integrado na mesma página. Explicação do Porquê do Erro Acontecer O símbolo &#8216;$&#8217; é usado como objecto pela jQuery [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: left; margin-right: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fjoaopedropereira.com%2Fblog%2F2010%2F01%2F07%2Ftrabalhando-com-jquery-e-mootools-ao-mesmo-tempo%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fjoaopedropereira.com%2Fblog%2F2010%2F01%2F07%2Ftrabalhando-com-jquery-e-mootools-ao-mesmo-tempo%2F&amp;source=joaoppereira&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p><a href="http://joaopedropereira.com/blog/wp-content/uploads/2010/01/jquery-mootools-180x144.gif"><img class="size-full wp-image-649 alignright" title="jQuery &amp; MooTools" src="http://joaopedropereira.com/blog/wp-content/uploads/2010/01/jquery-mootools-180x144.gif" alt="jQuery &amp; MooTools" width="180" height="144" /></a>Hoje estava a melhorar a área de administração para o portal de um cliente que será brevemente lançado, e deparei-me com o problema&#8230; Tinha um plugin desenvolvido em jQuery e outro em MooTools que queria ver integrado na mesma página.</p>
<h2>Explicação do Porquê do Erro Acontecer</h2>
<p>O símbolo &#8216;$&#8217; é usado como objecto pela jQuery e também pela MooTools, logo existe interferência.</p>
<p>Se chamarmos primeiro a jQuery ela vai correr e criar um objecto chamado &#8216;$&#8217; com as funções especificas para jQuery, de seguida, chamamos a MooTools que vai criar o seu o objecto também chamado &#8216;$&#8217; com as funções especificas da MooTools.</p>
<h2>A Solução</h2>
<p>Depois de alguma pesquisa consegui solucionar o problema e ter os dois a funcionar correctamente no mesmo local, apesar da solução mais vista: jQuery.noConflict(); não funcionar no meu caso.</p>
<p>A solução passou por pegar nos ficheiros de funções jQuery e alterar todos os &#8216;$&#8217; para &#8216;jQuery&#8217;, porque é a mesma coisa chamar uma função através do objecto &#8216;$&#8217; quer através do objecto &#8216;jQuery&#8217;, pois o objecto &#8216;$&#8217; é apenas um <em>shortcut</em> para &#8216;jQuery&#8217;.</p>
<p>Depois a ordem que utilizei para chamar as bibliotecas em si foi a jQuery primeiro e de seguida a MooTools.</p>
<p style="text-align: center;"><a href="http://joaopedropereira.com/blog/wp-content/uploads/2010/01/Screenshot1.png" target="_blank"><img class="aligncenter size-medium wp-image-657" title="Screenshot-Replace All" src="http://joaopedropereira.com/blog/wp-content/uploads/2010/01/Screenshot1-300x187.png" alt="" width="300" height="187" /></a></p>
<p style="text-align: center;">


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center shr-bookmarks-bg-knowledge">
<ul class="socials">
		<li class="shr-blogger">
			<a href="http://www.blogger.com/blog_this.pyra?t&amp;u=http://joaopedropereira.com/blog/2010/01/07/trabalhando-com-jquery-e-mootools-ao-mesmo-tempo/&amp;n=Trabalhando+com+jQuery+e+MooTools+ao+mesmo+tempo&amp;pli=1" rel="nofollow" class="external" title="Blog this on Blogger">Blog this on Blogger</a>
		</li>
		<li class="shr-delicious">
			<a href="http://delicious.com/post?url=http://joaopedropereira.com/blog/2010/01/07/trabalhando-com-jquery-e-mootools-ao-mesmo-tempo/&amp;title=Trabalhando+com+jQuery+e+MooTools+ao+mesmo+tempo" rel="nofollow" class="external" title="Share this on del.icio.us">Share this on del.icio.us</a>
		</li>
		<li class="shr-digg">
			<a href="http://digg.com/submit?phase=2&amp;url=http://joaopedropereira.com/blog/2010/01/07/trabalhando-com-jquery-e-mootools-ao-mesmo-tempo/&amp;title=Trabalhando+com+jQuery+e+MooTools+ao+mesmo+tempo" rel="nofollow" class="external" title="Digg this!">Digg this!</a>
		</li>
		<li class="shr-facebook">
			<a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://joaopedropereira.com/blog/2010/01/07/trabalhando-com-jquery-e-mootools-ao-mesmo-tempo/&amp;t=Trabalhando+com+jQuery+e+MooTools+ao+mesmo+tempo" rel="nofollow" class="external" title="Share this on Facebook">Share this on Facebook</a>
		</li>
		<li class="shr-friendfeed">
			<a href="http://www.friendfeed.com/share?title=Trabalhando+com+jQuery+e+MooTools+ao+mesmo+tempo&amp;link=http://joaopedropereira.com/blog/2010/01/07/trabalhando-com-jquery-e-mootools-ao-mesmo-tempo/" rel="nofollow" class="external" title="Share this on FriendFeed">Share this on FriendFeed</a>
		</li>
		<li class="shr-googlebuzz">
			<a href="http://www.google.com/buzz/post?url=http://joaopedropereira.com/blog/2010/01/07/trabalhando-com-jquery-e-mootools-ao-mesmo-tempo/&amp;imageurl=" rel="nofollow" class="external" title="Post on Google Buzz">Post on Google Buzz</a>
		</li>
		<li class="shr-googlereader">
			<a href="http://www.google.com/reader/link?url=http://joaopedropereira.com/blog/2010/01/07/trabalhando-com-jquery-e-mootools-ao-mesmo-tempo/&amp;title=Trabalhando+com+jQuery+e+MooTools+ao+mesmo+tempo&amp;srcUrl=http://joaopedropereira.com/blog/2010/01/07/trabalhando-com-jquery-e-mootools-ao-mesmo-tempo/&amp;srcTitle=Trabalhando+com+jQuery+e+MooTools+ao+mesmo+tempo&amp;snippet=Hoje%20estava%20a%20melhorar%20a%20%C3%A1rea%20de%20administra%C3%A7%C3%A3o%20para%20o%20portal%20de%20um%20cliente%20que%20ser%C3%A1%20brevemente%20lan%C3%A7ado%2C%20e%20deparei-me%20com%20o%20problema...%20Tinha%20um%20plugin%20desenvolvido%20em%20jQuery%20e%20outro%20em%20MooTools%20que%20queria%20ver%20integrado%20na%20mesma%20p%C3%A1gina.%0D%0AExplica%C3%A7%C3%A3o%20do%20Porqu%C3%AA%20do%20Erro%20Acontecer%0D%0AO%20s%C3%ADmbolo%20%27%24%27" rel="nofollow" class="external" title="Add this to Google Reader">Add this to Google Reader</a>
		</li>
		<li class="shr-linkedin">
			<a href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://joaopedropereira.com/blog/2010/01/07/trabalhando-com-jquery-e-mootools-ao-mesmo-tempo/&amp;title=Trabalhando+com+jQuery+e+MooTools+ao+mesmo+tempo&amp;summary=Hoje%20estava%20a%20melhorar%20a%20%C3%A1rea%20de%20administra%C3%A7%C3%A3o%20para%20o%20portal%20de%20um%20cliente%20que%20ser%C3%A1%20brevemente%20lan%C3%A7ado%2C%20e%20deparei-me%20com%20o%20problema...%20Tinha%20um%20plugin%20desenvolvido%20em%20jQuery%20e%20outro%20em%20MooTools%20que%20queria%20ver%20integrado%20na%20mesma%20p%C3%A1gina.%0D%0AExplica%C3%A7%C3%A3o%20do%20Porqu%C3%AA%20do%20Erro%20Acontecer%0D%0AO%20s%C3%ADmbolo%20%27%24%27&amp;source=The Blog of a WebDeveloper" rel="nofollow" class="external" title="Share this on LinkedIn">Share this on LinkedIn</a>
		</li>
		<li class="shr-mail">
			<a href="mailto:?subject=%22Trabalhando%20com%20jQuery%20e%20MooTools%20ao%20mesmo%20tempo%22&amp;body=Link: http://joaopedropereira.com/blog/2010/01/07/trabalhando-com-jquery-e-mootools-ao-mesmo-tempo/ (sent via shareaholic)%0D%0A%0D%0A----%0D%0A Hoje%20estava%20a%20melhorar%20a%20%C3%A1rea%20de%20administra%C3%A7%C3%A3o%20para%20o%20portal%20de%20um%20cliente%20que%20ser%C3%A1%20brevemente%20lan%C3%A7ado%2C%20e%20deparei-me%20com%20o%20problema...%20Tinha%20um%20plugin%20desenvolvido%20em%20jQuery%20e%20outro%20em%20MooTools%20que%20queria%20ver%20integrado%20na%20mesma%20p%C3%A1gina.%0D%0AExplica%C3%A7%C3%A3o%20do%20Porqu%C3%AA%20do%20Erro%20Acontecer%0D%0AO%20s%C3%ADmbolo%20%27%24%27" rel="nofollow" class="external" title="Email this to a friend?">Email this to a friend?</a>
		</li>
		<li class="shr-mixx">
			<a href="http://www.mixx.com/submit?page_url=http://joaopedropereira.com/blog/2010/01/07/trabalhando-com-jquery-e-mootools-ao-mesmo-tempo/&amp;title=Trabalhando+com+jQuery+e+MooTools+ao+mesmo+tempo" rel="nofollow" class="external" title="Share this on Mixx">Share this on Mixx</a>
		</li>
		<li class="shr-netvibes">
			<a href="http://www.netvibes.com/share?title=Trabalhando+com+jQuery+e+MooTools+ao+mesmo+tempo&amp;url=http://joaopedropereira.com/blog/2010/01/07/trabalhando-com-jquery-e-mootools-ao-mesmo-tempo/" rel="nofollow" class="external" title="Submit this to Netvibes">Submit this to Netvibes</a>
		</li>
		<li class="shr-newsvine">
			<a href="http://www.newsvine.com/_tools/seed&amp;save?u=http://joaopedropereira.com/blog/2010/01/07/trabalhando-com-jquery-e-mootools-ao-mesmo-tempo/&amp;h=Trabalhando+com+jQuery+e+MooTools+ao+mesmo+tempo" rel="nofollow" class="external" title="Seed this on Newsvine">Seed this on Newsvine</a>
		</li>
		<li class="shr-orkut">
			<a href="http://promote.orkut.com/preview?nt=orkut.com&amp;tt=Trabalhando+com+jQuery+e+MooTools+ao+mesmo+tempo&amp;du=http://joaopedropereira.com/blog/2010/01/07/trabalhando-com-jquery-e-mootools-ao-mesmo-tempo/&amp;cn=Hoje%20estava%20a%20melhorar%20a%20%C3%A1rea%20de%20administra%C3%A7%C3%A3o%20para%20o%20portal%20de%20um%20cliente%20que%20ser%C3%A1%20brevemente%20lan%C3%A7ado%2C%20e%20deparei-me%20com%20o%20problema...%20Tinha%20um%20plugin%20desenvolvido%20em%20jQuery%20e%20outro%20em%20MooTools%20que%20queria%20ver%20integrado%20na%20mesma%20p%C3%A1gina.%0D%0AExplica%C3%A7%C3%A3o%20do%20Porqu%C3%AA%20do%20Erro%20Acontecer%0D%0AO%20s%C3%ADmbolo%20%27%24%27" rel="nofollow" class="external" title="Promote this on Orkut">Promote this on Orkut</a>
		</li>
		<li class="shr-reddit">
			<a href="http://reddit.com/submit?url=http://joaopedropereira.com/blog/2010/01/07/trabalhando-com-jquery-e-mootools-ao-mesmo-tempo/&amp;title=Trabalhando+com+jQuery+e+MooTools+ao+mesmo+tempo" rel="nofollow" class="external" title="Share this on Reddit">Share this on Reddit</a>
		</li>
		<li class="shr-slashdot">
			<a href="http://slashdot.org/bookmark.pl?url=http://joaopedropereira.com/blog/2010/01/07/trabalhando-com-jquery-e-mootools-ao-mesmo-tempo/&amp;title=Trabalhando+com+jQuery+e+MooTools+ao+mesmo+tempo" rel="nofollow" class="external" title="Submit this to SlashDot">Submit this to SlashDot</a>
		</li>
		<li class="shr-sphinn">
			<a href="http://sphinn.com/index.php?c=post&amp;m=submit&amp;link=http://joaopedropereira.com/blog/2010/01/07/trabalhando-com-jquery-e-mootools-ao-mesmo-tempo/" rel="nofollow" class="external" title="Sphinn this on Sphinn">Sphinn this on Sphinn</a>
		</li>
		<li class="shr-stumbleupon">
			<a href="http://www.stumbleupon.com/submit?url=http://joaopedropereira.com/blog/2010/01/07/trabalhando-com-jquery-e-mootools-ao-mesmo-tempo/&amp;title=Trabalhando+com+jQuery+e+MooTools+ao+mesmo+tempo" rel="nofollow" class="external" title="Stumble upon something good? Share it on StumbleUpon">Stumble upon something good? Share it on StumbleUpon</a>
		</li>
		<li class="shr-techmeme">
			<a href="http://twitter.com/home/?status=Tip+@Techmeme+http://joaopedropereira.com/blog/2010/01/07/trabalhando-com-jquery-e-mootools-ao-mesmo-tempo/+&quot;Trabalhando+com+jQuery+e+MooTools+ao+mesmo+tempo&quot;&amp;source=shareaholic" rel="nofollow" class="external" title="Tip this to TechMeme">Tip this to TechMeme</a>
		</li>
		<li class="shr-technorati">
			<a href="http://technorati.com/faves?add=http://joaopedropereira.com/blog/2010/01/07/trabalhando-com-jquery-e-mootools-ao-mesmo-tempo/" rel="nofollow" class="external" title="Share this on Technorati">Share this on Technorati</a>
		</li>
		<li class="shr-tumblr">
			<a href="http://www.tumblr.com/share?v=3&amp;u=http%3A%2F%2Fjoaopedropereira.com%2Fblog%2F2010%2F01%2F07%2Ftrabalhando-com-jquery-e-mootools-ao-mesmo-tempo%2F&amp;t=Trabalhando+com+jQuery+e+MooTools+ao+mesmo+tempo" rel="nofollow" class="external" title="Share this on Tumblr">Share this on Tumblr</a>
		</li>
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=Trabalhando+com+jQuery+e+MooTools+ao+mesmo+tempo+-+http://bit.ly/cnBTvF&amp;source=shareaholic" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
		<li class="shr-yahoobuzz">
			<a href="http://buzz.yahoo.com/submit/?submitUrl=http://joaopedropereira.com/blog/2010/01/07/trabalhando-com-jquery-e-mootools-ao-mesmo-tempo/&amp;submitHeadline=Trabalhando+com+jQuery+e+MooTools+ao+mesmo+tempo&amp;submitSummary=Hoje%20estava%20a%20melhorar%20a%20%C3%A1rea%20de%20administra%C3%A7%C3%A3o%20para%20o%20portal%20de%20um%20cliente%20que%20ser%C3%A1%20brevemente%20lan%C3%A7ado%2C%20e%20deparei-me%20com%20o%20problema...%20Tinha%20um%20plugin%20desenvolvido%20em%20jQuery%20e%20outro%20em%20MooTools%20que%20queria%20ver%20integrado%20na%20mesma%20p%C3%A1gina.%0D%0AExplica%C3%A7%C3%A3o%20do%20Porqu%C3%AA%20do%20Erro%20Acontecer%0D%0AO%20s%C3%ADmbolo%20%27%24%27&amp;submitCategory=science&amp;submitAssetType=text" rel="nofollow" class="external" title="Buzz up!">Buzz up!</a>
		</li>
		<li class="shr-yahoomail">
			<a href="http://compose.mail.yahoo.com/?Subject=Trabalhando+com+jQuery+e+MooTools+ao+mesmo+tempo&amp;body=Link: http://joaopedropereira.com/blog/2010/01/07/trabalhando-com-jquery-e-mootools-ao-mesmo-tempo/ (sent via shareaholic)%0D%0A%0D%0A----%0D%0A Hoje%20estava%20a%20melhorar%20a%20%C3%A1rea%20de%20administra%C3%A7%C3%A3o%20para%20o%20portal%20de%20um%20cliente%20que%20ser%C3%A1%20brevemente%20lan%C3%A7ado%2C%20e%20deparei-me%20com%20o%20problema...%20Tinha%20um%20plugin%20desenvolvido%20em%20jQuery%20e%20outro%20em%20MooTools%20que%20queria%20ver%20integrado%20na%20mesma%20p%C3%A1gina.%0D%0AExplica%C3%A7%C3%A3o%20do%20Porqu%C3%AA%20do%20Erro%20Acontecer%0D%0AO%20s%C3%ADmbolo%20%27%24%27" rel="nofollow" class="external" title="Email this via Yahoo! Mail">Email this via Yahoo! Mail</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>

]]></content:encoded>
			<wfw:commentRss>http://joaopedropereira.com/blog/2010/01/07/trabalhando-com-jquery-e-mootools-ao-mesmo-tempo/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>SAPO Codebits 2009 &#8211; Reviewed</title>
		<link>http://joaopedropereira.com/blog/2009/12/09/sapo-codebits-2009-reviewed/</link>
		<comments>http://joaopedropereira.com/blog/2009/12/09/sapo-codebits-2009-reviewed/#comments</comments>
		<pubDate>Wed, 09 Dec 2009 20:42:10 +0000</pubDate>
		<dc:creator>João Pedro Pereira</dc:creator>
				<category><![CDATA[Infos]]></category>
		<category><![CDATA[Tecnologia]]></category>
		<category><![CDATA[Webdevelopment]]></category>
		<category><![CDATA[codebits]]></category>
		<category><![CDATA[sapo]]></category>

		<guid isPermaLink="false">http://joaopedropereira.com/blog/?p=589</guid>
		<description><![CDATA[Nos dias 3, 4 e 5 de Dezembro realizou-se o SAPO Codebits 2009, depois de ter estado presente na edição de 2008 posso dizer que este ano quase tudo esteve melhor que o ano passado e que excedeu completamente as minhas expectativas. Foi sem dúvida uma excelente experiência, não só pelo evento em si mas [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: left; margin-right: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fjoaopedropereira.com%2Fblog%2F2009%2F12%2F09%2Fsapo-codebits-2009-reviewed%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fjoaopedropereira.com%2Fblog%2F2009%2F12%2F09%2Fsapo-codebits-2009-reviewed%2F&amp;source=joaoppereira&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>Nos dias 3, 4 e 5 de Dezembro realizou-se o SAPO Codebits 2009, depois de ter estado presente na edição de 2008 posso dizer que este ano quase tudo esteve melhor que o ano passado e que excedeu completamente as minhas expectativas.</p>
<p>Foi sem dúvida uma excelente experiência, não só pelo evento em si mas por outros factores que existiram devido ao evento. A partida do Porto deu-se dia 3 de Dezembro da FEUP (Faculdade de Engenharia da Universidade do Porto) na companhia de cerca de 30 estudantes do MIEIC (Mestrado Integrado em Engenharia Informática e Computação), que mostraram ser uma excelente companhia, sempre com boa disposição e simpatia.</p>
<p><img class="aligncenter size-full wp-image-600" title="SAPO Codebits 2009 Logo" src="http://joaopedropereira.com/blog/wp-content/uploads/2009/12/logo_site.png" alt="SAPO Codebits 2009 Logo" width="540" height="140" /></p>
<p>Chegando ao local do evento, este ano foi escolhida a Cordoaria Nacional junto ao Tejo, o &#8220;check in&#8221; foi super rápido e as meninas que o fizeram foram muito simpáticas situaram-me logo no edifício e indicaram o que existia e onde se encontrava.</p>
<p>Passados uns minutos já estava eu sentado numa mesa a ver os brindes que os patrocinadores tinham oferecido.</p>
<p>Uma bolsa de transporte para laptops oficial SAPO Codebits, uma USB Lamp oferecida pela Microsoft, equipamento para dormir mais descansado da PT Inovação (venda para os olhos, tampões para os ouvidos, umas meias e ainda uma escova e pasta para lavar os dentes), adorei também a ideia de entregarem uma folha com badges, tendo já quitado o meu computador portátil com alguns&#8230; Ri-me quando vi que tinham entregue um read-me impresso que por acaso foi muito útil, e as tshirts este ano estão fantásticas.</p>
<p><img class="aligncenter size-full wp-image-602" title="SAPO Codebits 2009 Entrance" src="http://joaopedropereira.com/blog/wp-content/uploads/2009/12/4165466011_7abb0a281a.jpg" alt="SAPO Codebits 2009 Entrance" width="500" height="375" /></p>
<p>Depois de uma volta pelo recinto gostei do que vi, as instalações estavam bem melhores este ano, a área para descanso estava muito bem conseguida, havia muito espaço, não faltavam mesas, nem beanbags, havia mais alternativas à pizza, muitas bebidas, notou-se um grande esforço por parte da organização para atender às queixas do ano anterior relativamente ao espaço e às refeições.</p>
<p>Este ano também não notei a confusão do ano passado nas horas das refeições, não tendo esperado mais do que 3/4min para ter o que queria nas horas de mais movimento.</p>
<h2>Talks</h2>
<p><img class="aligncenter size-full wp-image-604" title="SAPO Codebits Main Stage" src="http://joaopedropereira.com/blog/wp-content/uploads/2009/12/4165464753_dcba8472f7.jpg" alt="SAPO Codebits Main Stage" width="500" height="375" /></p>
<h3>Dia 1</h3>
<p>Pelas 14h começaram as talks e para esta hora eu escolhi <strong>Think before you develop! &#8212; Kai Seidler</strong><strong> </strong></p>
<p>O Kai Seidler nesta talk esteve a analisar várias arquitecturas de servidor, e web services em geral, mostrou também os prós e os contra de linguagens de WebDevelopment como PHP, Python, JavaScript, ASP.NET, Perl, etc. bem como de vários SGBD&#8217;s como MySQL, SQLite e Oracle. No fim abordou vertical e horizontal scaling.</p>
<p>Foi uma talk muito inconstante pois o orador esteve muito nervoso, esteve com vários problemas no remote control, mas na minha opinião conseguiu transmitir bem a mensagem e pegou bem nos tópicos que se propôs abordar.</p>
<p><strong>Info Oficial:</strong> <a title="Info Oficial - Think before you develop" href="http://codebits.eu/intra/s/session/82" target="_blank">http://codebits.eu/intra/s/session/82</a></p>
<p>Ás 15h assisti a <strong>HTML5 JavaScript APIs &#8212; Remy Sharp</strong></p>
<p>O Remy Sharp conseguiu interagir muito bem com o público criando uma boa dinâmica, abordou o tema de uma forma muito inteligente e divertida.</p>
<p>A nova especificação do HTML tinha sido um assunto que até então não me tinha despertado grande curiosidade, mas com esta talk fiquei mesmo interessado em analisar mais a fundo as novidades desta especificação pois pareceu-me que vai trazer muito de bom à internet e aos WebDevelopers.</p>
<p><strong>Info Oficial:</strong><a title="Info Oficial HTML5 ,JavaScript API's" href="http://codebits.eu/intra/s/session/60" target="_blank"> http://codebits.eu/intra/s/session/60</a></p>
<p>Pelas 16h deixei o Main Stage para assistir no Stage 2 a <strong>Introducing Ajax.org Platform 3.0 &#8212; Mike de Boer </strong>que foi sem dúvida a única talk que não gostei de facto. Pareceu-me pouco preparada. Não consegui ficar até ao fim, depois de uns 20min sem ter dito basicamente nada, desisti e fui-me embora.</p>
<p><strong>Info Oficial:</strong> <a title="Info Oficial Introducing Ajax.org" href="http://codebits.eu/intra/s/session/84" target="_blank">http://codebits.eu/intra/s/session/84</a></p>
<p>Ás 17h voltei para o Main Stage para assistir a uma das melhores talks a abordar JavaScript OOP, <strong>JavaScript: From Birth to Closure &#8212; Robert Nyman</strong></p>
<p>Adorei esta talk, super organizada, muito divertida, com conteúdo que notei a maioria das pessoas não ter conhecimento tendo estado super atentas ao que o orador estava a referir, e muito bem explicada com exemplos caricatos com o Ben Afflleck.</p>
<p>Quem segue o meu blog sabe que já escrevi sobre este assunto e que tenho uma grande paixão por JavaScript (<a title="JavaScript OOP #1" href="http://joaopedropereira.com/blog/2009/01/13/javascript-oop-1/" target="_blank">post 1</a>, <a title="JavaScript OOP #2 – Conceitos Básicos" href="http://joaopedropereira.com/blog/2009/03/14/js-oop-conceitos-basicos/" target="_blank">post 2</a>).</p>
<p>Info Oficial: <a title="Info Oficial JavaScript from birth to closure" href="http://codebits.eu/intra/s/session/87" target="_blank">http://codebits.eu/intra/s/session/87</a></p>
<p>Ás 18h mudei-me novamente para o Stage 2 onde um aluno da FEUP, Diogo Junior, ia dar uma talk sobre<strong> Programar para Android &#8212; Diogo Dias Júnior </strong></p>
<p>Achei que o Diogo esteve muito bem na sua talk deixando &#8220;água na boca&#8221; do público o que levou a uma enchente de programas para plataformas móveis Android como projectos do concurso de programação! Parabéns ao Diogo.</p>
<p>Podem ver o vídeo da talk no link que segue abaixo.</p>
<p><strong>Info Oficial: </strong><a title="Info Oficial Programar para Android" href="http://codebits.eu/intra/s/session/76" target="_blank">http://codebits.eu/intra/s/session/76</a><strong> </strong></p>
<p>Para terminar as talks no primeiro dia assisti à apresentação da <strong>Widget Platform – tear the Web apart and assemble the pieces together &#8212; José Rodrigues da Mata Fernandes</strong></p>
<p>A apresentação em si não foi nada de mais no entanto achei interessante a widget platform da SAPO, não por ser algo de inovador, que não é, mas pela feature que é em si.</p>
<p><strong>Info Oficial: </strong><a title="Info Oficial Widgets Platform" href="http://codebits.eu/intra/s/session/81" target="_blank">http://codebits.eu/intra/s/session/81</a></p>
<p>O resto da noite foi passada a ver os stands dos parceiros do Codebits a ver o que tinham para mostrar, tive também a oportunidade de falar com o Mitch Altman, que me reconheceu da edição do ano passado sem eu ter ido falar com ele até, espantoso! Tive também a oportunidade de conviver com conhecidos da comunidade <a title="Portugal-a-Programar" href="http://www.portugal-a-programar.org/" target="_blank">Portugal-a-Programar</a>.</p>
<p>No fim da noite no Codebits pernoitei no <a title="Lisbon Lounge Hostel" href="http://www.lisbonloungehostel.com/" target="_blank">Lisbon Lounge Hostel</a>, uma nova experiência pois nunca tinha ficado alojado num estabelecimento do género. Mas antes a viagem foi feita de eléctrico, ao tempo que já não andava de eléctrico, e claro o pessoal da FEUP conseguiu tornar aquilo hora de ponta pois o eléctrico ia completamente cheio! E fomos desde o Hospital Egas Moniz até à Rua Augusta em que nos aventuramos na procura do Lisbon Lounge Hostel que em 30 pessoas nenhuma se lembrou de ver qual a rua ao certo, nem qual o percurso desde o eléctrico. Mas lá conseguimos chegar inteiros&#8230;</p>
<p><img class="aligncenter size-full wp-image-610" title="Rua Augusta" src="http://joaopedropereira.com/blog/wp-content/uploads/2009/12/4165462947_b563196997.jpg" alt="Rua Augusta" width="500" height="375" /></p>
<p>Relativamente ao Lisbon Lounge Hostel, bem, adorei o conceito! Um ambiente muito relaxado, o pessoal &#8220;à vontade&#8221; como se estivesse em casa, tudo muito simples, mas bem organizado e asseado. Aqui tive a sorte de encontrar um casal Australiano que estava a visitar a Europa, muito simpáticos, e que me contaram um pouco da viagem. Achei muito porreiro os quartos serem mistos e ninguém ter problemas com a situação.</p>
<h3>Dia 2</h3>
<p>Depois de uma noite bem dormida, de um pequeno almoço que não foi pizza nem chocolates e de volta ao Codebits comecei as talks com o Mitch Altman às 10h, <strong>Make A Living Doing What You Love: How to Bring Your Project From Idea To Reality &#8212; Mitch Altman.</strong></p>
<p>Uma excelente talk abordando todo um processo, uma história de vida que permitiu tirar vários ensinamentos e várias lições para o presente e o futuro e toda a talk baseou-se em algo que hoje em dia é complicado para muitas pessoas, que tal como o título da talk diz, viver uma vida fazendo o que amamos! Simplesmente fantástica!</p>
<p><strong>Info Oficial: </strong><a title="Info Oficial Make A Living Doing What You Love" href="http://codebits.eu/intra/s/session/95" target="_blank">http://codebits.eu/intra/s/session/95</a></p>
<p>Como o Brian LeRoux não apareceu para a talk das 11h apenas às 12h voltei a assistir uma talk: <strong>Crash Course in Brain Surgery &#8212; Bruno Morisson</strong>.</p>
<p>Mas wtf? Brain Surgery? Que raio tem isso a ver com o Codebits? Bem, Brain Surgery que significa Brain -&gt; Aplicação,  Surgery -&gt; Segurança. Esta foi uma talk sobre um tema que não se vê muito no Codebits, a segurança, fala-se muito de aplicações web mas falha-se a parte da segurança que é, no caso do WebDevelopment, um ponto essencial.</p>
<p>Esta talk foi muito descritiva, nomeou várias flaws, vários métodos de explorar vulnerabilidades e seus tipos, e depois focou-se mais em alguns aspectos. Não foi uma talk que me trouxe muito de novo mas uma talk que deu para relembrar alguns pontos que já não estudava há algum tempo como Business Logic Flaws, pois XSS, SQL Injection, Code Injection, Privilege Escalation, etc. são temas com que trabalho no dia-a-dia.</p>
<p>Só tenho uma coisa a apontar ao Bruno, ele disse demasiadas vezes &#8220;Eu não sou developer por isso não sei x, y ou z&#8221; acho que se desculpou demasiado, mas são pontos de vista e modos de estar em público, cada um tem o seu obviamente.</p>
<p><strong>Info Oficial:</strong> <a title="Info Oficial Crash Course on Brain Surgery" href="http://codebits.eu/intra/s/session/70" target="_blank">http://codebits.eu/intra/s/session/70</a></p>
<p>Mais tarde assisti a uma talk do José Castro relativamente às entrevistas de emprego na SAPO, foi uma talk muito interessante que me mostraram uma realidade com a qual nunca me tinha deparado pessoalmente e que me fez bem ganhar um pouco de consciência acerca do assunto. Gostei muito.</p>
<p>O resto do dia foi passado a ajudar em programas, a conhecer pessoas, e a tentar trazer um beanbag para casa, posso dizer que hoje escrevo este post em cima de um beanbag com a etiqueta do codebits e a condizer com as cores do meu quarto.</p>
<p><img class="aligncenter size-full wp-image-605" title="SAPO Codebits" src="http://joaopedropereira.com/blog/wp-content/uploads/2009/12/4159831111_2de886a9ee.jpg" alt="SAPO Codebits" width="500" height="333" /></p>
<p>Com o fim da tarde a aproximar-se começou a chegar a hora da despedida e de ir para a Estação de Sta. Apolónia para voltar no Alfa Pendular das 20h30 para o Porto.</p>
<p>No entanto, assisti ainda a uma outra talk através do stream e participei na votação! Pelo que consegui perceber pelos comentários que vi no twitter acho que tive mais facilidade em votar estando em casa do que os participantes do Codebits que estavam no local&#8230;</p>
<h2>A viagem de volta</h2>
<p>Uma viagem que prometia um longo sono tornou-se numa viagem muito interessante e produtiva devido à companhia que tive. Ao meu lado um estranho meteu conversa por ver os meus apontamentos de álgebra e lá começamos a falar sobre, inicialmente, matemática, o ensino, os alunos de hoje e o insucesso escolar, pensei eu que seria um professor ligado à matemática, mas não era médico, a conversa passou também por xadrez, física quântica, a personalidade das pessoas, as forças dentro de cada um, psicologia, o ser humano, etc. um homem de uma cultura formidável. Esse senhor chama-se Rui Caldevilla. Foi uma óptima viagem de regresso.</p>
<h2>O Beanbag</h2>
<p>Eu não fiquei até ao ultimo dia, que era quando podíamos trazer embora os beanbag&#8217;s aka puff&#8217;s para casa. Durante a tarde do segundo dia insisti com a organização através do <a title="Twitter João Pedro Pereira" href="http://twitter.com/joaoppereira" target="_blank">twitter</a>, ou do blog do codebits, mas nada. No entanto parece que fui suficientemente chato, eu e mais uns colegas da FEUP, que durante a noite (em que eu já não estive), andou o José Castro à nossa procura para nos calar dando-nos os voucher para trazermos os beanbag&#8217;s, como já lá não estava o <a title="Twitter Tiago Boldt" href="http://twitter.com/tiagoboldt" target="_blank">Tiago Boldt</a>, fez-me o grande favor de me trazer um para mim.</p>
<p><img class="aligncenter size-full wp-image-608" title="SAPO Codebits Beanbag's" src="http://joaopedropereira.com/blog/wp-content/uploads/2009/12/4159832285_fe6e8e3b75.jpg" alt="SAPO Codebits Beanbag's" width="500" height="333" /></p>
<h2>Conclusão</h2>
<p>Este post foi escrito (editado) 5 dias depois do meu ultimo dia no Codebits com um significado muito simples, foi um evento 5 estrelas.</p>
<p>O SAPO Codebits 2009 foi sem dúvida uma óptima experiência, e venha a edição 2010, cá espero por ela!</p>
<p>Fotos Retiradas de http://www.flickr.com/photos/tags/codebits</p>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center shr-bookmarks-bg-knowledge">
<ul class="socials">
		<li class="shr-blogger">
			<a href="http://www.blogger.com/blog_this.pyra?t&amp;u=http://joaopedropereira.com/blog/2009/12/09/sapo-codebits-2009-reviewed/&amp;n=SAPO+Codebits+2009+-+Reviewed&amp;pli=1" rel="nofollow" class="external" title="Blog this on Blogger">Blog this on Blogger</a>
		</li>
		<li class="shr-delicious">
			<a href="http://delicious.com/post?url=http://joaopedropereira.com/blog/2009/12/09/sapo-codebits-2009-reviewed/&amp;title=SAPO+Codebits+2009+-+Reviewed" rel="nofollow" class="external" title="Share this on del.icio.us">Share this on del.icio.us</a>
		</li>
		<li class="shr-digg">
			<a href="http://digg.com/submit?phase=2&amp;url=http://joaopedropereira.com/blog/2009/12/09/sapo-codebits-2009-reviewed/&amp;title=SAPO+Codebits+2009+-+Reviewed" rel="nofollow" class="external" title="Digg this!">Digg this!</a>
		</li>
		<li class="shr-facebook">
			<a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://joaopedropereira.com/blog/2009/12/09/sapo-codebits-2009-reviewed/&amp;t=SAPO+Codebits+2009+-+Reviewed" rel="nofollow" class="external" title="Share this on Facebook">Share this on Facebook</a>
		</li>
		<li class="shr-friendfeed">
			<a href="http://www.friendfeed.com/share?title=SAPO+Codebits+2009+-+Reviewed&amp;link=http://joaopedropereira.com/blog/2009/12/09/sapo-codebits-2009-reviewed/" rel="nofollow" class="external" title="Share this on FriendFeed">Share this on FriendFeed</a>
		</li>
		<li class="shr-googlebuzz">
			<a href="http://www.google.com/buzz/post?url=http://joaopedropereira.com/blog/2009/12/09/sapo-codebits-2009-reviewed/&amp;imageurl=" rel="nofollow" class="external" title="Post on Google Buzz">Post on Google Buzz</a>
		</li>
		<li class="shr-googlereader">
			<a href="http://www.google.com/reader/link?url=http://joaopedropereira.com/blog/2009/12/09/sapo-codebits-2009-reviewed/&amp;title=SAPO+Codebits+2009+-+Reviewed&amp;srcUrl=http://joaopedropereira.com/blog/2009/12/09/sapo-codebits-2009-reviewed/&amp;srcTitle=SAPO+Codebits+2009+-+Reviewed&amp;snippet=Nos%20dias%203%2C%204%20e%205%20de%20Dezembro%20realizou-se%20o%20SAPO%20Codebits%202009%2C%20depois%20de%20ter%20estado%20presente%20na%20edi%C3%A7%C3%A3o%20de%202008%20posso%20dizer%20que%20este%20ano%20quase%20tudo%20esteve%20melhor%20que%20o%20ano%20passado%20e%20que%20excedeu%20completamente%20as%20minhas%20expectativas.%0D%0A%0D%0AFoi%20sem%20d%C3%BAvida%20uma%20excelente%20experi%C3%AAncia%2C%20n%C3%A3o%20s%C3%B3%20pelo%20event" rel="nofollow" class="external" title="Add this to Google Reader">Add this to Google Reader</a>
		</li>
		<li class="shr-linkedin">
			<a href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://joaopedropereira.com/blog/2009/12/09/sapo-codebits-2009-reviewed/&amp;title=SAPO+Codebits+2009+-+Reviewed&amp;summary=Nos%20dias%203%2C%204%20e%205%20de%20Dezembro%20realizou-se%20o%20SAPO%20Codebits%202009%2C%20depois%20de%20ter%20estado%20presente%20na%20edi%C3%A7%C3%A3o%20de%202008%20posso%20dizer%20que%20este%20ano%20quase%20tudo%20esteve%20melhor%20que%20o%20ano%20passado%20e%20que%20excedeu%20completamente%20as%20minhas%20expectativas.%0D%0A%0D%0AFoi%20sem%20d%C3%BAvida%20uma%20excelente%20experi%C3%AAncia%2C%20n%C3%A3o%20s%C3%B3%20pelo%20event&amp;source=The Blog of a WebDeveloper" rel="nofollow" class="external" title="Share this on LinkedIn">Share this on LinkedIn</a>
		</li>
		<li class="shr-mail">
			<a href="mailto:?subject=%22SAPO%20Codebits%202009%20-%20Reviewed%22&amp;body=Link: http://joaopedropereira.com/blog/2009/12/09/sapo-codebits-2009-reviewed/ (sent via shareaholic)%0D%0A%0D%0A----%0D%0A Nos%20dias%203%2C%204%20e%205%20de%20Dezembro%20realizou-se%20o%20SAPO%20Codebits%202009%2C%20depois%20de%20ter%20estado%20presente%20na%20edi%C3%A7%C3%A3o%20de%202008%20posso%20dizer%20que%20este%20ano%20quase%20tudo%20esteve%20melhor%20que%20o%20ano%20passado%20e%20que%20excedeu%20completamente%20as%20minhas%20expectativas.%0D%0A%0D%0AFoi%20sem%20d%C3%BAvida%20uma%20excelente%20experi%C3%AAncia%2C%20n%C3%A3o%20s%C3%B3%20pelo%20event" rel="nofollow" class="external" title="Email this to a friend?">Email this to a friend?</a>
		</li>
		<li class="shr-mixx">
			<a href="http://www.mixx.com/submit?page_url=http://joaopedropereira.com/blog/2009/12/09/sapo-codebits-2009-reviewed/&amp;title=SAPO+Codebits+2009+-+Reviewed" rel="nofollow" class="external" title="Share this on Mixx">Share this on Mixx</a>
		</li>
		<li class="shr-netvibes">
			<a href="http://www.netvibes.com/share?title=SAPO+Codebits+2009+-+Reviewed&amp;url=http://joaopedropereira.com/blog/2009/12/09/sapo-codebits-2009-reviewed/" rel="nofollow" class="external" title="Submit this to Netvibes">Submit this to Netvibes</a>
		</li>
		<li class="shr-newsvine">
			<a href="http://www.newsvine.com/_tools/seed&amp;save?u=http://joaopedropereira.com/blog/2009/12/09/sapo-codebits-2009-reviewed/&amp;h=SAPO+Codebits+2009+-+Reviewed" rel="nofollow" class="external" title="Seed this on Newsvine">Seed this on Newsvine</a>
		</li>
		<li class="shr-orkut">
			<a href="http://promote.orkut.com/preview?nt=orkut.com&amp;tt=SAPO+Codebits+2009+-+Reviewed&amp;du=http://joaopedropereira.com/blog/2009/12/09/sapo-codebits-2009-reviewed/&amp;cn=Nos%20dias%203%2C%204%20e%205%20de%20Dezembro%20realizou-se%20o%20SAPO%20Codebits%202009%2C%20depois%20de%20ter%20estado%20presente%20na%20edi%C3%A7%C3%A3o%20de%202008%20posso%20dizer%20que%20este%20ano%20quase%20tudo%20esteve%20melhor%20que%20o%20ano%20passado%20e%20que%20excedeu%20completamente%20as%20minhas%20expectativas.%0D%0A%0D%0AFoi%20sem%20d%C3%BAvida%20uma%20excelente%20experi%C3%AAncia%2C%20n%C3%A3o%20s%C3%B3%20pelo%20event" rel="nofollow" class="external" title="Promote this on Orkut">Promote this on Orkut</a>
		</li>
		<li class="shr-reddit">
			<a href="http://reddit.com/submit?url=http://joaopedropereira.com/blog/2009/12/09/sapo-codebits-2009-reviewed/&amp;title=SAPO+Codebits+2009+-+Reviewed" rel="nofollow" class="external" title="Share this on Reddit">Share this on Reddit</a>
		</li>
		<li class="shr-slashdot">
			<a href="http://slashdot.org/bookmark.pl?url=http://joaopedropereira.com/blog/2009/12/09/sapo-codebits-2009-reviewed/&amp;title=SAPO+Codebits+2009+-+Reviewed" rel="nofollow" class="external" title="Submit this to SlashDot">Submit this to SlashDot</a>
		</li>
		<li class="shr-sphinn">
			<a href="http://sphinn.com/index.php?c=post&amp;m=submit&amp;link=http://joaopedropereira.com/blog/2009/12/09/sapo-codebits-2009-reviewed/" rel="nofollow" class="external" title="Sphinn this on Sphinn">Sphinn this on Sphinn</a>
		</li>
		<li class="shr-stumbleupon">
			<a href="http://www.stumbleupon.com/submit?url=http://joaopedropereira.com/blog/2009/12/09/sapo-codebits-2009-reviewed/&amp;title=SAPO+Codebits+2009+-+Reviewed" rel="nofollow" class="external" title="Stumble upon something good? Share it on StumbleUpon">Stumble upon something good? Share it on StumbleUpon</a>
		</li>
		<li class="shr-techmeme">
			<a href="http://twitter.com/home/?status=Tip+@Techmeme+http://joaopedropereira.com/blog/2009/12/09/sapo-codebits-2009-reviewed/+&quot;SAPO+Codebits+2009+-+Reviewed&quot;&amp;source=shareaholic" rel="nofollow" class="external" title="Tip this to TechMeme">Tip this to TechMeme</a>
		</li>
		<li class="shr-technorati">
			<a href="http://technorati.com/faves?add=http://joaopedropereira.com/blog/2009/12/09/sapo-codebits-2009-reviewed/" rel="nofollow" class="external" title="Share this on Technorati">Share this on Technorati</a>
		</li>
		<li class="shr-tumblr">
			<a href="http://www.tumblr.com/share?v=3&amp;u=http%3A%2F%2Fjoaopedropereira.com%2Fblog%2F2009%2F12%2F09%2Fsapo-codebits-2009-reviewed%2F&amp;t=SAPO+Codebits+2009+-+Reviewed" rel="nofollow" class="external" title="Share this on Tumblr">Share this on Tumblr</a>
		</li>
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=SAPO+Codebits+2009+-+Reviewed+-+http://bit.ly/d4mz7J&amp;source=shareaholic" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
		<li class="shr-yahoobuzz">
			<a href="http://buzz.yahoo.com/submit/?submitUrl=http://joaopedropereira.com/blog/2009/12/09/sapo-codebits-2009-reviewed/&amp;submitHeadline=SAPO+Codebits+2009+-+Reviewed&amp;submitSummary=Nos%20dias%203%2C%204%20e%205%20de%20Dezembro%20realizou-se%20o%20SAPO%20Codebits%202009%2C%20depois%20de%20ter%20estado%20presente%20na%20edi%C3%A7%C3%A3o%20de%202008%20posso%20dizer%20que%20este%20ano%20quase%20tudo%20esteve%20melhor%20que%20o%20ano%20passado%20e%20que%20excedeu%20completamente%20as%20minhas%20expectativas.%0D%0A%0D%0AFoi%20sem%20d%C3%BAvida%20uma%20excelente%20experi%C3%AAncia%2C%20n%C3%A3o%20s%C3%B3%20pelo%20event&amp;submitCategory=science&amp;submitAssetType=text" rel="nofollow" class="external" title="Buzz up!">Buzz up!</a>
		</li>
		<li class="shr-yahoomail">
			<a href="http://compose.mail.yahoo.com/?Subject=SAPO+Codebits+2009+-+Reviewed&amp;body=Link: http://joaopedropereira.com/blog/2009/12/09/sapo-codebits-2009-reviewed/ (sent via shareaholic)%0D%0A%0D%0A----%0D%0A Nos%20dias%203%2C%204%20e%205%20de%20Dezembro%20realizou-se%20o%20SAPO%20Codebits%202009%2C%20depois%20de%20ter%20estado%20presente%20na%20edi%C3%A7%C3%A3o%20de%202008%20posso%20dizer%20que%20este%20ano%20quase%20tudo%20esteve%20melhor%20que%20o%20ano%20passado%20e%20que%20excedeu%20completamente%20as%20minhas%20expectativas.%0D%0A%0D%0AFoi%20sem%20d%C3%BAvida%20uma%20excelente%20experi%C3%AAncia%2C%20n%C3%A3o%20s%C3%B3%20pelo%20event" rel="nofollow" class="external" title="Email this via Yahoo! Mail">Email this via Yahoo! Mail</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>

]]></content:encoded>
			<wfw:commentRss>http://joaopedropereira.com/blog/2009/12/09/sapo-codebits-2009-reviewed/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>PHP Twitter Bot :: Crawling Emails</title>
		<link>http://joaopedropereira.com/blog/2009/09/22/php-twitter-bot-crawling-emails/</link>
		<comments>http://joaopedropereira.com/blog/2009/09/22/php-twitter-bot-crawling-emails/#comments</comments>
		<pubDate>Tue, 22 Sep 2009 18:13:23 +0000</pubDate>
		<dc:creator>João Pedro Pereira</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Projectos]]></category>
		<category><![CDATA[Segurança]]></category>
		<category><![CDATA[bot]]></category>
		<category><![CDATA[crawling]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://joaopedropereira.com/blog/?p=493</guid>
		<description><![CDATA[Um dos projectos que estou a começar a desenvolver é um Twitter Bot que seja capaz de simular o comportamento de um utilizador durante um curto período de tempo, dependendo da configuração que o utilizador lhe quiser dar. Deve também ter todas as funcionalidades que possam ser úteis ou pensáveis para um programa deste género [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: left; margin-right: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fjoaopedropereira.com%2Fblog%2F2009%2F09%2F22%2Fphp-twitter-bot-crawling-emails%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fjoaopedropereira.com%2Fblog%2F2009%2F09%2F22%2Fphp-twitter-bot-crawling-emails%2F&amp;source=joaoppereira&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>Um dos projectos que estou a começar a desenvolver é um Twitter Bot que seja capaz de simular o comportamento de um utilizador durante um curto período de tempo, dependendo da configuração que o utilizador lhe quiser dar. Deve também ter todas as funcionalidades que possam ser úteis ou pensáveis para um programa deste género e por isso muito é necessário pesquisar e estudar.</p>
<p>Hoje surgiu-me a ideia de utilizar a pesquisa do Twitter para encontrar e-mails. Claro que não fui o primeiro a pensar nisto, então em vez de reinventar a roda fui alterá-la apenas para andar melhor.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #990000;">ob_start</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> writemail<span style="color: #009900;">&#40;</span><span style="color: #000088;">$matches</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #b1b100;">foreach</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$matches</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$emails</span><span style="color: #009900;">&#41;</span>
		<span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$emails</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$email</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #b1b100;">echo</span> <span style="color: #000088;">$email</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'
'</span><span style="color: #339933;">;</span>
			<span style="color: #990000;">ob_flush</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #b1b100;">for</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$id</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span> <span style="color: #000088;">$id</span><span style="color: #339933;">&lt;</span> <span style="color: #339933;">=</span><span style="color: #cc66cc;">20</span><span style="color: #339933;">;</span> <span style="color: #000088;">$id</span><span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #000088;">$file</span> <span style="color: #339933;">=</span> proxify_my_connection<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;http://search.twitter.com/search?page=&quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$id</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;&amp;q=gmail.com+OR+msn.com+OR+hotmail.com+OR+<span style="color: #009933; font-weight: bold;">%22e</span>mail+me%22&amp;rpp=100&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000088;">$file</span> <span style="color: #339933;">=</span> <span style="color: #990000;">strip_tags</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$file</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #990000;">preg_match_all</span><span style="color: #009900;">&#40;</span>
		<span style="color: #0000ff;">&quot;([a-z0-9!#$%&amp;'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&amp;'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+(?:[A-Z]{2}|com|org|net|gov|mil|biz|info|mobi|name|aero|jobs|museum)\b)siU&quot;</span><span style="color: #339933;">,</span>
		<span style="color: #000088;">$file</span><span style="color: #339933;">,</span>
		<span style="color: #000088;">$matches</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	writemail<span style="color: #009900;">&#40;</span><span style="color: #000088;">$matches</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
<span style="color: #990000;">ob_end_flush</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>O que este código faz, basicamente, é ler a página de pesquisa do Twitter e utilizando <a title="Regular Expression - Wikipedia" href="http://en.wikipedia.org/wiki/Regular_expression" target="_blank">Regular Expressions</a> encontrar os e-mails existentes na página, e depois continua pelas páginas seguintes.</p>
<p>/search?page=&#8221;.$id.&#8221;&amp;q=gmail.com+OR+msn.com+OR+hotmail.com+OR+%22email+me%22&amp;rpp=100</p>
<p><strong>page</strong> numero da página<br />
<strong>q</strong> representa a query, a chave a pesquisar<br />
<strong>rpp</strong> results per page sendo que o máximo permitido pelo twitter é 100</p>
<p>Como podem reparar no meu código existe uma função que não está presente nem faz parte do PHP, a proxify_my_connection, é uma ferramenta que eu próprio desenvolvi há algum tempo e que não a quero tornar pública. Mas é fácil de a substituir, mesmo utilizando funções que já vêm de raíz no PHP. Podem também ver <a title="Scraping websites with PHP cURL under proxy" href="http://www.fromzerotoseo.com/scraping-websites-php-curl-proxy/" target="_blank">aqui</a> uma função com efeito semelhante à que eu desenvolvi, no entanto não tem nada a ver uma com a outra.</p>
<p>Em vez da função writemail() é mais produtivo ter uma base de dados onde quardar os e-mails e verificar se estes são repetidos ou não&#8230;</p>
<p>Podem dar uso à vossa imaginação, aumentar e desenvolver a query, aumentar a performance do script, etc. isto foi só um pequeno exemplo do que se pode fazer com a search do twitter.</p>
<h3>Bibliografia</h3>
<p style="text-align: left;">Regex utilizado no meu código: <a title="Twitter email grabber" href="http://www.fromzerotoseo.com/twitter-email-grabber/" target="_blank">http://www.fromzerotoseo.com/twitter-email-grabber/</a></p>
<h2 style="text-align: center;">Contribua para este blog deixando</h2>
<h2 style="text-align: center;">a sua opinião e um pouco do seu conhecimento</h2>
</pre>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center shr-bookmarks-bg-knowledge">
<ul class="socials">
		<li class="shr-blogger">
			<a href="http://www.blogger.com/blog_this.pyra?t&amp;u=http://joaopedropereira.com/blog/2009/09/22/php-twitter-bot-crawling-emails/&amp;n=PHP+Twitter+Bot+%3A%3A+Crawling+Emails&amp;pli=1" rel="nofollow" class="external" title="Blog this on Blogger">Blog this on Blogger</a>
		</li>
		<li class="shr-delicious">
			<a href="http://delicious.com/post?url=http://joaopedropereira.com/blog/2009/09/22/php-twitter-bot-crawling-emails/&amp;title=PHP+Twitter+Bot+%3A%3A+Crawling+Emails" rel="nofollow" class="external" title="Share this on del.icio.us">Share this on del.icio.us</a>
		</li>
		<li class="shr-digg">
			<a href="http://digg.com/submit?phase=2&amp;url=http://joaopedropereira.com/blog/2009/09/22/php-twitter-bot-crawling-emails/&amp;title=PHP+Twitter+Bot+%3A%3A+Crawling+Emails" rel="nofollow" class="external" title="Digg this!">Digg this!</a>
		</li>
		<li class="shr-facebook">
			<a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://joaopedropereira.com/blog/2009/09/22/php-twitter-bot-crawling-emails/&amp;t=PHP+Twitter+Bot+%3A%3A+Crawling+Emails" rel="nofollow" class="external" title="Share this on Facebook">Share this on Facebook</a>
		</li>
		<li class="shr-friendfeed">
			<a href="http://www.friendfeed.com/share?title=PHP+Twitter+Bot+%3A%3A+Crawling+Emails&amp;link=http://joaopedropereira.com/blog/2009/09/22/php-twitter-bot-crawling-emails/" rel="nofollow" class="external" title="Share this on FriendFeed">Share this on FriendFeed</a>
		</li>
		<li class="shr-googlebuzz">
			<a href="http://www.google.com/buzz/post?url=http://joaopedropereira.com/blog/2009/09/22/php-twitter-bot-crawling-emails/&amp;imageurl=" rel="nofollow" class="external" title="Post on Google Buzz">Post on Google Buzz</a>
		</li>
		<li class="shr-googlereader">
			<a href="http://www.google.com/reader/link?url=http://joaopedropereira.com/blog/2009/09/22/php-twitter-bot-crawling-emails/&amp;title=PHP+Twitter+Bot+%3A%3A+Crawling+Emails&amp;srcUrl=http://joaopedropereira.com/blog/2009/09/22/php-twitter-bot-crawling-emails/&amp;srcTitle=PHP+Twitter+Bot+%3A%3A+Crawling+Emails&amp;snippet=Um%20dos%20projectos%20que%20estou%20a%20come%C3%A7ar%20a%20desenvolver%20%C3%A9%20um%20Twitter%20Bot%20que%20seja%20capaz%20de%20simular%20o%20comportamento%20de%20um%20utilizador%20durante%20um%20curto%20per%C3%ADodo%20de%20tempo%2C%20dependendo%20da%20configura%C3%A7%C3%A3o%20que%20o%20utilizador%20lhe%20quiser%20dar.%20Deve%20tamb%C3%A9m%20ter%20todas%20as%20funcionalidades%20que%20possam%20ser%20%C3%BAteis%20ou%20pens%C3%A1" rel="nofollow" class="external" title="Add this to Google Reader">Add this to Google Reader</a>
		</li>
		<li class="shr-linkedin">
			<a href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://joaopedropereira.com/blog/2009/09/22/php-twitter-bot-crawling-emails/&amp;title=PHP+Twitter+Bot+%3A%3A+Crawling+Emails&amp;summary=Um%20dos%20projectos%20que%20estou%20a%20come%C3%A7ar%20a%20desenvolver%20%C3%A9%20um%20Twitter%20Bot%20que%20seja%20capaz%20de%20simular%20o%20comportamento%20de%20um%20utilizador%20durante%20um%20curto%20per%C3%ADodo%20de%20tempo%2C%20dependendo%20da%20configura%C3%A7%C3%A3o%20que%20o%20utilizador%20lhe%20quiser%20dar.%20Deve%20tamb%C3%A9m%20ter%20todas%20as%20funcionalidades%20que%20possam%20ser%20%C3%BAteis%20ou%20pens%C3%A1&amp;source=The Blog of a WebDeveloper" rel="nofollow" class="external" title="Share this on LinkedIn">Share this on LinkedIn</a>
		</li>
		<li class="shr-mail">
			<a href="mailto:?subject=%22PHP%20Twitter%20Bot%20%3A%3A%20Crawling%20Emails%22&amp;body=Link: http://joaopedropereira.com/blog/2009/09/22/php-twitter-bot-crawling-emails/ (sent via shareaholic)%0D%0A%0D%0A----%0D%0A Um%20dos%20projectos%20que%20estou%20a%20come%C3%A7ar%20a%20desenvolver%20%C3%A9%20um%20Twitter%20Bot%20que%20seja%20capaz%20de%20simular%20o%20comportamento%20de%20um%20utilizador%20durante%20um%20curto%20per%C3%ADodo%20de%20tempo%2C%20dependendo%20da%20configura%C3%A7%C3%A3o%20que%20o%20utilizador%20lhe%20quiser%20dar.%20Deve%20tamb%C3%A9m%20ter%20todas%20as%20funcionalidades%20que%20possam%20ser%20%C3%BAteis%20ou%20pens%C3%A1" rel="nofollow" class="external" title="Email this to a friend?">Email this to a friend?</a>
		</li>
		<li class="shr-mixx">
			<a href="http://www.mixx.com/submit?page_url=http://joaopedropereira.com/blog/2009/09/22/php-twitter-bot-crawling-emails/&amp;title=PHP+Twitter+Bot+%3A%3A+Crawling+Emails" rel="nofollow" class="external" title="Share this on Mixx">Share this on Mixx</a>
		</li>
		<li class="shr-netvibes">
			<a href="http://www.netvibes.com/share?title=PHP+Twitter+Bot+%3A%3A+Crawling+Emails&amp;url=http://joaopedropereira.com/blog/2009/09/22/php-twitter-bot-crawling-emails/" rel="nofollow" class="external" title="Submit this to Netvibes">Submit this to Netvibes</a>
		</li>
		<li class="shr-newsvine">
			<a href="http://www.newsvine.com/_tools/seed&amp;save?u=http://joaopedropereira.com/blog/2009/09/22/php-twitter-bot-crawling-emails/&amp;h=PHP+Twitter+Bot+%3A%3A+Crawling+Emails" rel="nofollow" class="external" title="Seed this on Newsvine">Seed this on Newsvine</a>
		</li>
		<li class="shr-orkut">
			<a href="http://promote.orkut.com/preview?nt=orkut.com&amp;tt=PHP+Twitter+Bot+%3A%3A+Crawling+Emails&amp;du=http://joaopedropereira.com/blog/2009/09/22/php-twitter-bot-crawling-emails/&amp;cn=Um%20dos%20projectos%20que%20estou%20a%20come%C3%A7ar%20a%20desenvolver%20%C3%A9%20um%20Twitter%20Bot%20que%20seja%20capaz%20de%20simular%20o%20comportamento%20de%20um%20utilizador%20durante%20um%20curto%20per%C3%ADodo%20de%20tempo%2C%20dependendo%20da%20configura%C3%A7%C3%A3o%20que%20o%20utilizador%20lhe%20quiser%20dar.%20Deve%20tamb%C3%A9m%20ter%20todas%20as%20funcionalidades%20que%20possam%20ser%20%C3%BAteis%20ou%20pens%C3%A1" rel="nofollow" class="external" title="Promote this on Orkut">Promote this on Orkut</a>
		</li>
		<li class="shr-reddit">
			<a href="http://reddit.com/submit?url=http://joaopedropereira.com/blog/2009/09/22/php-twitter-bot-crawling-emails/&amp;title=PHP+Twitter+Bot+%3A%3A+Crawling+Emails" rel="nofollow" class="external" title="Share this on Reddit">Share this on Reddit</a>
		</li>
		<li class="shr-slashdot">
			<a href="http://slashdot.org/bookmark.pl?url=http://joaopedropereira.com/blog/2009/09/22/php-twitter-bot-crawling-emails/&amp;title=PHP+Twitter+Bot+%3A%3A+Crawling+Emails" rel="nofollow" class="external" title="Submit this to SlashDot">Submit this to SlashDot</a>
		</li>
		<li class="shr-sphinn">
			<a href="http://sphinn.com/index.php?c=post&amp;m=submit&amp;link=http://joaopedropereira.com/blog/2009/09/22/php-twitter-bot-crawling-emails/" rel="nofollow" class="external" title="Sphinn this on Sphinn">Sphinn this on Sphinn</a>
		</li>
		<li class="shr-stumbleupon">
			<a href="http://www.stumbleupon.com/submit?url=http://joaopedropereira.com/blog/2009/09/22/php-twitter-bot-crawling-emails/&amp;title=PHP+Twitter+Bot+%3A%3A+Crawling+Emails" rel="nofollow" class="external" title="Stumble upon something good? Share it on StumbleUpon">Stumble upon something good? Share it on StumbleUpon</a>
		</li>
		<li class="shr-techmeme">
			<a href="http://twitter.com/home/?status=Tip+@Techmeme+http://joaopedropereira.com/blog/2009/09/22/php-twitter-bot-crawling-emails/+&quot;PHP+Twitter+Bot+%3A%3A+Crawling+Emails&quot;&amp;source=shareaholic" rel="nofollow" class="external" title="Tip this to TechMeme">Tip this to TechMeme</a>
		</li>
		<li class="shr-technorati">
			<a href="http://technorati.com/faves?add=http://joaopedropereira.com/blog/2009/09/22/php-twitter-bot-crawling-emails/" rel="nofollow" class="external" title="Share this on Technorati">Share this on Technorati</a>
		</li>
		<li class="shr-tumblr">
			<a href="http://www.tumblr.com/share?v=3&amp;u=http%3A%2F%2Fjoaopedropereira.com%2Fblog%2F2009%2F09%2F22%2Fphp-twitter-bot-crawling-emails%2F&amp;t=PHP+Twitter+Bot+%3A%3A+Crawling+Emails" rel="nofollow" class="external" title="Share this on Tumblr">Share this on Tumblr</a>
		</li>
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=PHP+Twitter+Bot+%3A%3A+Crawling+Emails+-+http://bit.ly/abeHG5&amp;source=shareaholic" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
		<li class="shr-yahoobuzz">
			<a href="http://buzz.yahoo.com/submit/?submitUrl=http://joaopedropereira.com/blog/2009/09/22/php-twitter-bot-crawling-emails/&amp;submitHeadline=PHP+Twitter+Bot+%3A%3A+Crawling+Emails&amp;submitSummary=Um%20dos%20projectos%20que%20estou%20a%20come%C3%A7ar%20a%20desenvolver%20%C3%A9%20um%20Twitter%20Bot%20que%20seja%20capaz%20de%20simular%20o%20comportamento%20de%20um%20utilizador%20durante%20um%20curto%20per%C3%ADodo%20de%20tempo%2C%20dependendo%20da%20configura%C3%A7%C3%A3o%20que%20o%20utilizador%20lhe%20quiser%20dar.%20Deve%20tamb%C3%A9m%20ter%20todas%20as%20funcionalidades%20que%20possam%20ser%20%C3%BAteis%20ou%20pens%C3%A1&amp;submitCategory=science&amp;submitAssetType=text" rel="nofollow" class="external" title="Buzz up!">Buzz up!</a>
		</li>
		<li class="shr-yahoomail">
			<a href="http://compose.mail.yahoo.com/?Subject=PHP+Twitter+Bot+%3A%3A+Crawling+Emails&amp;body=Link: http://joaopedropereira.com/blog/2009/09/22/php-twitter-bot-crawling-emails/ (sent via shareaholic)%0D%0A%0D%0A----%0D%0A Um%20dos%20projectos%20que%20estou%20a%20come%C3%A7ar%20a%20desenvolver%20%C3%A9%20um%20Twitter%20Bot%20que%20seja%20capaz%20de%20simular%20o%20comportamento%20de%20um%20utilizador%20durante%20um%20curto%20per%C3%ADodo%20de%20tempo%2C%20dependendo%20da%20configura%C3%A7%C3%A3o%20que%20o%20utilizador%20lhe%20quiser%20dar.%20Deve%20tamb%C3%A9m%20ter%20todas%20as%20funcionalidades%20que%20possam%20ser%20%C3%BAteis%20ou%20pens%C3%A1" rel="nofollow" class="external" title="Email this via Yahoo! Mail">Email this via Yahoo! Mail</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>

]]></content:encoded>
			<wfw:commentRss>http://joaopedropereira.com/blog/2009/09/22/php-twitter-bot-crawling-emails/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
