Arquivo para a categoria 'Website'

30
Ago
09

Codeigniter – Série de tutoriais – Sistema de Login (Parte 2)

Continuando o sistema de login, agora vamos ao Model da aplicação juntamente ao formulário de login.

Model

No nosso model, teremos as funções de comunicação com o banco de dados, para retornar informações sobre o usuário.

Os métodos utilizados serão:

  • checkLogin()
  • logout()

Bom, sem mais delongas, vamos ao código:

class LoginModel extends Model
{

    private $users_table = 'user';
    private $username;
    private $password;

    function LoginModel()
    {
        parent::Model();
    }

    /**
     * Nesta função, receberemos o login e a senha do usuário para buscar no banco
     * de dados se o usuário é válido. Caso seja, é retornado o Objeto do usuário
     * como visto anteriormente no nosso controller.
     * Se não, é retornado 'false'.
     *
     * Vale ressaltar que estamos utilizando o componente de Active Record do
     * codeigniter, que facilita a manipulação do banco dedados, criando um
     * ambiente de abstração.
     **/
    function checkLogin($username, $password)
    {

        //Variáveis recebidas
        $this->username = $username;
        $this->password = $password;

        //Active Record (Vou separar para melhor entendimento.)
        $this->db->select('id, name, email, status, privileges')
        ->from($this->users_table)
        ->where('email', $this->username)
        ->where('password', md5($this->password));
        /**
         * Esta linha acima poderia ser em uma linha só:
         * $this->db->select('id, name, email, status, privileges')->from($this->users_table)->where('email', $this->username)->where('password', md5($this->password));
         *
         * Ou ainda assim:
         *
         *  $this->db->select('id, name, email, status, privileges');
            $this->db->from($this->users_table);
            $this->db->where('email', $this->username);
            $this->db->where('password', md5($this->password));
         *
         **/

        /**
         * Executamos a query no banco e armazenamos o resultado na variável query.
         * O resultado por default será retornado como objeto.
         **/
        $query = $this->db->get();

        //
        if ($query->num_rows() > 0) {
            return $query->row();
        } else {
            return false;
        }
    }

    /**
     * Por fim, nossa função de logout, para 'desconectar' o usuário da sessão
     *
     **/
    function logout()
    {
        //Atribuimos a variável $user_logged o valor da sessão autenticada
        $user_logged = $this->session->userdata('user_logged');

        //Se não for vazio
        if ($user_logged != '') {

            //Retiramos, ou seja, limpamos a sessão para que o usuário seja desconectado.
            if ($this->session->unset_userdata('user_logged')) {
                return true;
            } else {
                return false;
            }

        } else {
            return false;
        }
    }
}

Bom, este foi o nosso Model.. agora iremos ao nosso formulário de login, nossa VIEW.

VIEW

<div id="login">
<h4>Autenticação no sistema</h4>
<form action="<?=DEFAULT_LINK?>login" name="frm-login" method="post">

 <fieldset>

 <legend>Formulário de Autenticação</legend>

 <label for="frm-login-user">Usuário</label>
 <input type="text" name="login" id="login" />

 <label for="frm-login-pass">Senha</label>
 <input type="password" name="password" id="password" />

 <input type="submit" name="frm-button" value="Autenticar" />

 </fieldset>

 </form></div>

Bom, então finalizamos nosso tutorial de Login. Lógico que dá para incrementar, algo como um “esqueci minha senha”, mas isso fica a cargo de vocês darem uma pensada e fazer por si próprio.

Uma dica é não copiar e sim digitar, pois isso fixa mais na mente, logo o aprendizado é mais rápido.

Abaixo vou deixar a tabela de login para vocês executarem o sisteminha e é isso aí.

SQL da tabela.

O próximo post da série será referente a biblioteca de autenticação que utilizamos aqui. Ela auxilia na recuperação de informações, bloqueio de controllers e algumas coisas mais.

Até a próxima.

That’s All Folks.

Djalma Araújo
www.djalmaaraujo.com.br

27
Ago
09

Codeigniter – Série de tutoriais – Introdução

Olá pessoal, minha meta de 2009 número 2 não vem sendo cumprida de maneira alguma. “Pelo menos um post por mês”. É, prometer e não cumprir é errado. Mas, a partir de hoje, estarei iniciando uma série de tutoriais/dicas/rotinas/qualquer coisa que tenha relação com o  CodeIgniter.

Vou falar um pouco sobre o CodeIgniter neste primeiro post, para que todos tenham uma boa noção de como utilizá-lo, onde achá-lo e por que utilizá-lo. Antes disso, precisamos dar uma revisada no conceito de um framework. Não vou entrar em conceitos de MVC ou como funciona um framework, pois você pode encontrar estes conceitos em vários sites, como aqui, aqui e aqui.

