<?php /* @Description: Tutorial criando sistema de cadastro @Author: Eduardo Stuart */ ?>
----------------------------------------------------------------------
- Sobre:
Simples sistema de cadastro, utiliza MySQL. Cadastro+Login de usuários. Sem painel de admin.
- Ajuda:
Para criar paginas protegidas basta incluir o arquivo de funcoes e chamar a funcao sessionExiste();
exemplo:
<?
//Inclui funcao
include("funcoes.php");
//Cria
$usuarios = new usuarios ;
//Chama funcao
$usuarios->sessionExiste();
?>
- Páginas que serão feitas:
1) cadastro.php
2) login.php
3) funcoes.php
5) painel.php
5) verifica.php
----------------------------------------------------------------------
1º Passo ) Criar a tabela (Na tabela utilizei os atributos: id,login,senha,email,data,hora/ Sendo que data e hora serão gravados no momento em que o usuário registrar)
CREATE TABLE `usuarios` ( `id` INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY, `login` VARCHAR(50) NOT NULL, `senha` VARCHAR(100) NOT NULL, `email` VARCHAR(200) NOT NULL, `hora` VARCHAR(10) DEFAULT '00:00:00' NOT NULL, `data` TINYINT(10) DEFAULT '00/00/0000' NOT NULL ) TYPE = MYISAM;
2ºPasso) Nosso formulário de cadastro (cadastro.php)
<a href="login.php">já sou cadastrado</a> <form id="frmcadastro" name="frmcadastro" method="post" action="verifica.php?acao=cadastrar"> Cadastro<br /> Login: <input name="login" type="text" id="login" /> <br /> Senha: <input name="senha" type="password" id="senha" /> <br /> E-mail <input name="email" type="text" id="email" /> <br /> <input type="submit" name="Submit" value="cadastrar" /> </form>
3ºPasso) Nossa página de login (login.php)
<a href="cadastro.php">não sou cadastrado</a> <form id="frmlogin" name="frmlogin" method="post" action="verifica.php?acao=logar"> Login: <input name="login" type="text" id="login" /> <br /> Senha: <input name="senha" type="text" id="senha" /> <br /> <input type="submit" name="Submit" value="logar" /> </form>
4ºPasso) Nossa página de funções (funcoes.php)
<?
/****************************************************
*@Arquivo de funcoes (funcoes.php)
*@Author: Eduardo Stuart
*@http://www.eduardostuart.com
****************************************************/
class conexao
{
//Declaracao de variaveis
var $hostdb = "localhost";
var $userdb = "root";//USUARIO
var $passdb = "";//SENHA
var $namedb = "banco"; //NOME DO BANCO
//Funcao: Conectar com banco
function conecta()
{
$conecta = mysql_connect($this->hostdb,$this->userdb,$this->passdb) or die(mysql_error());
mysql_select_db($this->namedb,$conecta)or die(mysql_error());
}
}
class usuarios extends conexao
{
//Declaracao de variaveis
var $table = "usuarios";//Nome da tabela de usuarios
//Funcao cria nova conexao com db
function criaConexao()
{
$conexao = new conexao;
$conexao->conecta();
}
//Funcao efetuar logout
function sair()
{
session_start();
if($_SESSION['login'] && $_SESSION['senha'])
session_destroy();
$this->exibeErro("login.php","Você não esta mais logado!");
}
//Funcao exibe mensagens de erro
function exibeErro($pagina,$mensagem)//Pagina que sera redirecionada e msg que sera exibida
{
if(!$mensagem){
header("Location: $pagina");
}else{
echo "<script language=\"Javascript\">window.location=\"".$pagina."\";alert('".$mensagem."');</script>";
exit;
}
}
//Funcao: Verificar se esta logado
function sessionExiste()
{
session_start();
if(!$_SESSION['login'] || !$_SESSION['senha'])
{
$this->exibeErro("login.php","Favor efetuar login");
exit;
}
}
//Funcao: Registar novo usuario
function cadastraNovo()
{
//Pega nome da tabela
$table = $this->table;
//Retira os espacoes e adiciona barras caso necessario
$login = trim(addslashes($_POST['login']));
$senha = trim(addslashes($_POST['senha']));
$email = trim(addslashes($_POST['email']));
//Verificacoes
if(!$login) $this->exibeErro("cadastro.php","Erro: preencha um login");
if(!$senha) $this->exibeErro("cadastro.php","Erro: preencha uma senha");
if(!$email) $this->exibeErro("cadastro.php","Erro: preencha um email");
//Cria conexao
$this->criaConexao();
$seleciona = mysql_query("SELECT login FROM $table WHERE login='$login'") or die(mysql_error());
if(mysql_num_rows($seleciona) > 0 ) // Existe?
{
$this->exibe("cadastro.php","Erro: login já existe\nPor favor escolha outro!");
exit;
}else{
//Pega data e hora atual
$data = date("d/m/Y");
$hora = date("H:i:s");
//Registra
$cadastra = mysql_query("INSERT INTO $table
(id,login,senha,email,data,hora)
VALUES
('','$login','$senha','$email','$data','$hora')
")or die(mysql_error());
if($cadastra)
$this->exibeErro("login.php","Cadastrado com sucesso!");
else
$this->exibeErro("cadastro.php","Erro ao cadastrar");
}//fecha else
}//fecha funcao de registro
//Funcao: efetuar login de usuarios
function logarUsuario()
{
//Pega nome da tabela
$table = $this->table;
//Add barras e retira espacos
$login = addslashes(trim($_POST['login']));
$senha = addslashes(trim($_POST['senha']));
//Verificacoes
if(!$login) $this->exibeErro("login.php","Preencha um login");
if(!$senha) $this->exibeErro("login.php","Preencha uma senha");
//Cria conexao
$this->criaConexao();
$seleciona = mysql_query("SELECT login,senha FROM $table");
if(mysql_num_rows($seleciona) > 0 )
{
//Pega os dados gravados no banco
$sql = mysql_query("SELECT login,senha FROM $table WHERE login='$login' AND senha='$senha'");
$dados = mysql_fetch_array($sql);
$loginGravado = $dados['login'];
$senhaGravada = $dados['senha'];
//Verificacoes
if($login==$loginGravado && $senha==$senhaGravada)
{
//Inicia e cria sessao
session_start();
$_SESSION['login']=$login;
$_SESSION['senha']=$senha;
$this->exibeErro("painel.php","Logado com sucesso!");
}else{
$this->exibeErro("login.php","Erro: Dados inválidos");
exit;
}
}else{
$this->exibeErro("login.php","Usuario não existe");
exit;
}
}//fecha funcao para logar
}
?>5ºPass) Arquivo que pega as ações (verifica.php)
<?php
//verifica.php
include("funcoes.php");//inclui o arquivo de funcoes
$usuarios = new usuarios;//Cria
switch($_GET['acao'])
{
case "logar": $usuarios->logarUsuario(); break;
case "cadastrar": $usuarios->cadastraNovo(); break;
case "sair": $usuarios->sair(); break;
}
?>6ºpasso) finalmente...o painel! (painel.php)
<?php
//Inclui funcao
include("funcoes.php");
//Cria
$usuarios = new usuarios;
//Chama funcao
$usuarios->sessionExiste();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "[url="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"]http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd[/url]">
<html xmlns="[url="http://www.w3.org/1999/xhtml"]http://www.w3.org/1999/xhtml[/url]">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>painel do usuario</title>
</head>
<a href="verifica.php?acao=sair">sair</a>
<body>
</body>
</html>
Edição feita por: pyro3x, 12/05/2007, 11:29.












