<?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.