Guardar $_POST PHP como XML

A 23 de Agosto de 2010, categoria PHP, por Carlos Gonçalves
4

Um dos principais objectivos ao criar formulários PHP é mantê-los seguros e protegidos contra spammers e programas automatizados. Com a quantidade de spam que o Akismet detém todos os dias, não preciso de vos lembrar sobre a importância de manter os formulários seguros. Uma vez que  90 e muitos % dos meus formulários são via POST, já despendi algum tempo a desenvolver algumas protecções e formas de debug.

Uma função que costumo utilizar para manter o controlo dos formulários POST é a minha função imprimir_xml(). A função recebe um array de dados (no meu caso, $ _POST), percorrendo todos os valores e transforma cada valor no formato XML, a partir do qual, posso guardar o XML num ficheiro ou colocar o XML numa Base de Dados.

A função pode ser usada em qualquer array ($ _SESSION e $ _GET, que também são boas opções!).

Código PHP

/* imprimir o conteúdo de uma url */
function imprimir_xml($arr, $wrapper = 'dados', $ciclo = 1)
{
	//variáveis úteis
	$break = "\n";

	//construir o conteudo
	if($ciclo == 1)
	{
		$output = '<?xml version="1.0" encoding="UTF-8" ?>'.$break;
	}

	$output.= tabelar_dados($ciclo - 1).'<'.$wrapper.'>'.$break;

	foreach($arr as $key => $valor)
	{
		if(!is_array($valor))
		{
			$output.= tabelar_dados($cuclo).'<'.htmlspecialchars($key).'>'.$valor.'</'.htmlspecialchars($key).'>'.$break;
		}
		else
		{
			$output.= imprimir_xml($valor,$key,$ciclo + 1).$break;
		}
	}

	$output.= tabelar_dados($ciclo - 1).'</'.$wrapper.'>';

	//retornar o output
	return $output;
}

/* Tabelar os dados */
function tabelar_dados($numero_tabelas)
{
	for($x = 1; $x <= $numero_tabelas; $x+)
	{
		$return.= "\t";
	}

	return $return;
}

De notar que esta função é usada de forma recursiva quando a informação é um array.

Como Usar

$_POST = array(
				'primeiro_nome'=>'Carlos',
				'ultimo_nome'=>'Gonçalves',
				'site_url'=>'http://cgoncalves.com',
				'linguagens_programacao'=>array('python','php','c#','asp'),
				'titulo'=>'Web Developer'
			);
echo imprimir_xml($_POST);

O Resultado

<?xml version="1.0" encoding="UTF-8">
<data>
	<primeiro_nome>Carlos</primeiro_nome>
	<ultimo_nome>Gonçalves</ultimo_nome>
	<site_url>http://cgoncalves.com</site_url>
	<linguagens_programacao>
		<0>python</0>
		<1>php</1>
		<2>c#</2>
		<3>asp</3>
	</linguagens_programacao>
	<titulo>Web Developer</titulo>
</data>
Actualmente, utilizo este script para gerar o XML que coloco num ficheiro, desta forma, posso fazer uma análise e gerar relatórios, ou simplesmente ajudar-me a fazer debug aos GET e POST.
Experimenta, e diz-me o que tu achas!

Muito FracoFracoRazoávelBomMuito Bom (1 votos, média: 5,00 num total de 5)
Loading ... Loading ...
Tags:
 

Confissões Excêntricas de um Programador – Parte 2

A 31 de Julho de 2010, categoria Confissões, Opiniões, Ideias e Dicas, por Carlos Gonçalves
5

excentrico   Confissões Excêntricas de um Programador   Parte 2Tenho muitas opiniões/pontos de vista controversos, e não tenho medo de os deitar cá para fora. Desde a minha última confissão, compilei mais algumas das confissões que quero fazer e sinto que hoje é o momento ideal para o fazer.

  1. Não vejo nada de errado abrir links em novas janelas. Queres que um PDF, um documento Word, ou um Excel abra na mesma janela? Muito menos se for a janela principal de um utilizador “amador”, pois esses vão de imediato fechar a janela em vez de apenas clicarem em “voltar”. Até eu faço isso. E se um link é usado apenas como referência ou link de apoio queres que ele abra na mesma janela? Claro que não.
  2. Já fiz alguns posts com alguns scripts que criei do MooTools, mas muito raramente os utilizo nos sites dos meus clientes, e isso não me aborrece em nada.
  3. Gostava que a sintaxe do PHP fosse mais parecida com a do JavaScript, de preferência com o MooTools. Programar em PHP é suposto  ser rápido, mas no que toca à flexibilidade está muito longe do JavaScript.
  4. Às vezes tenho mais orgulho de uma boa “solução alternativa” do que a solução final. Um bom programador precisa ser inteligente.
  5. Quando olho para alguns dos meus códigos CSS e PHP de alguns anos atrás, não percebo como é que consegui fazer aquilo. Isto é uma das vantagens de ser um programador – Sinceramente, sinto que posso melhorar a cada dia.
  6. Não gosto nada da homepage do sourceforge.net. Acho-a horrível, um grande software por trás mas uma horrível homepage.
  7. Embora não tenha nenhuma preferência nas novas versões do HTML ou do XHTML, não vejo muito valor na tag “<article>”, não vejo isso como um progresso. Porque não acabam com os estilos padrões nos elementos e deixam-nos definir os nossos, como no XML?
  8. Por mais que me custe dizer, o IE7 está a desaparecer mais rápido que o IE6. Os utilizadores do IE7 vão actualizar a sua versão enquanto os utilizadores do IE6 não.
  9. Prefiro o IE6 ao IE7.
  10. Não me arrependo por ter recusado uma oferta de participar numa comunidade mais activa sobre PHP, para posteriormente criar um livro. O compromisso ter-me-ia ocupado demasiado tempo  e prefiro escrever sobre isso no meu blog, sem contar que a nova geração de programadores raramente utilizam um livro de programação quando podem encontrar de tudo online.
  11. Embora não abdique tão cedo do MooTools, o Ext começa-me a puxar o bichinho da curiosidade. Claro que o Ext é mais como uma GUI, mas acho-o incrível e espero vir a usá-lo um dia destes.