Framework

Resumidamente falando, um framework é um pacote de coisas. Simples? É exatamente isto. Seguindo alguns padrões, um framework traz uma série de ferramentas, auxiliadores e ainda alguns geradores de funcionalidades. A utilização de um tipo de ferramenta como esta, pode agilizar o desenvolvimento de projetos em dias e por que não meses.

A primeira impressão de um programador que não utiliza nenhum framework pode ser de renúncia, porém, ao se deparar com a facilidade e as várias funcionalidades que um framework pode trazer, logo vira hábito a utilização do mesmo.

Imagine que você estaria construindo um préio de 3 andares, e no começo de tudo você já poderia ter pronto o cimento, as ferramentas e a estrutura toda pronta no papel e virtual. Agora você só precisaria se importar com o que realmente importa, que é subir os andares de tijolos utilizando o cimento e as ferramentas.

Da mesma forma acontece quando se utiliza um framework para a construção de um sistema para web. Você já possui um padrão de estrutura, já possui todas as ferramentas para manipular XML, Web Services, Banco de dados e preocupa-se apenas com a regra de negócio na hora de desenvolver as linhas de código.

O Codeigniter

Bom, já entendemos o que é um framework, agora podemos falar do propriamente dito “suprassumo do rabo do pato”, vulgo Codeigniter framework, ágil, prático e robusto.

Como já dizia o pessoal do Codeigniter Brasil no seu belo post CodeIgniter: framework PHP ágil, robusto e de alta performance:

“CodeIgniter, como bom framework que é, permite o desenvolvimento de web sites, softwares e aplicações em PHP de maneira ágil e relativamente descomplicada. O objetivo do CodeIgniter é disponibilizar um framework de máxima performance e capacidade, que seja flexível e o mais leve possível.”

Por ser um framework muito flexível quanto a sua estrutura, ele abre um leque de possibilidades bem maior do que outros para o desenvolvimento de aplicações para web.

Atualmente, estou desenvolvendo um CMS baseado no próprio codeigniter, e realmente, a maneira como é fácil manipular elementos de XML, Banco de dados e afins, é muito interessante.

Bom, para saber mais sobre o codeigniter, é bom visitar o site oficial e os blogs fáceis de encontrar no segundo cérebro.

That’s all folks.

Por hoje é somente só isso mesmo nada mais do que eu falei até agora pois é somente isso e tenho dito. Entendeu?! Darei continuidade na segunda parte da série com um post falando sobre como fazer uma autenticação com o codeigniter. Tutorial simples de Login. A intenção deste primeiro tutorial é mostrar no segundo uma biblitoca que desenvolvi de auxílio na captura e verificação de informações dos usuários logados no seu sisteminha.

É isso, até o próximo post.

Djalma Araújo

06
Mai
09

Primeiras impressões do Linux[Ubuntu] (por um usuário iniciante/noob)

