BD, PHP, SQLite

Ferramenta para gerenciamento de bases SQLite – phpLiteAdmin

phpLiteAdmin é uma ferramenta de administração de banco de dados SQLite baseada em web, escrito em PHP com suporte para SQLite2 SQLite3, distribuída sobre GNU GPL v3.
Seguindo a simplicidade usada pelo SQLite, phpLiteAdmin consiste em um único arquivo de aproximadamente 100KB, acessada por  um navegador.
A instalação é tão simples como especificar quais bancos de dados serão gerenciados e criar uma senha. As operações disponíveis, conjunto de recursos, interface e experiência do usuário é comparável ao do phpMyAdmin.

Um ponto interessante da ferramenta, é o fato de a mesma ser tão minimalista e permissiva em relação a sua licença de uso, que a mesma pode ser distribuída junto com sua aplicação.

Endereço do projeto:

http://code.google.com/p/phpliteadmin/

Para saber mais sobre SQLite:

http://pt.wikipedia.org/wiki/SQLite

Mais ferramentas administrativas para SQLite:

http://www.sqlite.org/cvstrac/wiki?p=ManagementTools

PHP

Exemplo de conexão PHP – PDO – MySQL / SQLite

The SQLite logo as of 2007-12-15
Image via Wikipedia

Aplicação simples de conexão aos bancos de dados MySQL e SQLite, utilizando PDO , com a finalidade de verificar o funcionamento da camada de abstração de banco de dados e suas facilidades.

Abaixo, código fonte:

<?php

$mysql = "mysql:host=localhost;dbname=pdo";
$username = "root";
$passwd = "passwd";
$sqlite = "sqlite:pdo.db";

// Para conectar ao mysql, descomente a linha abaixo
// $pdo = new PDO($mysql, $username, $passwd);

// conexão ao sqlite
$pdo = new PDO($sqlite);

$execucao = $pdo->prepare("select * from cadastro");

$execucao->execute();

while ($row = $execucao->fetch()) {

    $id = $row['id'];
    $nome = $row['nome'];
    $email = $row['email'];

    echo $id . " - ", $nome . " - ", $email . "<br>"; }?>

Para download do código e base de dados utilizados no exemplo, basta seguir o link abaixo:

http://www.4shared.com/file/7JcfkQPw/exemplo_pdo_mysql_sqlitetar.html

Boa sorte.

CakePHP, Cod. Fonte

Código fonte de aplicação básica CakePHP

a version of the logo of the web application f...
Image via Wikipedia

Código fonte de aplicação básica desenvolvida sobre framework CakePHP.

A aplicação consiste em um site básico com implementação de layout CSS e formulario de e-Mail com validação.
A mesma não é e nem pretende ser modelo de uma aplicação CakePHP, consistindo de experimentações com o framework, baseadas em consultas na web.

O mesmo é uma compilação dos seguintes posts:

  1. https://blogetilico.wordpress.com/2011/08/18/criacao-de-layouts-cakephp-introducao-ao-cakephp-para-web-designers/ 
  2. https://blogetilico.wordpress.com/2011/08/20/aplicando-estilos-css-cakephp/
  3. https://blogetilico.wordpress.com/2011/09/27/formulario-de-envio-de-e-mail-com-validacao-cakephp/
Caso se interesse, você é livre para baixar, visualizar, alterar e disponibilizar todo o conteúdo.
Link para o arquivo:
CakePHP, PHP

Formulário de envio de e-Mail com validação – CakePHP

CakePHP
Image via Wikipedia

Criação de um simples formulário de e-mail, utilizando o sistema de validação do Cakephp.

Utilizaremos como base, a aplicação desenvolvida nos posts:

  1.  Criação de layouts CakePHP – Introdução ao CakePHP para Web Designers.
  2. Aplicando estilos CSS – CakePHP.

Criaremos a seguinte estrutura de diretórios:

  • /app/views/contacts

Crie no diretório /app/controllers, um arquivo com extensão .php e atribua o nome contacts_controller e insira no mesmo o seguinte conteúdo:

<?php
class ContactsController extends Controller {
    var $components = array('Email');
    function send() {
        if(!empty($this->data)) {
            $this->Contact->set($this->data);
            if($this->Contact->validates()) {
                if(!empty($this->data['Contact']['company'])) {
                    $this->Email->from = $this->data['Contact']['company'] . ' - ' . $this->data['Contact']['name'] . ' <' . $this->data['Contact']['email'] . '>';
                } else {
                    $this->Email->from = $this->data['Contact']['name'] . ' <' . $this->data['Contact']['email'] . '>';
                }
                $this->Email->to = 'emaildestinatário@dominio.com.br';
                $this->Email->subject = 'texto cabeçalho e-Mail';
                $this->Email->send($this->data['Contact']['message']);
                $this->render('success');
            } else {
                $this->render('index');
            }
        }
    }
    function index() {
    }
}

No controller, setaremos a utilização do componente email e definir os parâmetros de envio.

No diretório /app/models, crie um arquivo com extensão .php e de ao mesmo o nome de contact e insira o seguinte conteúdo:

<?php
class Contact extends AppModel {
    var $name = 'Contact';
    var $validate = array(
        'name' => array(
            'rule' => 'notEmpty',
            'message' => 'O campo Nome é obrigatorio.'
        ),
        'email' => array(
            'rule' => 'email',
            'message' => 'O campo e-Mail é obrigatório.'
        ),
        'message' => array(
            'rule' => 'notEmpty',
            'message' => 'O campo Motivo do contato é obrigatório.'
        )
    );
}
?>

