Mostrando postagens com marcador PHP. Mostrar todas as postagens
Mostrando postagens com marcador PHP. Mostrar todas as postagens

sexta-feira, 1 de março de 2013

Formulário no WordPress sem plugin

Em determinadas situações é bom evitar o uso de plugins, no caso do formulário de contatoo não uso de plugin evita que ele fique carregando o script do formulário em todas as página, da forma mostrada abaixo o script só carrega na própria página de contato. E para isso acontecer vamos criar um template especifico para página de contato.
Todos templates do wordpress tem o arquivo “page.php”, ele é o arquivo responsável em exibir todas páginas separadas, sabendo disto vamos fazer o seguinte: Entre na pasta do template, faça uma copia do “page.php” e renomei-a para “contato.php” e abra a mesma em seu editor.
No topo dela vai ter o seguinte comentário.
1./**
2.* The template for displaying all pages.
3.* ...
4.*/

Mude para:
1./**
2.* The template name: Contato
3.* ...
4.*/

Este “The template name: Contato” é a linha que vai fazer toda a diferença, com isso este template vai aparecer na lista de “modelos” de página para selecionar.
Agora a única coisa que temos que fazer é um formulário de contato normal.
01.?php
02.function h($str) {
03.return htmlentities($str);
04.}
05.
06.function noempty($str) {
07.if (preg_match('/[a-z]/'$str))
08.return true;
09.else
10.return false;
11.}
12.
13.if (isset($_POST['enviar'])) {
14.if (!noempty($_POST['nome']) or !noempty($_POST['assunto']) or !is_email($_POST['email'])or !noempty($_POST['msg'])) {
15.$_SESSION['info'] = 'Preencha todos campos corretamente.';
16.}
17.
18.else {
19.$headers 'From: ' $_POST['email'] . "\r\n" .
20.'Reply-To: ' $_POST['email']  . "\r\n" .
21.'X-Mailer: PHP/' . phpversion();
22.
23.if(@mail(get_bloginfo('admin_email'), $_POST['assunto'], $_POST['msg'], $headers)) {
24.$_SESSION['info'] = 'E-mail enviado com sucesso.';
25.header('Location: http://' $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI']);
26.exit;
27.else {
28.$_SESSION['info'] = 'Erro no servidor.';
29.}
30.}
31.}
32.?>
Agora o formulário, de preferencia abaixo da função “the_content()”.
01.<form method="post" action="" class="contato">
02.< ?php
03.if (isset($_SESSION['info'])) {
04.echo '<div>' $_SESSION['info'] . '';
05.unset($_SESSION['info']);
06.}
07.?>
08.<div>
09.<label for="nome">* Nome</label><br />
10.<input type="text" name="nome" value="<?php echo h(@$_POST['nome']) ?/>" id="nome"/>
11.</div>
12.<div>
13.<label for="email">* E-mail</label><br />
14.<input type="text" name="email" value="<?php echo h(@$_POST['email']) ?/>"id="email" />
15.</div>
16.<div>
17.<label for="assunto">* Assunto</label><br />
18.<input type="text" name="assunto" value="<?php echo h(@$_POST['assunto']) ?/>"id="assunto" />
19.</div>
20.<div>
21.<label for="msg">* Mensagem</label><br />
22.<textarea name="msg">< ?php echo h(@$_POST['msg']) ?></textarea>
23.</div>
24.<div>
25.<input type="submit" name="enviar" value="Enviar" />
26.</div>
27.</form>
E está pronto, é só editar ou criar a página de contato e na hora de salvar selecionar o modelo “contato” nas opções “Atributos de Página”. Este é só um exemplo você pode faze o formulário como desejar

Desenvolvimento de PHP em nuvem

Na Conferência Zend PHP, realizada em Santa Clara, na Califórnia, a Zend anunciou uma plataforma de desenvolvimento livre de PHP em nuvem.
Chamada de phpcloud.com, a plataforma consiste em dois componentes integrados:o Zend Developer Cloud, um sandbox de desenvolvimento e um conjunto de ferramentas para criar aplicações Web PHP, e o Zend Application Fabric, uma plataforma de aplicativos com base na Amazon Web Services e tecnologias próprias da Zend.
O Zend Application Fabric é baseado em tecnologias Zend Server, e tem como objetivo oferecer desempenho elevado com tempos de resposta rápidos de aplicativos, e minimizar o uso dos recursos. O sistema suporta um escalonamento on-demand para lidar com processo “on flotation” (demanda flutuante).
Depois de concluídos, os apps web desenvolvidos em phpcloud.com podem ser exportados para outras plataformasem cloud, para a implantação. As plataformas suportadas incluem Amazon, IBM SmartCloud, Rackspace e Red Hat. Os aplicativos também podem ser implantados em nuvens privadas usando o ZendServer.

Criando aplicativos móveis com PHP

Há um bom tempo, o PHP era a escolha óbvia para as necessidades de todo programador. Ele estava disponível em todos os servidores web virtuais, tinha excelente documentação, e conseguia lidar com todas as necessidades dos programadores. Essas coisas são ainda mais verdadeiras hoje, e o PHP ainda é o middleware de escolha da maioria dos profissionais da área. No entanto, o uso do PHP mudou nos último anos.
Durante uma solicitação típica de página, o PHP fazia coisas como começar uma sessão, consultar um banco de dados, processar alguns dados, e, finalmente, gerar uma tonelada de métricas de HTML que seriam retornadas para o browser do usuário. Em outras palavras, toda a interface do usuário era gerada no lado do servidor pelo PHP. Ocasionalmente, era possivel incluir o prototype.js ou jQuery para fazer um pouco de validação de formulário, ou uma lista dropdown com um campo para “auto-completar”.

Mas então veio o iPhone…

Em 2007, o iPhone deu início a uma onda de interesse em computação móvel. Como milhares de desenvolvedores maravilhado por aquele pequeno dispositivo mágico que colocou a web no bolso de muita gente. Sempre conectado, navegadores excelentes, interação de toque intuitiva – é de fato incrível, e todos queriam entrar nessa de cabeça.
Quando o iPhone foi anunciado pela primeira vez, Steve Jobs pediu ao desenvolvedores terceirizados que construíssem aplicativos web se eles quisessem programar para o iPhone.
Claro que Jobs acabou voltando atrás menos de um mês depois, com o anúncio do Cocoa Touch e a iTunes App Store. E a guerra santa entre “web apps” e “apps nativos” nasceu.

E o que isso tem a ver com PHP?

Felizmente, agora temos a convergência de novas tecnologias que tornam a construção de web apps – móveis e outros – muito mais fácil.jQTouchSencha Touch, e mais recentemente, jQuery Mobile tornaram a vida mais fácil para escrever JavaScript para browsers móveis. O CSS3 nós dá transformações, transições e animações que nos permitem facilmente adicionar efeitos visuais sofisticados. E, mais drasticamente, o HTML5 define uma enorme quantidade de novos recursos  —  geolocalização, canvas, sockets, workers, armazenamento de dados do lado do cliente, suporte a cache offline da aplicação, cross-origin resource sharing, e por aí em diante.
Como resultado,muitas pessoas podem criar suas próprias UI com HTML estático, CSS e documentos JavaScript que conversam com uma API do lado do servidor construída com PHP. Esta abordagem baseada em API pode minimizar, de fato, a quantidade de dados enviados através do fio, porque é possível esconder os arquivos estáticos localmente, e somente requisitar atualizações de dados relativamente pequenos do PHP (normalmente na forma de JSON). Isso também tem grandes vantagens secundárias. Aqui estão as três maiores:

1. Divisão de trabalho:
Uma vez que você tem configurado uma API do lado do servidor, você pode facilmente ter seu trabalho de design do aplicativo no front end sem saber o mínimo de PHP, linguagens de templates, ou qualquer outra tecnologia do lado do servidor. Você não tem nem que dar acesso ao servidor para o designer – ele pode codificar contra a API com os arquivos no seu desktop.

2. Clientes múltiplos
O cenário da informática está sob massivo crescimento e transformação. Estamos vendo telas tão pequenas quanto cartões de credito, e tão grandes quanto um outdoor. E está acontecendo também uma grande separação entre dispositivos que suportam entrada de toque, de mouse e, em menor número, de voz.
Diferenças no tamanho físico, modos de interação e capacidades do dispositivo exigem que forneçamos experiências otimizadas ao usuário para o terminal em questão. Expor uma API do lado do servidor, construída em PHP, possibilita o suporte a clientes front end, sejam eles clientes menores, construídos em HTML, CSS, e JavaScript, ou maiores, construídos com frameworks nativos.
Os benefícios dessa abordagem têm sido demonstrados pelo Google, Yahoo, e, talvez, mais dramaticamente pelo Twitter, que documentou e lançou uma API simples para a comunidade de desenvolvedores. Graças a isso, todos os clientes do Twitter encontraram seu caminho no mundo digital. Começando com uma API que permite esse tipo de flexibilidade, que parece infinita, certamente ela contribuiu imensamente para a aceitação do Twitter.

3.  À prova do futuro
O cenário da informática está evoluindo e é muito difícil prever o que vem a seguir. Muitas pessoas inteligentes estão trabalhando em novas tecnologias que irão mudar a maneira com que interagimos com computadores, e mais importante, um com o outro. Tudo, desde projeções holográficas de eventos de esporte ao vivo , até entradas das ondas cerebrais dos usuários  estão em jogo. A melhor maneira de se manter flexível à vista de novos desenvolvimento é fornecer uma API robusta para lidar com o máximo do levantamento do back end possível.

Comece com sua API

Para trabalho web front end, você vai querer se familiarizar com a nova maravilha que é o  HTML5 e o CSS3, e mais importante, aprender JavaScript! É uma sintaxe muito parecida com PHP e ela deveria parecer bem familiar para você (existe até um artigo do PHP Advent sobre isso). No entanto, existem muitas diferenças importantes entre PHP e JavaScript que você realmente precisa entender antes de se auto intitular um especialista. O livro JavaScript: The Good Parts, de Douglas Crockford é recomendado. Se você programa para a web, deve lê-lo.
Para finalizar,  nunca houve um momento melhor para ser um desenvolvedor web. A convergência de uma conectividade ubíqua, serviços de cloud e telas de toque interativa estão criando um ambiente onde qualquer um pode construir experiências do usuário convincentes que tenham um alcance massivo com uma barreira de entrada muito pequena. Então volte para seu editor de texto e comece a codificar

Criando um CAPTCHA

Como todos devem saber, segurança é algo essencial no mundo digital. Existem pessoas que invadem sistemas para mostrar vulnerabilidades deste e alertar seu criador para aumentar a segurança, mas também existem aquelas pessoas que invadem com más intenções. Uma das formas mais utilizadas para descobrir senhas de sistemas é o método tentativa e erro. Só que ser humano nenhum tem paciência e nem tempo para testar mais de um milhão de combinações atrás de uma correta, logo, criam robôs para executarem tais tentativas. Devido a isso, foi elaborado um tipo de sistema chamado CAPTCHA (Completely Automated Public Turing Test To Tell Computers and Humans Apart ou, Teste Público Totalmente Automatizado Para Diferenciar Computadores de Seres Humanos).
Neste tutorial, você irá aprender como usar uma imagem CAPTCHA para um sistema de login mais seguro. O primeiro passo para desenvolver qualquer sistema realmente bom, é entender como ele realmente funciona, ou deveria funcionar. Assim, analisemos o CAPTCHA.
O CAPTCHA é exibido ao usuário em forma de uma imagem com extensão PNG ao lado com um campo de digitação dos caracteres nela exibido. Sendo assim, aprenderemos a criar imagens PNG com PHP.
Para trabalharmos com imagens PNG no Php devemos escolher uma imagem como base para a editarmos. Para tal utilizaremos a função:
$imagemCaptcha = imagecreatefrompng(<caminho_imgem_base>);
A imagem utilizada com plano de fundo de um CAPTCHA deve ser bem abstrata ou conter muitos elementos, uma vez que é possível criar scripts que lêem pixel por pixel de imagens a procura de padrões de seqüência que formam letras. Um bom exemplo de imagem seria:
Além de uma imagem de fundo é necessário escrever algo nela, e para isso devemos definir todos os padrões de fonte da escrita, como cor e tipo de fonte (lembre-se de que o arquivo que contém a fonte deve estar na mesma pasta que o arquivo gerador do CAPTCHA)
$fonteCaptcha = imageloadfont("anonymous.gdf");
// Nos três ultimos parâmetos da função imageclorallocate são passados os valores para RGB respectivamente.
$corCaptcha = imagecolorallocate($imagemCaptcha,0,0,0);
Agora precisamos definir qual texto será usado na string exibida na imagem e armazená-la em uma sessão:
$textoCaptcha = substr(md5(uniqid('')),-9,9);
        $_SESSION["string_seguranca"] = $textoCaptcha;
Agora precisamos agrupar a imagem de fundo ao texto gerado, exibi-la e limpar a memória para evitar problemas futuros da seguinte forma:
  //O 3º e o 4º parametros passados são a posição do texto na imagem
 imagestring($imagemCaptcha,$fonteCaptcha,15,5,$textoCaptcha,$corCaptcha);
 //Exibe a imagem
 imagepng($imagemCaptcha);

 //Limpa a memória
 imagedestroy($imagemCaptcha);
O arquivo inicial deverá ficar da seguinte forma:
<?php
 session_start();

 //Carrega imagem para utilização na criação do captcha
 $imagemCaptcha = imagecreatefrompng("background/bg7.png");

 //Tipo de fonte a ser usada na imagem //Dê preferencia a fontes GD
 $fonteCaptcha = imageloadfont("anonymous.gdf");

 //Gera String unica para captcha
 $textoCaptcha = substr(md5(uniqid('')),-9,9);

 $_SESSION["string_seguranca"] = $textoCaptcha;

 //Define a cor da fonte da imagem
 $corCaptcha = imagecolorallocate($imagemCaptcha,0,0,0);

 //Monta imagem com o novo texto
 imagestring($imagemCaptcha,$fonteCaptcha,15,5,$textoCaptcha,$corCaptcha);

 //Mosta a imagem em formato PNG
 imagepng($imagemCaptcha);

 //Libera a memória
 imagedestroy($imagemCaptcha);
?>
Para usarmos a imagem a chamaremos da seguinte forma em um arquivo HTML.
<img src="captcha.php" />
E ao checar o usuário e senha digitados comparamos o texto digitado pelo usuário com o da sessão.
Para utilizar a função de troca de imagem caso fique ilegível utilize um pouco de JQuery.
Mudaremos um pouco a forma de chamar a imagem. Criaremos um arquivo php com o nome imagem_seguranca.php com o seguinte conteúdo:
<?php
 //Isto servirá para a troca de imagens de fundo do CAPTCHA
 $imagem = rand(0,4)
?>
<img src="captcha.php?iu=<?php echo $imagem; ?>" />
E no arquivo HTML login chamaremos o arquivo imagem_seguranca.php da seguinte forma:
<span id="img_captcha">
 <?php require_once "imagem_seguranca.php"; ?>
</span>
Para trocar as imagens utilizaremos um link com um id “troca_imagem” que servirá para identificá-lo no JQuery.
Não consegue visualizar a imagem? <a href=”#imagem” id=”troca_imagem”>Clique aqui</a>
O seguinte código JQuery servirá para recarregar uma área especifica do site toda vez que o link com id troca_imagem for clicado, assim chamar novamente a cada clique no link a página imagem_segurança.php (Não se esqueça de importar a biblioteca jQuery).
<script type="text/javascript" src="jQuery.js"></script>
<script type="text/javascript">
 $(function(){
 $('#troca_imagem').click(function(){
 $('#img_captcha').load('imagem_seguranca.php');
 });
 });
</script>
Por fim modificaremos o arquivo captcha.php para que o sistema de troca de imagens de fundo funcione, tendo no final três arquivos para a geração do captcha.
//Array Imagens de Fundo
$imagensCaptcha[0] = "background/bg3.png";
$imagensCaptcha[1] = "background/bg4.png";
$imagensCaptcha[2] = "background/bg5.png";
$imagensCaptcha[3] = "background/bg6.png";
$imagensCaptcha[4] = "background/bg7.png"; 
//Carrega imagem para utilização na criação do captcha
$imagemCaptcha = imagecreatefrompng($imagensCaptcha[$_GET["iu"]]);