Bom, alguns sabem que tomei uma decisão agressiva de mudar do windows para o linux definitivamente. Resolvi escolher o Ubuntu pois havia feito um mini-mini-mini-curso sobre linux na Especializa em uma tarde. Ao chegar em casa fiz logo o download da ISO. Procurei logo de baixar o VirtualBox e mandar bala na instalação do ubuntu. Aí vamos ao que interessa.

  1. Instalação
    - VIRTUAL BOX -> Super rápida, não precisei particionar nada pois o VirtualBOX fez tudo por mim. Instalei o ubuntu e em menos de 10 minutos já estava utilizando o mesmo.
    - PARTIÇÃO -> Depois de usar por alguns minutos (empolgados minutos) resolvi arrumar logo um espaço para instalar de verdade o ubuntu. Tirei algumas coisas de uma partição, gravei o CD com a ISO e inseri no DRIVE.. REBOOT.
    - Bicho, queria o windows ser tão ridículo de instalar. Senti uma leve dificuldade na hora de escolher o tipo de formatação, pois não sabia que existia tanto tipo. Mas.. ext3 e mandei bala. Ele ainda pede uma área pra SWAP, que é aquela memória secundária que podemos utilizar de discos.
    Resumidamente.. instalação nota 9.
  2. Utilização
    - De cara, tudo já veio prontinho, rede, placa de som, Open Office (SHOW), Pidgin. Sinceramente? Essa galera pensou muito bem ao deixar justamente os programas necessários para você sobreviver ao instalar. Firefox, Pidgin(comunicador que suporta vários IM’s), Open Office (hmm, sem comentários de como é show.), Player de áudio/vídeo.
    - Porém, o melhor não é nada disso. Estou muito, mas é MUITO MESMO impressionado com o danado do suporte de instalação de novos programas. O ubuntu (e outros) possue um danado de um synaptics onde você tem uma espécie repositório MUNDIAL de programas/drivers para sua distribuição. É algo sensacional, já imaginou você formatar sua máquina e dentro de 20 minutos você ter tudo o que tinha sem ter que entrar em sites ou pegar cds de backup? É perfeito. Existe uma versão mais amigável que fica no menu principal (Adicionar/Remover programas) e também existe a versão mais avançada localizada na área de administração do sistemas. Redomendo sempre utilizar o avançado pois não é difícil e tem mais opções.Ainda falando sobre utilização, ao meu ver todos os menus são amigáveis, opções bem intuitivas, é muito parecido com a interface do windows e tem um suporte a temas mais abrangente.

    Outra coisa interessante é os efeitos 3d do próprio sistema operacional. Muitas pessoas já devem ter visto o CUBO 3d e as janelas elásticas do Ubuntu em alguns vídeos pelo Youtube e afins. Não? Toma um exemplo: http://www.youtube.com/watch?v=ZxfSwzhSn1c&feature=fvst. Sensacional? Sim isso realmente é muito fácil de se configurar.  Além disso, ele te sugere o driver de sua placa de vídeo e através daquele synaptics você já instala facilmente. Chama compiz o nome do suporte a esses efeitos. Mas, como nada no mundo é perfeito, o ubuntu não seria..

  3. Eu te odeio suporte a dual monitor UBUNTU.
    - Indignado é pouco para expressar a minha raiva com o ubuntu perante ao suporte de 2 monitores no sistema. Pense numa luta absurda de 4-5 dias tentando descobrir um modo com que os 2 monitores funcionassem. CONSEGUI! É, consegui fazer 2 monitores funcionarem sem perder os efeitos 3d (que acontece quase sempre), porém, como NADA realmente é perfeito, o primeiro monitor não está atingindo a resolução correta que seria 1680×1050. O danado do ubuntu só deixa ele chegar a 1380xalguma coisa. Na boa? Deu vontade de desistir do linux por esta falha que chega a ser ridícula. Ponto positivíssimo para o windows no suporte a vários monitores. Nunca configurei tao fácil 2 monitores na minha casa sem problema NENHUM.
  4. Wine
    - Vinho? Só no nome.. Este belo programa faz uma simulação/emulação (o que seja) do nosso querido windows. Não, não é pirataria. Ele simplesmente funciona no seu linux sem ter que ter o windows instalado e emula os programas que você quiser. Se você quiser instalar seu programa de edição gráfica prferido que só roda no windows, fique a vontade e instale-o no ubuntu. O wine proverá este suporte a você sem bronca nenhuma. Só lembrando que existe o GIMP que faz o papel dos programas gráficos. Mas não chega nem aos pés de um Photoshop da vida.
  5. Programadores
    É indiscutível o suporte para programadores no linux. Tem todo tipo de IDE, Editores. Se você utiliza as seguintes ferramentas: Apache, PHP, Mysql, Phpmyadmin. É.. que tal 4 minutos tu resolve tudo instalado separadamente e perfeitamente instalado? Sim sim, nosso synaptics novamente em evidência.
  6. No geral..
    - Tirando essa desgraça do dual monitor o ubuntu é simplesmente algo extraordinário. Sem problemas, sem necessidade de ficar limpando coisas indevidas. As instalações são todas revisadas pela equipe de desenvolvedores e muitas outras características boas o linux. Não voltarei para o windows, vou usar 1 monitor mas eu não volto. :)
  7. Agora..
    - Se você souber como me ajudar na questão monitores faça o grande favor!!!!!! #desesperado.

    [ATUALIZANDO]
    É com grande prazer que venho editar este post. Durante esses dias, como relatei acima, tive sérios problemas para configurar 2 monitores no ubuntu. Mas tenho que agradecer a comunidade linux e em especial ao mactimes [@] freenode. Sinceramente? Uma pessoa dessas é puramente abençoada. Eu tive ajuda durante 2 dias até quase 3 horas da manhã. Finalmente, depois de MUITO TRABALHO e muitos reboots nós conseguimos ajustar os monitores =)

    Só para completar, o problema realmente era por minha falta de experiência. Além do que a nvidia é a melhor que da suporte a linux, já a ATI é muito fraca. Então só tenho a agradecer a toda a comunidade em que pode me ajudar.

    Como o mactimes disse, se a todo mundo ajudasse assim, o país seria melhor. Eu ainda acho que ficaria melhor escrito que “o mundo seria melhor”.

That’s all folks

ps: Pra quem não sabe, twitter: twitter.com/djalmaaraujo




Twitter

Assinem meu feed

Assine também via e-mail

del.icio.us

My Flickr

peteca.

Reunão de pauta na pianolab.

GUITARRA NEO

More Photos

Navegue