5
Notícias Entretenimento Esportes Vídeos Rede Record E-mail (0) MEU CONTEÚDO / LOGIN / CADASTRE-SE Categorias (0) Meu conteúdo Apostilas Colabore Cursos Dicas Empresas Especiais Guia do Windows 8 (novo) Mais Oficina da Net » Artigos » Desenvolvimento » Programação » PHP Por: Henrique Martins Leal | Data: 19/07/2011 Olá pessoal, recentemente tive que fazer um sistema de login em codeigniter e resolvi disponiblizar aqui. É um sistema bem simples que utiliza: Banco de dados MySQL; Framework CodeIgniter; Geralmente utilizo a IDE Netbeans para programar em PHP; Veja que a tabela de registro de usuários é a mais simples possível CREATE TABLE IF NOT EXISTS `membership` ( `id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(32) NOT NULL, `password` varchar(32) NOT NULL, `status` tinyint(1) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1; Você pode adicionar mais dados na sua tabela, como nome, telefone, endereço essas coisas, mas o básico é isso ai * Não reparem mas gosto de todos os nome em ingles galera =) Model: membership_model.php Logo após isso precisamos criar um model com o nome membership_model.php dentro da pasta application/models com o seguinte conteúdo: <?php class Membership_model extends CI_Model { # VALIDA USUÁRIO function validate () { Sistema de Login em PHP com Codeigniter Olá pessoal, recentemente tive que fazer um sistema de login em codeigniter e resolvi disponiblizar aqui. É um sistema bem simples que utiliza: Banco de dados MySQL; Framework CodeIgniter; Geralmente utilizo a IDE Netbeans para programar em PHP; Siga-nos nas redes sociais » Novos Posts » 21:00 Cientistas usam DNA para armazenar dados 20:30 Nokia deu adeus ao Symbian 15:34 Google Imagens recebe nova interface 14:28 Buscapé anuncia serviços de cálculo de frete e compra rápida em seu ... 10:23 Nexus 7 já é vendido no Brasil... pelo triplo do preço Melhores em PHP » 17/10/2007 Colocando um formulário de contato em seu site, usando ... 03/09/2007 Montando Álbum de fotos em php 04/12/2007 Formulário de Email em PHP com resposta automática 12/08/2011 Criando um cadastro de cliente com PHP e MySQL 12/07/2008 PHP :: Enviando e-mail autenticado Siga os tópicos » Xbox 10 seguidores Mac OSX 11 seguidores Android 166 seguidores Foxconn 6 seguidores Kindle 4 seguidores Joomla 12 seguidores Workflows em SharePoint www.iteris.com.br A melhor equipe de desenvolvimento. Conte com a empresa mais capacitada Microsoft confirma: MSN vai acabar e usuários migrarão para o Skype em 15 de março DESTAQUE As informações foram úteis? Por favor, nos ajude com um +1 no Google, clique no botão abaixo: +11 Recomende isto no Google

Sistema de Login Em PHP Com Codeigniter

Embed Size (px)

Citation preview

Page 1: Sistema de Login Em PHP Com Codeigniter

Notícias Entretenimento Esportes Vídeos Rede Record E-mail

(0) MEU CONTEÚDO / LOGIN / CADASTRE-SE

Categorias (0) Meu conteúdo Apostilas Colabore Cursos Dicas Empresas Especiais Guia do Windows 8(novo)

Mais

Oficina da Net » Artigos » Desenvolvimento » Programação » PHP

Por: Henrique Martins Leal | Data: 19/07/2011

Olá pessoal, recentemente tive que fazer um sistema de login em codeigniter e resolvi disponiblizar

aqui. É um sistema bem simples que utiliza:

Banco de dados MySQL;

Framework CodeIgniter;

Geralmente utilizo a IDE Netbeans para programar em PHP;

Veja que a tabela de registro de usuários é a mais simples possível

CREATE TABLE IF NOT EXISTS membership (

id int(11) NOT NULL AUTO_INCREMENT,

username varchar(32) NOT NULL,

password varchar(32) NOT NULL,

status tinyint(1) NOT NULL,

PRIMARY KEY (id)

) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;

Você pode adicionar mais dados na sua tabela, como nome, telefone, endereço essas coisas, mas

o básico é isso ai

* Não reparem mas gosto de todos os nome em ingles galera =)

Model: membership_model.phpLogo após isso precisamos criar um model com o nome membership_model.php dentro da pasta

application/models com o seguinte conteúdo:

<?php

class Membership_model extends CI_Model {

# VALIDA USUÁRIO

function validate() {

Sistema de Login em PHP com CodeigniterOlá pessoal, recentemente tive que fazer um sistema de login em codeigniter e resolvi disponiblizaraqui. É um sistema bem simples que utiliza: Banco de dados MySQL; Framework CodeIgniter;Geralmente utilizo a IDE Netbeans para programar em PHP;

Siga-nos nas redes sociais »

Novos Posts »

21:00 Cientistas usam DNA para armazenardados

20:30 Nokia deu adeus ao Symbian

15:34 Google Imagens recebe nova interface

14:28 Buscapé anuncia serviços de cálculo defrete e compra rápida em seu ...

10:23 Nexus 7 já é vendido no Brasil... pelotriplo do preço

Melhores em PHP »

17/10/2007

Colocando um formulário decontato em seu site, usando ...

03/09/2007

Montando Álbum de fotos em php

04/12/2007

Formulário de Email em PHP comresposta automática

12/08/2011

Criando um cadastro de clientecom PHP e MySQL

12/07/2008

PHP :: Enviando e-mailautenticado

Siga os tópicos »

Xbox10 seguidores

Mac OSX11 seguidores

Android166seguidores

Foxconn6 seguidores

Kindle4 seguidores

Joomla12 seguidores

Workflows em SharePoint

www.iteris.com.br

A melhor equipe dedesenvolvimento. Conte com a

empresa mais capacitada

Microsoft confirma: MSN vai acabar e usuáriosmigrarão para o Skype em 15 de março

DESTAQUE

As informações foram úteis? Porfavor, nos ajude com um +1 noGoogle, clique no botão abaixo:

+11 Recomende isto no Google

Page 2: Sistema de Login Em PHP Com Codeigniter

$this->db->where('username', $this->input->post('username'));

$this->db->where('password', md5($this->input->post('password')));

$this->db->where('status', 1); // Verifica o status do usuário

$query = $this->db->get('membership');

if ($query->num_rows == 1) {

return true; // RETORNA VERDADEIRO

}

}

# VERIFICA SE O USUÁRIO ESTÁ LOGADO

function logged() {

$logged = $this->session->userdata('logged');

if (!isset($logged) || $logged != true) {

echo 'Voce nao tem permissao para entrar nessa pagina. <a href="http://www.oficinadanet.com.br/login">Efetuar Login</a>';

die();

}

}

}

Procurei colocar o mais comentado possível mas em resumo o método validate() valida retorna True

apenas se encontrar uma linha com username, password igual ao digitado no formulário e claro o

status ainda deve ser 1 para o usuário estar ativo.

Controller: login.phpBom agora para colocar a mão na massa devemos configurar algumas coisas no CodeIgniter. As

configurações do CodeIgniter ficam dentro da pasta application/config

- No arquivo autoload.php devemos chamar as libraries: 'database' e 'session'

Uma novidade do CodeIgniter 2.0 é que agora as sessões são criptografadas e precisamos de uma

chave de criptografica para colocar no arquivo config.php eu sempre uso uma string randomica

gerada pelo site: http://www.random.org/strings/

Exemplo:

// Seu arquivo config.php deve ficar mais ou menos assim

$config['encryption_key'] = 'ZgHFyY7pCu8LPWpFEeRs';

Então iremos criar uma pasta chamada admin dentro de application/controllers/login. No arquivo

routes.php dentro da pasta application/config/routes.php, vamos adicionar um controlador default

para para a pasta login:

// Adicionar a seguinte rota para url login

$route['login'] = 'login/login';

* Note que ja efetuo as validações para o campo username e password não sejam mandados em

branco.

<?php

if (!defined('BASEPATH'))

exit('No direct script access allowed');

class Login extends CI_Controller {

function __construct() {

parent::__construct();

}

Lulz Security8 seguidores

Wii3 seguidores

Mais comentados »

Você gostaria de trabalhar numlugar assim, tipo o Google? 5

A volta do Megaupload 5

Oracle cria correção para errograve do Java 4

Cursos Online Oficina da Net

MATRICULE-SE

por: R$ 80,00

Curso de PHPintermediário

3x de R$ 26,67

MATRICULE-SE

por: R$ 0,00

Curso de Vídeo Lightbox

3x de R$ 0,00

MATRICULE-SE

por: R$ 90,00

Curso de PHP

3x de R$ 30,00

Page 3: Sistema de Login Em PHP Com Codeigniter

function index() {

// VALIDATION RULES

$this->load->library('form_validation');

$this->form_validation->set_rules('username', 'Username', 'required');

$this->form_validation->set_rules('password', 'Password', 'required');

$this->form_validation->set_error_delimiters('<p class="error">', '</p>');

// MODELO MEMBERSHIP

$this->load->model('membership_model', 'membership');

$query = $this->membership->validate();

if ($this->form_validation->run() == FALSE) {

$this->load->view('login/login_view');

} else {

if ($query) { // VERIFICA LOGIN E SENHA

$data = array(

'username' => $this->input->post('username'),

'logged' => true

);

$this->session->set_userdata($data);

redirect('login/area_restrita');

} else {

redirect($this->index());

}

}

}

}

Views: login_view.php e area_restrita_view.phpDentro da pasta de views do Codeigniter iremos criar uma pasta como o nome de login também

para separar os arquivos do site dos arquivos da área de administração. Dentro dessa pasta

teremos um arquivo como o nome login_view.php que será o formulário de login e também é o

default da classe login então é o primeiro arquivo a ser chamado.

<!DOCTYPE html>

<html>

<head>

<title>Área Restrita</title>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<style type="text/css">

body {background: #FFF; font-family: Verdana; font-size: 9pt; }

#form_login { width: 500px; margin: 0 auto; padding: 20px; background: #F2F2F2; border: 1px solid #B7B7B7; }

label { display: block; margin-bottom: 0.3em; }

input[type=text], input[type=password] { border: 1px solid #666; display: block; margin-bottom: 1em; padding: 2px; width: 100%; }

input[type=text], input[type=password] { display: block; }

h1 { margin: 0 0 1em 0; text-align: center; }

.error { background: none repeat scroll 0 0 #FBE6F2; border: 1px solid #D893A1; padding: 5px; }

</style>

</head>

<body>

<h1>Tela de Login</h1>

<div id="form_login">

<?php echo validation_errors(); ?>

<?php

echo form_open();

echo form_label('Username', 'username');

echo form_input('username', '');

echo form_label('Password', 'password');

echo form_password('password', '');

echo form_submit('submit', 'Entrar no sistema');

?>

<?php form_close(); ?>

</div>

</body>

Page 4: Sistema de Login Em PHP Com Codeigniter

Henrique Martins Leal / Apaixonado por web, linux, software livre e metodologias ágeis, PHP/CodeIgniter ePython/Django. Acadêmico de sist. de informação e webdeveloper /

</html>

Notem que esse é um formulário de login bem simples coloquei um pouquinho de CSS pra não ficar

tão feio assim. Bom esse se você configurou tudo certinho agora quando você efetuar um login no

site ele irá redirecionar você para o controlador area_restrita.php que chama a view

area_restrita_view.php. No controlador devemos colocar uma proteção para caso alguém saiba a url

em questão não possa visualizar o conteúdo e seja redirecionada para outro lugar.

Controlador: area_restrita.php

<?php

if (!defined('BASEPATH'))

exit('No direct script access allowed');

class Area_restrita extends CI_Controller {

function __construct() {

parent::__construct();

$this->load->model('membership_model', 'membership');

$this->membership->logged();

}

public function index() {

$this->load->view('login/area_restrita_view');

}

}

Bom aqui é simples no construtor da classe chamamos o model membership e usamos o método

logged() que verifica a sessão e permite ou não o a execução desse controlador. Só falta agora a

area_restrita_view().

View: area_restrita_view

<!DOCTYPE html>

<html>

<head>

<title>Área Restrita</title>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

</head>

<body>

<h1>Área Restrita</h1>

</body>

</html>

Nesse ponto se tudo deu certo você pode criar a área de administração para o seu site =). Esse é

mais um tutorial pra quem já sabe programar e tem um médio conhecimento de #Codeigniter, não

foi explicado conceitos sobre como funciona #MVC nem sobre a estrutura do #Codeigniter, mas dá

pra se virar bem ;)

Abraços

Mais sobre: php, programação, codeigniter

Page 5: Sistema de Login Em PHP Com Codeigniter

Tópicos em destaque

Apostilas grátis, Baixar músicas da internet, Concurso Correios 2013, Fluxograma, MSN para Skype

Copyright 2012 Oficina da Net. Todos os direitos reservados. Anuncie Contato Equipe Sobre Envie sua pauta

FOLLOW:

Guia doPHPSEGUIR

63 seguidores

COMPARTILHE:

SeguirSeguir

Curtir 9

11

VOCÊ PODE GOSTAR DESTES POSTS RELACIONADOS:

Colocando umformulário de contatoem seu site, usando o...

Montando Álbum defotos em php

Formulário de Email emPHP com respostaautomática

Criando um cadastro decliente com PHP eMySQL

0 COMENTÁRIO (COMENTE VOCÊ TAMBÉM)

É necessário login para comentar. Faça login com: OFICINA DA NET ou

Postar no Facebook

ShareShare

Atari pede falência nos EUAAtari pede falência nos EUA Intel anuncia abandono daIntel anuncia abandono da

fabricação de placas-mãefabricação de placas-mãePerigo na rede: aprenda aPerigo na rede: aprenda a

identificar ameaças virtuaisidentificar ameaças virtuais

e proteger-see proteger-se

Migrar para o Windows 8Migrar para o Windows 8

ficará mais caro emficará mais caro em

fevereirofevereiro

Cientistas usam DNA paraCientistas usam DNA para

armazenar dadosarmazenar dados