Criando captcha (imagem de segurança) utilizando PHP GD

Vamos então aos arquivos:

Arquivos: Aqui
Exemplo: Aqui

Com todos os arquivos em mãos vamos as explicações.

Arquivo: gera_captcha.php

//Definindo o formato do arquivo
header("Content-type: image/jpeg");
//Capturando o código passado via GET
$authCode = $_GET['code'];
//Criando a imagem 70x35 px
$imagem = imagecreate(70, 35);
//Definindo a cor de fundo da imagem
$fundo = imagecolorallocate($imagem, 242, 242, 236);
//Definindo a cor da fonte
$fonte = imagecolorallocate($imagem, 0, 0, 0);
//Gerando imagem
imagestring($imagem, 10, 10, 10, $authCode, $fonte);
//Renderizando a imagem
imagepng($imagem);

Este é o aquivo que vai criar efetivamente a imagem de acordo com o código passado por parâmentro.
Para exibição, vamos ao outro arquivo.

Arquivo: index.php

$code = rand(100000,999999);

No arquivo acima, geraremos um código randômico e passaremos como parâmetro no “src” da imagem.

<img src="gera_captcha.php?code=<?=$code ?>" />

Este é um exemplo simples que ajuda a entender o funcionamento desse modelo de segurança altamente utilizado em formulários web.

Até!

Share Button

Autenticação de aplicações do Twitter utilizando OAuth

Resumidamente, este exemplo consiste em criar uma aplicação registrada em uma determinada conta no Twitter e utiliza-la através do protocolo OAuth.
Para isso, inicialmente precisaremos criar a aplicação desejada através do link:
http://dev.twitter.com/apps/new

Ao criar a aplicação, vale ressaltar que todos os campos deverão ser preenchidos, inclusive o campo Callback URL.
Em meu caso: http://www.phpblog.com.br/exemplos/oauth_twitter/callback.php

Após criar a aplicação, o twitter gerará uma série de códigos. Precisaremos dos seguntes:
Consumer key
Consumer secret

Vamos aos downloads:

Arquivos: Aqui
Exemplo: Aqui

Após realizar os downloads, vamos ao código:

Arquivo: config.php

define('CONSUMER_KEY', 'colocar_chave_gerada_pelo_twitter');
define('CONSUMER_SECRET', 'colocar_chave_gerada_pelo_twitter');
define('OAUTH_CALLBACK', 'http://localhost/oauth_twitter/callback.php');

Neste arquivo, iremos colocar as chaves geradas pelo Twitteer, inclusive o CALLBACK URL.
Após este passo, vamos ao nosso arquivo principal.

Arquivo: index.php

/* Carregando Classes. */
session_start();
require_once('twitteroauth/twitteroauth.php');
require_once('config.php');
/* Verificando token */
if (empty($_SESSION['access_token']) || empty($_SESSION['access_token']['oauth_token']) || empty($_SESSION['access_token']['oauth_token_secret'])) {
header('Location: ./clearsessions.php');
}
/* Capturando token da sessão. */
$access_token = $_SESSION['access_token'];
/* Criando o objeto passando os tokens como parâmentro. */
$connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET, $access_token['oauth_token'], $access_token['oauth_token_secret']);
/* Testando a chamada. */
$content = $connection->get('account/verify_credentials');
//Retorna o timeline completo
$timeline = $connection->get('statuses/user_timeline', array('screen_name' => 'blogphp'));
//Atualizar o status
//$connection->post('statuses/update', array('status' => 'Hello PHPBlog'));
print_r($timeline);

/*Outras Chamadas */
//$connection->get('users/show', array('screen_name' => 'abraham')));
//$connection->post('statuses/update', array('status' => date(DATE_RFC822)));
//$connection->post('statuses/destroy', array('id' => 5437877770));
//$connection->post('friendships/create', array('id' => 9436992)));
//$connection->post('friendships/destroy', array('id' => 9436992)));

Pronto.
Este arquivo contém as chamadas que podemos fazer utilizando a nossa classe.

Até Mais (:

Share Button

Empacotando código fonte javascript com PHP

Aos Arquivos:

Download: Aqui
Exemplo: Aqui

Feito isso, vamos ao código:

Arquivo: index.php

<?php

    $treat = false;
    //Verificando o post
    if (isset($_POST['src']))
    {
        //Capturando o fonte
        $script = $_POST['src'];
        //Vericicando magic quotes (aspas) do servidor
        if (get_magic_quotes_gpc())
        {
            $script = stripslashes($script);
        }

        //Capturando dados do post do fomulário
        $encoding = (int)$_POST['ascii_encoding'];
        $fast_decode = isset($_POST['fast_decode']) && $_POST['fast_decode'];
        $special_char = isset($_POST['special_char'])&& $_POST['special_char'];

        //Incluindo a classe JavascriptPacker
        require 'class.JavaScriptPacker.php';

        //Instanciando o objeto
        $packer = new JavaScriptPacker($script, $encoding, $fast_decode, $special_char);
        //Empacotando
        $packed = $packer->pack();        
        $treat = true;
    }
?>

No exemplo, temos um textarea onde colocamos nossas funções javascript.
Abaixo escolhemos algumas opções de criptografia:
Tipo de codificação (Cuidado ao utilizar High ASCII com utf-8)
Decodificação Rápida
Caracteres Especiais

Com isso, ao clicar no botão Codificar teremos abaixo o nosso javascript empacotado.

Exemplificando:

Uma função simples:

function mostraMensagem(msg){
   alert(msg);
}

Empacotando, resultaria em:

eval(function(p,a,c,k,e,d){e=function(c){return c};if(!''.replace(/^/,String)){while(c--){d[c]=k[c]||c}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('1 3(0){2(0)}',4,4,'msg|function|alert|mostraMensagem'.split('|'),0,{}))

Um pouco menos claro ao entendimento humano. ehehehe

Usem e abusem.

Até!

Share Button