Agora é a parte em que tu concordas comigo, fazes-me questões, ou mandas-me calar. Escolhe a tua opção!


Muito FracoFracoRazoávelBomMuito Bom (3 votos, média: 4,33 num total de 5)
Loading ... Loading ...
Tags:
 

Adiciona o Teu Site à Barra de Pesquisa do Firefox

A 7 de Fevereiro de 2010, categoria Opiniões, Ideias e Dicas, por Carlos Gonçalves
5

A capacidade de pesquisar directamente da barra de pesquisa do browser é excelente. Não precisas mais de usar o google ou outro SE.

Pesquisa Adicionada

Pesquisa Adicionada

Basta abrires uma nova aba e pesquisares pelo que quiseres. Claro que o Firefox vem com o Google, Yahoo e outros SE, mas e se quiseres disponibilizar uma pesquisa do teu site na barra de pesquisas do firefox? Com o Open Search, podes criar um XML para fazer exactamente isso.

O XML

<?xml version="1.0" encoding="UTF-8"?>
<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/">
    <ShortName>Carlos Gonçalves</ShortName>
    <LongName>Carlos Gonçalves ::: Pesquisa</LongName>
    <Description>Pesquisa artigos colocados no meu Blog</Description>
    <InputEncoding>UTF-8</InputEncoding>
    <OutputEncoding>UTF-8</OutputEncoding>
    <AdultContent>false</AdultContent>
    <Language>pt-PT</Language>
    <Developer>Carlos Gonçalves</Developer>
    <Contact>meuemail [at] gmail [dot] com</Contact>
    <Description>Procura por tópicos relacionados com CSS, PHP, MooTools, XHTML, jQuery, Freelancer, e muito mais!</Description>
    <Tags>php css ajax carlos goncalves jquery mysql xml xhtml mootools</Tags>
    <Attribution>Procura informação a partir de Carlos Gonçalves, http://cgoncalves.com/ </Attribution>
    <SyndicationRight>open</SyndicationRight>
    <Query role="example" searchTerms="Apple"/>
    <Image height="16" width="16" type="image/vnd.microsoft.icon">http://cgoncalves/favicon.ico </Image>
    <Image height="64" width="64" type="image/png">http://cgoncalves.com </Image>
    <Url type="text/html" template="http://cgoncalves.com/?s={searchTerms}"/>
</OpenSearchDescription>

O XHTML

Para permitir que cada browser seja capaz de identificar que tenho um documento disponível de pesquisa, preciso de adicionar o elemento link ao header.

<link rel="search" type="application/opensearchdescription+xml" href="/pesquisa.xml" title="Carlos Gonçalves ::: Pesquisa" />

Activar a Pesquisa do teu site

Adicionar Pesquisa

Adicionar Pesquisa

Para activar a possibilidade de pesquisar no teu site a partir do firefox, clica no ícone perto da barra de pesquisa. O Firefox há-de mostrar uma opção que diz “Adicionar: Nome do teu site”. Selecciona essa opção e o teu site está disponível para ser pesquisado pela barra de pesquisa do firefox!

Mesmo que não esperes muito tráfego proveniente da pesquisa, é fácil de implementar esta funcionalidade. Adiciona o meu site à tua barra de pesquisa!


Muito FracoFracoRazoávelBomMuito Bom (1 votos, média: 5,00 num total de 5)
Loading ... Loading ...
Tags:
 

Procuras alguma coisa?

Utiliza o formulário abaixo para pesquisares no meu site:


Ainda não encontraste o que procuravas? Deixa um comentário num post ou contacta-me para que te possa ajudar!

Links de Interesse!

Links por mim recomendados...

Arquivos

Ordenado de forma cronológica...