<?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>Coisas Úteis &#187; Php</title>
	<atom:link href="http://www.coisasuteis.com.br/category/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.coisasuteis.com.br</link>
	<description>Coisas Úteis</description>
	<lastBuildDate>Fri, 27 Jan 2012 23:45:15 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Utilizando a codificação Json no &lt; Php 5.1.6</title>
		<link>http://www.coisasuteis.com.br/2011/08/utilizando-a-codificacao-json-no-php-5-1-6/#utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=utilizando-a-codificacao-json-no-php-5-1-6</link>
		<comments>http://www.coisasuteis.com.br/2011/08/utilizando-a-codificacao-json-no-php-5-1-6/#comments</comments>
		<pubDate>Wed, 03 Aug 2011 17:10:03 +0000</pubDate>
		<dc:creator>Pedro Puppim</dc:creator>
				<category><![CDATA[Php]]></category>
		<category><![CDATA[json]]></category>
		<category><![CDATA[json_decode]]></category>
		<category><![CDATA[json_encode]]></category>

		<guid isPermaLink="false">http://www.coisasuteis.com.br/?p=799</guid>
		<description><![CDATA[Recentemente trabalhei em um projeto utilizando o PHP. Infelizmente não coloquei nos requisitos que precisaria do PHP 5.2 para utilizar o Json nativamente. Como se tratava de uma empresa grande imaginei que eles utilizariam a versão mais atual porem cai do burro e o pior eles se negaram a realizar o update. Então resolvi escrever [...]]]></description>
			<content:encoded><![CDATA[<p>Recentemente trabalhei em um projeto utilizando o PHP.  Infelizmente não coloquei nos requisitos que precisaria do PHP 5.2 para utilizar o Json nativamente. Como se tratava de uma empresa grande imaginei que eles utilizariam a versão mais atual porem cai do burro e o pior eles se negaram a realizar o update.<br />
Então resolvi escrever as classes json_encode e json_decode porem parei ao encontrar elas prontas.</p>
<p><strong><a href="http://www.coisasuteis.com.br/downloads/json.zip" title="Classe Json">Clique aqui</a></strong> para baixar a classe json.</p>
<p>Depois  de baixar e descompactar no diretório do sistema é só utilizar:</p>
<pre escaped="true" lang="php" line="1">
if (!function_exists('json_decode')) {
    function json_decode($content, $assoc=false) {
        require_once 'classes/JSON.php';
        if ($assoc) {
            $json = new Services_JSON(SERVICES_JSON_LOOSE_TYPE);
        }
        else {
            $json = new Services_JSON;
        }
        return $json->decode($content);
    }
}

if (!function_exists('json_encode')) {
    function json_encode($content) {
        require_once 'classes/JSON.php';
        $json = new Services_JSON;
        return $json->encode($content);
    }
}
</pre>
<p>Com isso ao utilizar as funções json_encode e json_decode você terá o mesmo efeito da função nativa.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.coisasuteis.com.br/2011/08/utilizando-a-codificacao-json-no-php-5-1-6/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Gerando arquivo Excel de tabelas html com javascript/jquery</title>
		<link>http://www.coisasuteis.com.br/2011/06/gerando-arquivo-excel-de-tabelas-html-com-javascriptjquery/#utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=gerando-arquivo-excel-de-tabelas-html-com-javascriptjquery</link>
		<comments>http://www.coisasuteis.com.br/2011/06/gerando-arquivo-excel-de-tabelas-html-com-javascriptjquery/#comments</comments>
		<pubDate>Thu, 09 Jun 2011 02:15:19 +0000</pubDate>
		<dc:creator>Pedro Puppim</dc:creator>
				<category><![CDATA[Dicas]]></category>
		<category><![CDATA[Php]]></category>
		<category><![CDATA[excel]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[js]]></category>

		<guid isPermaLink="false">http://www.coisasuteis.com.br/?p=776</guid>
		<description><![CDATA[Trabalhando no mesmo projeto do post passado com aquela mesma ideia de fazer algo dinâmico precisei gerar arquivos excel dos relatórios do sistema Então a proposta foi: //Inclua na sua pagina o jquery e o js do plugin &#60;script src="js/jquery.js" type="text/javascript"&#62;&#60;/script&#62; Função para gerar o excel de uma determinada tabela &#60;script&#62; function Excel(tabela,form) { $("#Tabela_Excel").val( [...]]]></description>
			<content:encoded><![CDATA[<p>Trabalhando no mesmo projeto do <a href="http://www.coisasuteis.com.br/2011/06/imprimir-conteudo-de-uma-div/">post passado</a> com aquela mesma ideia de fazer algo dinâmico precisei gerar arquivos excel dos relatórios do sistema Então a proposta foi:</p>
<pre escaped="true" lang="php" line="1">
//Inclua na sua pagina o jquery e o js do plugin
&lt;script src="js/jquery.js" type="text/javascript"&gt;&lt;/script&gt;</pre>
<p>Função para gerar o excel de uma determinada tabela</p>
<pre escaped="true" lang="php" line="1">
&lt;script&gt;
function Excel(tabela,form)
{

	$("#Tabela_Excel").val( $("&lt;div&gt;").append( $("#" + tabela).eq(0).clone()).html());
	$("#" + form).submit();

}
&lt;/script&gt;</pre>
<p>Pagina que contem a tabela com um id! Ao final da tabela um link e um form e 2 campos hidden!<br />
Ao clicar função js executa  o subimit para um arquivo de auxilio: excel.php</p>
<pre escaped="true" lang="php" line="1">
&lt;html&gt;
&lt;body&gt;

&lt;table id="tabela"&gt;
  &lt;tr&gt;
    &lt;td&gt;Nome&lt;/td&gt;
    &lt;td&gt;Valor&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;Pedro&lt;/td&gt;
    &lt;td&gt;R$ 250,00&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;Julia&lt;/td&gt;
    &lt;td&gt;R$ 300,00&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;

&lt;form  name="FormPostExcel' method="post" action="excel.php"  id='FormPostExcel' &gt;
       &lt;a href="javascript:Excel('tabela','FormPostExcel');"&gt;Gerar Arquivo&lt;/a&gt;
     &lt;input type="hidden" id="TabelaExcel" name="TabelaExcel" /&gt;
     &lt;input name="nome_excel" type="hidden" id="nome_excel" value="FluxoDeCaixa" /&gt;
     &lt;/form&gt;

&lt;/body&gt;
&lt;/html&gt;</pre>
<p>O arquivo excel.php onde ocorre o Post força através do header a abertura de um arquivo excel com o nome do $_POST do campo: nome_excel concatenado com a data e o conteúdo do excel o $_POST do campo TabelaExcel!</p>
<pre escaped="true" lang="php" line="1">
&lt;?
header("Content-type: application/vnd.ms-excel; name='excel'");
header("Content-Disposition: filename=" . $_POST['nome_excel']. "_".date("dmY").".xls");
header("Pragma: no-cache");
header("Expires: 0");

$tabela_excel = utf8_encode($_POST['TabelaExcel']);
echo $tabela_excel;
?&gt;</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.coisasuteis.com.br/2011/06/gerando-arquivo-excel-de-tabelas-html-com-javascriptjquery/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Postando no Twitter via PHP, com nova autenticação do twitter oauth</title>
		<link>http://www.coisasuteis.com.br/2010/11/postando-no-twitter-via-php-com-nova-autenticacao-do-twitter-oauth/#utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=postando-no-twitter-via-php-com-nova-autenticacao-do-twitter-oauth</link>
		<comments>http://www.coisasuteis.com.br/2010/11/postando-no-twitter-via-php-com-nova-autenticacao-do-twitter-oauth/#comments</comments>
		<pubDate>Thu, 11 Nov 2010 01:58:18 +0000</pubDate>
		<dc:creator>Pedro Puppim</dc:creator>
				<category><![CDATA[Dicas]]></category>
		<category><![CDATA[Php]]></category>
		<category><![CDATA[dev]]></category>
		<category><![CDATA[oauth]]></category>
		<category><![CDATA[Twitter]]></category>

		<guid isPermaLink="false">http://www.coisasuteis.com.br/?p=681</guid>
		<description><![CDATA[O primeiro passo é acessar a pagina Twitter Developers e clique em Register an app, efetue o login com a conta que realizará o post e preencha os dados. Os campos abaixo devem ser preenchidos da seguinte forma: Application Type: Browser Default Access type: Read-only O certo é Read &#38; Write (obrigado Gustavo) Ao finalizar [...]]]></description>
			<content:encoded><![CDATA[<p>O primeiro passo é acessar a pagina <a href="http://dev.twitter.com/" target="_blank">Twitter Developers</a> e clique em Register an app, efetue o login com a conta que realizará o post e preencha os dados.</p>
<p>Os campos abaixo devem ser preenchidos da seguinte forma:<br />
<strong>Application Type</strong>: Browser<br />
<strong>Default Access type</strong>: <del datetime="2011-04-06T13:21:49+00:00">Read-only</del> O certo é Read &amp; Write (obrigado Gustavo)</p>
<p>Ao finalizar o cadastro o sistema criara o <strong>consumer_key</strong> e <strong>consumer_secret</strong>.<br />
Depois clique em My acess token la barra lateral direita para pegar o: <strong>oauth_token </strong>e <strong>oauth_token_secret</strong>.</p>
<p>O proximo passo é baixar a biblioteca <a href="http://github.com/abraham/twitteroauth" target="_blank">oauth</a>.</p>
<p>Depois só adpatar seu codigo ao exemplo:</p>
<p><?</p>
<pre escaped="true" lang="php" line="1">
//inclua o arquivo twitteroauth.php baixado
include(&#8220;twitteroauth/twitteroauth.php&#8221;); 

//digite os deus dados
$consumer_key = &#8220;xxx&#8221;;
$consumer_secret = &#8220;xxx&#8221;;
$oauth_token = &#8220;xxx&#8221;;
$oauth_token_secret = &#8220;xxxx&#8221;; 

//mensagem do post 

$msg=&#8221;Retirado de http://www.coisasuteis.com.br&#8221;;
$conn = new TwitterOAuth($consumer_key, $consumer_secret, $oauth_token, $oauth_token_secret);
if(!$conn) {
echo &#8220;Erro na conexão&#8221;; 	die();
}
$r= $con&#8211;&gt;post(&#8216;statuses/update&#8217;, array(&#8216;status&#8217; => $msg));

echo &#8220;Postado com sucesso&#8221;;
?&gt;</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.coisasuteis.com.br/2010/11/postando-no-twitter-via-php-com-nova-autenticacao-do-twitter-oauth/feed/</wfw:commentRss>
		<slash:comments>30</slash:comments>
		</item>
		<item>
		<title>Analytics + Fusion Charts</title>
		<link>http://www.coisasuteis.com.br/2010/10/analytics-fusion-charts/#utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=analytics-fusion-charts</link>
		<comments>http://www.coisasuteis.com.br/2010/10/analytics-fusion-charts/#comments</comments>
		<pubDate>Thu, 21 Oct 2010 22:00:53 +0000</pubDate>
		<dc:creator>Pedro Puppim</dc:creator>
				<category><![CDATA[Dicas]]></category>
		<category><![CDATA[Php]]></category>
		<category><![CDATA[Analytics]]></category>
		<category><![CDATA[Fusion Charts]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[Google Analytics]]></category>
		<category><![CDATA[js]]></category>

		<guid isPermaLink="false">http://www.coisasuteis.com.br/?p=674</guid>
		<description><![CDATA[O Google lançou esse ano a API para acesso ao Google Analytics sendo assim é possível criar diversos relatórios através das informações obtidas pela API. Pesquisando sobre o assunto encontrei o GAPI-GOOGLE que é um conjunto de classes desenvolvidas em php para facilitar o acesso a API. Dai veio a ideia de trabalhar com o [...]]]></description>
			<content:encoded><![CDATA[<p>O Google lançou esse ano a API para acesso ao Google Analytics sendo assim é possível criar diversos relatórios através das informações obtidas pela API.</p>
<p>Pesquisando sobre o assunto encontrei o <a href="http://code.google.com/p/gapi-google-analytics-php-interface/" target="_blank">GAPI-GOOGLE</a> que é um conjunto de classes desenvolvidas em php para facilitar o acesso a API.</p>
<p>Dai veio a ideia de trabalhar com o GAPI + o <a href="http://www.google.com.br/url?q=http://www.fusioncharts.com/free/&amp;sa=U&amp;ei=YLXATJDWGMOC8ga2ioWCBQ&amp;ved=0CBUQFjAA&amp;usg=AFQjCNHIU60ay7Gc8zkg63k85r0otDecpQ" target="_blank">Fusion Charts</a> que é uma biblioteca de gráficos em flash sendo que os dados são importados de um arquivo xml, confiram o resultado:</p>
<div id="attachment_675" class="wp-caption alignnone" style="width: 310px"><a rel="attachment wp-att-675" href="http://www.coisasuteis.com.br/2010/10/analytics-fusion-charts/fusioncharts/"><img class="size-medium wp-image-675" title="Analytics + Fusion Charts" src="http://www.coisasuteis.com.br/img/fusioncharts-300x124.jpg" alt="Analytics + Fusion Charts" width="300" height="124" /></a><p class="wp-caption-text">Analytics + Fusion Charts</p></div>
<p>Veja a demonstração: http://www.coisasuteis.com.br/analytics/report.php</p>
<p>Faça download dos arquivos utilizados: <a href="http://www.coisasuteis.com.br/analytics/anafusion.zip" target="_blank">http://www.coisasuteis.com.br/analytics/anafusion.zip</a></p>
<p>Dentro do zip é abra o arquivo id.iphp</p>
<pre lang="php">define('ga_email','email');
define('ga_password','senha');</pre>
<p>Alteresse esses dados para o seu e-mail e senha do analytics execute o arquivo e copie o ID do seu site.</p>
<p>Depois abra o report.php e altere a variavel $id.</p>
<p>É importante dar permissão de escrita e leitura na pasta include, pois o script faz manipulações no arquivo dt.xml para atualizar os dados de acordo com a API.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.coisasuteis.com.br/2010/10/analytics-fusion-charts/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Sistema de Biometria em PHP + Delphi</title>
		<link>http://www.coisasuteis.com.br/2010/06/sistema-de-biometria-em-php-delphi/#utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=sistema-de-biometria-em-php-delphi</link>
		<comments>http://www.coisasuteis.com.br/2010/06/sistema-de-biometria-em-php-delphi/#comments</comments>
		<pubDate>Wed, 23 Jun 2010 04:03:13 +0000</pubDate>
		<dc:creator>Pedro Puppim</dc:creator>
				<category><![CDATA[Php]]></category>
		<category><![CDATA[biometria]]></category>
		<category><![CDATA[delphi]]></category>
		<category><![CDATA[Mysql]]></category>

		<guid isPermaLink="false">http://www.coisasuteis.com.br/?p=607</guid>
		<description><![CDATA[Estou desenvolvendo um projeto web em php/mysql para uma escola que precisa de um módulo de Presença, a famosa &#8220;chamada&#8221; através da biometria. Pesquisando conclui que a única forma possível de desenvolver biómetria em &#8220;PHP&#8221; era utilizando um activex porem no meu projeto não era interessante. Dai encontrei um solução no mercado livre (codigo fonte) a venda [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Estou desenvolvendo um projeto web em php/mysql para uma escola que precisa de um módulo de Presença, a famosa &#8220;chamada&#8221; através da biometria. Pesquisando conclui que a única forma possível de desenvolver biómetria em &#8220;PHP&#8221; era utilizando um activex porem no meu projeto não era interessante. Dai encontrei um solução no mercado livre (codigo fonte) a venda por R$50,00 que interagia um executavel em delphi com arquivos PHP. Comprei e adotei no meu projeto e agora estarei disponilizando <a title="Fontes Biometria" href="http://coisasuteis.com.br/downloads/fonte_biometria.zip" target="_blank"><strong>aqui</strong></a> <img src='http://www.coisasuteis.com.br/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<p style="text-align: justify;">O desenvolvedor dessa solução utilizou um driver da Griaule generico para capturar a digital através do Delphi. Os leitores testados são:<br />
Leitores suportados:</p>
<p style="text-align: justify;">Microsoft Fingerprint Reader<br />
Digital Persona U.are.U 4000/4000B<br />
SecuGen Hamster FDU02<br />
Geomok (Testech) Bio-I<br />
Crossmatch V250/V300/V300 LC/V300 LC2/V500</p>
<p style="text-align: justify;">No delphi existem 2 opção salvar e reconhecer digital.</p>
<p style="text-align: justify;">Na opção de salvar, ao colocar o dedo no leitor e clicar para salvar o delphi através dos componentes Indy efeturá um post em um arquivo php exemplo: www.dominio.com.br/recebePOST.php. O arquivo php recebe um POST com os numeros das digitas e assim você pode armazenar no seu banco, no caso da solução foi um banco mysql.</p>
<p style="text-align: justify;">A segunda opção é reconhecer a digital, ao clicar para reconhecer, o delphi tb através do componente indy fará uma requisição ao um arquivo seu PHP que retornará para o delphi todas seus codigos das digitais cadastrados e assim será feita uma pesquisa para ver se a digtal que foi precionada confere com alguma já cadastrada. Você pode colocar na função de busca de 1% a 100% de precisão, estou trabalhando com 90%.</p>
<p style="text-align: justify;">Segue o <a title="Fontes biometria" href="http://coisasuteis.com.br/downloads/fonte_biometria.zip" target="_blank"><strong>link </strong></a>do codigo fonte para download:</p>
]]></content:encoded>
			<wfw:commentRss>http://www.coisasuteis.com.br/2010/06/sistema-de-biometria-em-php-delphi/feed/</wfw:commentRss>
		<slash:comments>51</slash:comments>
		</item>
		<item>
		<title>Websecurify: um scanner de vunerabilidades</title>
		<link>http://www.coisasuteis.com.br/2010/05/websecurify-um-scanner-de-vunerabilidades/#utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=websecurify-um-scanner-de-vunerabilidades</link>
		<comments>http://www.coisasuteis.com.br/2010/05/websecurify-um-scanner-de-vunerabilidades/#comments</comments>
		<pubDate>Mon, 17 May 2010 19:29:28 +0000</pubDate>
		<dc:creator>Pedro Puppim</dc:creator>
				<category><![CDATA[Dicas]]></category>
		<category><![CDATA[Php]]></category>
		<category><![CDATA[segurança]]></category>
		<category><![CDATA[websecurify]]></category>

		<guid isPermaLink="false">http://www.coisasuteis.com.br/?p=570</guid>
		<description><![CDATA[Hoje instalei o Websecurify e gostei muito do resultado, ele verifica principalmente falhas na programação. O bacana é que o aplicativo é opensource e é distribuido para WIN, Linux e MAC. Segue o link para o download: http://code.google.com/p/websecurify/downloads/list]]></description>
			<content:encoded><![CDATA[<p>Hoje instalei o Websecurify e gostei muito do resultado, ele verifica principalmente falhas na programação. O bacana é que o aplicativo é opensource e é distribuido para WIN, Linux e MAC.</p>
<p>Segue o link para o download:<br />
<a href="http://code.google.com/p/websecurify/downloads/list">http://code.google.com/p/websecurify/downloads/list</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.coisasuteis.com.br/2010/05/websecurify-um-scanner-de-vunerabilidades/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Postar no Twitter via Php/Curl</title>
		<link>http://www.coisasuteis.com.br/2009/12/postar-no-twitter-via-phpcurl/#utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=postar-no-twitter-via-phpcurl</link>
		<comments>http://www.coisasuteis.com.br/2009/12/postar-no-twitter-via-phpcurl/#comments</comments>
		<pubDate>Sat, 05 Dec 2009 10:21:48 +0000</pubDate>
		<dc:creator>Pedro Puppim</dc:creator>
				<category><![CDATA[Php]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[curl]]></category>
		<category><![CDATA[Twitter]]></category>

		<guid isPermaLink="false">http://www.coisasuteis.com.br/?p=459</guid>
		<description><![CDATA[Um cliente precisava cadastrar notícias em seu site e também automaticamente posta-la no Twitter. Para isso utilizei a API do Twitter desenvolvendo o codigo em php/curl. Codigo para postagem:  //url da api    $url="http://twitter.com/statuses/update.json";  ?> //mensagem    $status="Postando no twitter";    //Login e senha do twitter    $login="login_twitter";    $senha="senha_twitter";      $data = array('status' =&#62; $status);      foreach($data as $key=&#62;$value) [...]]]></description>
			<content:encoded><![CDATA[<p>Um cliente precisava cadastrar notícias em seu site e também automaticamente posta-la no Twitter. Para isso utilizei a <a href="http://apiwiki.twitter.com/" target="_blank">API do Twitter</a> desenvolvendo o codigo em php/curl.</p>
<p>Codigo para postagem:</p>
<pre lang="php"> //url da api  
 $url="<a href="http://twitter.com/statuses/update.json">http://twitter.com/statuses/update.json</a>";
 ?>

//mensagem  
 $status="Postando no twitter";   

//Login e senha do twitter
   $login="login_twitter";
   $senha="senha_twitter";
 
   $data = array('status' =&gt; $status);
 
   foreach($data as $key=&gt;$value) { $fields_string .= $key.'='.$value.'&amp;'; }
   rtrim($fields_string,'&amp;');
 

//parametros necessarios para executar o curl corretamente
   $sessao_curl = curl_init();
   curl_setopt($sessao_curl, CURLOPT_URL, $url);
   curl_setopt($sessao_curl, CURLOPT_HEADER, 1);
   curl_setopt($sessao_curl, CURLOPT_USERPWD, $login:$senha);
   curl_setopt($sessao_curl, CURLOPT_POST, 1);
   curl_setopt($sessao_curl, CURLOPT_POSTFIELDS, $fields_string);
   curl_setopt($sessao_curl, CURLOPT_RETURNTRANSFER, 1);
 
 //executa curl
   $rr = curl_exec($sessao_curl);

//terminando curl
   curl_close($sessao_curl);

   echo "Postado com sucesso";</blockquote>
</pre>
<p>Pessoal o twitter mudou a forma da sua autenticação e esse script não funciona mais!<br />
Fiz um novo post sobre o assunto:</p>
<p>http://www.coisasuteis.com.br/2010/11/postando-no-twitter-via-php-com-nova-autenticacao-do-twitter-oauth/</p>
]]></content:encoded>
			<wfw:commentRss>http://www.coisasuteis.com.br/2009/12/postar-no-twitter-via-phpcurl/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Melhores plugins para WordPress</title>
		<link>http://www.coisasuteis.com.br/2009/09/melhores-plugins-para-wordpress/#utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=melhores-plugins-para-wordpress</link>
		<comments>http://www.coisasuteis.com.br/2009/09/melhores-plugins-para-wordpress/#comments</comments>
		<pubDate>Wed, 23 Sep 2009 20:55:15 +0000</pubDate>
		<dc:creator>Pedro Puppim</dc:creator>
				<category><![CDATA[Dicas]]></category>
		<category><![CDATA[Php]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[plugins]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.coisasuteis.com.br/?p=256</guid>
		<description><![CDATA[Hoje lançamos o novo thema do blog e inserimos alguns plugins que acho interessante comentar: -All in One SEO Pack &#8211; Facilita as alterações do blog para melhor visualização nos mecanismos de busca. -XML Sitemap Generator &#8211; Gera um arquivo xml em seu blog que fará os principais mecanismos de buscas indexar o seu site [...]]]></description>
			<content:encoded><![CDATA[<p>Hoje lançamos o novo thema do blog e inserimos alguns plugins que acho interessante comentar:</p>
<blockquote><p>-<a href="http://www.coisasuteis.com.br/downloads/plugins/all-in-one-seo-pack.zip">All in One SEO Pack</a> &#8211; Facilita as alterações do blog para melhor visualização nos mecanismos de busca.<br />
-<a href="http://www.coisasuteis.com.br/downloads/plugins/google-sitemap-generator.zip">XML Sitemap Generator</a> &#8211; Gera um arquivo xml em seu blog que fará os principais mecanismos de buscas indexar o seu site através dele, basta consultar o sitemap para saber se houve uma atualização.<br />
-<a href="http://www.coisasuteis.com.br/downloads/plugins/si-captcha-for-wordpress.zip">Captcha</a> &#8211; Coloca um codigo verificador no formulario de comentário do blog eliminando os spans.<br />
-<a href="http://www.coisasuteis.com.br/downloads/plugins/wp-analytics.zip">Analytics</a> &#8211; Para quem usa o Google Analytcs esse plugin o incorpora dentro do wp-admin muito bom.<br />
-<a href="http://www.coisasuteis.com.br/downloads/plugins/dd-multi-col-links.zip">Links em uma Pagina</a> &#8211; Esse plugin adiciona os links cadastrados pelo wp-admin em uma pagina fixa do blog.
</p></blockquote>
<p>Lembrando que para instalar esses plugins é necessario incluilos na pasta wp-content/plugins do seu blog </p>
]]></content:encoded>
			<wfw:commentRss>http://www.coisasuteis.com.br/2009/09/melhores-plugins-para-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Gerando Excel via PHP</title>
		<link>http://www.coisasuteis.com.br/2009/07/gerando-excel-via-php/#utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=gerando-excel-via-php</link>
		<comments>http://www.coisasuteis.com.br/2009/07/gerando-excel-via-php/#comments</comments>
		<pubDate>Thu, 02 Jul 2009 05:25:30 +0000</pubDate>
		<dc:creator>Pedro Puppim</dc:creator>
				<category><![CDATA[Php]]></category>
		<category><![CDATA[Adicionar nova tag]]></category>
		<category><![CDATA[excel]]></category>

		<guid isPermaLink="false">http://www.coisasuteis.com.br/2009/07/gerando-excel-via-php/</guid>
		<description><![CDATA[Encontrei a biblioteca php-excel realizei alguns testes e gostei muito dos resultados, o codigo é muito facil de ser implementado. Pagina da biblioteca: http://code.google.com/p/php-excel/ Meu teste: http://www.coisasuteis.com.br/php-excel/ A biblioteca possui um arquivo chamado class-excel-xml.inc.php onde você deverá incluir nos seus scripts, depois crie um vetor e chame a classe e booom&#8230;. bem bacana. require (class-excel-xml.inc.php"); [...]]]></description>
			<content:encoded><![CDATA[<p>Encontrei a biblioteca <strong>php-excel</strong> realizei alguns testes e gostei muito dos resultados, o  codigo é muito facil de ser implementado.</p>
<p>Pagina da biblioteca: http://code.google.com/p/php-excel/</p>
<p>Meu teste: http://www.coisasuteis.com.br/php-excel/</p>
<p>A biblioteca possui um arquivo chamado class-excel-xml.inc.php onde você deverá incluir nos seus scripts, depois crie um vetor e chame a classe e booom&#8230;. bem bacana.</p>
<blockquote>
<p><code><br />
require (class-excel-xml.inc.php");</p>
<p>$doc = array (<br />
    1 => array ("<b>Nome</b>", "email", "telefone"),<br />
         array ("Marlene", "marlene@coisasuteis.com.br", "(27)992726266"),<br />
		array ("João da Silva", "joao@coisasuteis.com.br", "(27)993326211"),<br />
		array ("Maria", "maria@coisasuteis.com.br", "(27)982726261")<br />
    );</p>
<p>$xls = new Excel_XML;<br />
$xls->addArray ( $doc );<br />
$xls->generateXML ("lista");</code></p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.coisasuteis.com.br/2009/07/gerando-excel-via-php/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Evitando Injection em PHP</title>
		<link>http://www.coisasuteis.com.br/2009/06/evitando-injection-em-php/#utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=evitando-injection-em-php</link>
		<comments>http://www.coisasuteis.com.br/2009/06/evitando-injection-em-php/#comments</comments>
		<pubDate>Tue, 30 Jun 2009 04:14:04 +0000</pubDate>
		<dc:creator>Pedro Puppim</dc:creator>
				<category><![CDATA[Php]]></category>
		<category><![CDATA[segurança]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.coisasuteis.com.br/2009/06/evitando-injection-em-php/</guid>
		<description><![CDATA[Ano passado postei um script que tratava strings no GET com codigos maliciosos: http://www.coisasuteis.com.br/2008/12/evitando-injection-em-includes-php/ Porem ela não estava 100% blindada, na empresa que trabalho Phoneclub desenvolvemos uma nova versão desse script agora tratando variaveis do GET e POST. Segue: //Função para tratamento da string: function anti_injection($sql) { // remove palavras que contenham sintaxe sql $sql [...]]]></description>
			<content:encoded><![CDATA[<p>Ano passado postei um script que tratava strings no GET com codigos maliciosos:</p>
<p>http://www.coisasuteis.com.br/2008/12/evitando-injection-em-includes-php/</p>
<p>Porem ela não estava 100% blindada, na empresa que trabalho Phoneclub desenvolvemos uma nova versão desse script agora tratando variaveis do GET e POST. </p>
<p>Segue:</p>
<pre lang="php">
//Função para tratamento da string:
function anti_injection($sql)
{
	// remove palavras que contenham sintaxe sql
	$sql = preg_replace(sql_regcase("/(from|select|insert|delete|where|drop table|show tables|#|\*|--|\\\\)/"),"",$sql);
	$sql = trim($sql);//limpa espaços vazio
	$sql = strip_tags($sql);//tira tags html e php
	$sql = addslashes($sql);//Adiciona barras invertidas a uma string
	return $sql;
}

//Chamada da função, recomendo colocar no inicio de todas paginas:

foreach ($_GET as $chaveGet => $valorGet)
{
	$valorFiltrado = anti_injection($valorGet);
	eval("\$" . $chaveGet . " = \"" . $valorFiltrado . "\";");
	$_GET[$chaveGet] = $valorFiltrado;
}

foreach ($_POST as $chavePost => $valorPost)
{
	$valorFiltrado = anti_injection($valorPost);
	eval("\$" . $chavePost . " = \"" . $valorFiltrado . "\";");
	$_POST[$chavePost] = $valorFiltrado;
}
</pre>
<p>Qualquer sugestão será bem vinda.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.coisasuteis.com.br/2009/06/evitando-injection-em-php/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