O model, vai determinar quais campos serão validados.

No diretório /app/views/contacts, serão criados dois arquivos com extensão .ctp, abaixo, o conteúdo a ser inserido nos respectivos arquivos:

index.ctp – O formulário apresentado para o utilizador – “$content_for_layout”

<p>Utilize o formulário abaixo para entrar em contato.</p>
<?php echo $this->Form->create('Contact', array('action' => 'send')); ?>
<table style="border:none;">
    <tr>
        <td>Nome</td>
        <td><?php echo $this->Form->input('Contact.name', array('label' => false, 'maxlength' => 100, 'size' => 40)); ?></td>
    </tr>
    <tr>
        <td>Empresa</td>
        <td><?php echo $this->Form->input('Contact.company', array('label' => false, 'maxlength' => 100, 'size' => 40)); ?></td>
    </tr>
    <tr>
        <td>e-Mail</td>
        <td><?php echo $this->Form->input('Contact.email', array('label' => false, 'maxlength' => 100, 'size' => 40)); ?></td>
    </tr>
    <tr>
        <td style="vertical-align: top;">Motivo do contato</td>
        <td><?php echo $this->Form->input('Contact.message', array('label' => false, 'cols' => 50, 'rows' => 10)); ?></td>
    </tr>
    <tr>
        <td colspan="2" align="center"><br><?php echo $this->Form->end('Enviar e-Mail'); ?></td>
    </tr>
</table>

success.ctp – Mensagem de retorno após envio dos dados.

<?php
echo $this->Session->flash();
?>
<p>Obrigado, Em breve estarei retornando seu contato.</p>

No arquivo default.ctp, encontrado no diretório /app/views/layouts, altere a linha:

<?php echo $html->link('Contato', array('controller' => 'pages', 'action' => 'contato')); ?>

Para:

<?php echo $html->link('Contato', array('controller' => 'contacts', 'action' => 'index')); ?>

Delete o arquivo contato.ctp, presente no diretório: /app/views/pages.

Para saber mais sobre componente Email:

http://book.cakephp.org/pt/view/1283/Email

Para saber mais sobre Validação de dados:

http://book.cakephp.org/pt/view/1143/Valida%C3%A7%C3%A3o-de-dados

Para saber mais sobre FormHelper:

http://book.cakephp.org/pt/view/182/Form

Boa sorte.

PHP, Uncategorized

PEAR:HTML_QuickForm – Criando um formulário simples

QuickForm é uma biblioteca de conveniência para lidar com formulários HTML. Ele fornece Javascript e do lado do servidor validação de formulário e é personalizável e extensível de muitas maneiras.

QuickForm tem objetos para todos os elementos  comuns de formularios: select, text, password, checkbox, file, reset, botão de imagem, rádio, textarea etc.

Antes de tudo, é necessário instalar a biblioteca, que por padrão não consta na instalação do PEAR.

Para saber mais sobre QuickForm e metodos de instalação, consulte o link abaixo:

http://pear.php.net/package/HTML_QuickForm/

Abaixo, exemplo simples de utilização do QuickForm, o código foi comentado, para facilitar o entendimento:

<?php

	// Adiciona HTML_QuickForm //
	require_once "HTML/QuickForm.php";

	// Cria array de elementos a serem usados na caixa de seleção //
	$cervejas = array(
	'lagers' => 'Lagers',
	'ales' => 'Ales',
	'lambics' => 'Lambics'
	);

	// Instancia a classe HTML_QuickForm //
	$form = new HTML_QuickForm("cervejas");

	// Adiciona texto ao elemento input //
	$form->addElement('text', 'username', 'Nome', array('size' => 35));
	$form->addElement('text', 'email', 'E-Mail', array('size' => 50));

	// Adiciona texto ao elemento select //
	$select =& $form->addElement('select', 'cervejas', 'Selecione o tipo de cerveja:', $cervejas);

	// Atribui selção multipla //
	$select->setMultiple(1);

	// Adiciona botão de envio //
	$form->addElement('submit', null, 'Enviar');

	// Imprime o formulário //
	$form->display();?>

Boa sorte.

Ps: Para saber mais sobre tipos de cervejas:

http://pt.wikipedia.org/wiki/Cerveja

Linux, PHP

Execução de aplicativos em PHP – Função system() – Scanner de rede

Exemplo simples de execução de aplicativos do sistema operacional, utilizando PHP.

PHP, permite que se tire vantagens de qualquer aplicativo instalado no servidor, dependendo de suas permissões.

Em nosso exemplo, vamos obter informações de um scanner de portas, gerando um relatório, utilizando o Nmap e a função system() do PHP.

Antes de tudo, obter o Nmap:

apt-get install nmap

Abaixo, o código documentado:

<?php
	// Atribuimos à váriavel $host o URL que será scaneado //
	$host = "www.google.com";
	// Formatação de texto //
	echo "<pre>";
	// Utilização da função system() atribuindo a URL à execução do aplicativo nmap //
		system("/usr/bin/nmap $host");
	echo "</pre>";
	// Encerrando o aplicativo nmap //
		system("killall -q nmap");
	// Importante, pois apesar de que voce poderia fechar o navegador, o processo referente ao aplicativo, estaria ativo //
?>

A função system(), permite interação com o sistema operacional do servidor (execução/parâmetros) através de aplicativos/serviços  instalados no mesmo.

Para mais informações sobre a função system():

http://br.php.net/manual/en/function.system.php

Informações sobre Nmap:

http://nmap.org/

Boa sorte.