Jump to content


Photo

( Tuto ) Sistema De Cadastro


  • Faça o login para participar
10 replies to this topic

#1 pyro3x

pyro3x

    E

  • Usuários
  • 201 posts
  • Sexo:Masculino

Posted 12/05/2007, 11:26

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


#2 William P.

William P.

    Novato no fórum

  • Usuários
  • 8 posts
  • Sexo:Não informado

Posted 12/05/2007, 15:35

Opa! Muito bom Eduardo! ;)

#3 zebmx

zebmx

    Novato no fórum

  • Usuários
  • 7 posts
  • Sexo:Masculino
  • Localidade:são paulo

Posted 04/06/2007, 03:16

Muito bom este sistema, Edu manda bem!
Parabéns...

http://www.eduardostuart.com/

#4 Edson Rodrigues

Edson Rodrigues

    Novato no fórum

  • Usuários
  • 6 posts
  • Sexo:Não informado

Posted 24/06/2007, 17:18

Muito bom este sistema, Edu manda bem!
Parabéns...

http://www.eduardostuart.com/

Olá eduardo,
estou tentando usar seu script, e esta dando um erro só....

Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /home/help/public_html/autentic/funcoes.php:162) in /home/help/public_html/autentic/funcoes.php on line 143

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /home/help/public_html/autentic/funcoes.php:162) in /home/help/public_html/autentic/funcoes.php on line 143


segue abaixo o código, se vc puder me ajudar por gentileza, te agradeço muito.

edsonrodrigues.pelotas@hotmail.com
Pelotas-RS

<?
/****************************************************
*@Arquivo de funcoes (funcoes.php)
*@Author: Eduardo Stuart
*@http://www.eduardostuart.com
****************************************************/
class conexao
{
//Declaracao de variaveis

var $hostdb = "localhost";
var $userdb = "hel";//USUARIO
var $passdb = "edson7";//SENHA
var $namedb = "help_au"; //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("index.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("index.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 sk15

sk15

    Super Veterano

  • Usuários
  • 2071 posts
  • Sexo:Masculino
  • Localidade:SP - SP

Posted 25/06/2007, 07:44

Bem Edson Rodrigues, pelo erro que está dando você deve ter deixado algum texto, valor ou até mesmo um simples espaço antes da função "session_start()", dai ele não consegue ser iniciada, veja se existe algum valor antes dela ou vc fez um include em algum lugar que possa ter afetado ela.

#6 pyro3x

pyro3x

    E

  • Usuários
  • 201 posts
  • Sexo:Masculino

Posted 10/08/2007, 15:23

Para facilitar a visualização do código PHP:

http://code.eduardos...c.php?s=eac8e9a

http://code.eduardos...c.php?s=c46cf40

http://code.eduardos...c.php?s=8ba6223


:click:

#7 nicacio

nicacio

    Novato no fórum

  • Usuários
  • 1 posts
  • Sexo:Não informado

Posted 31/08/2007, 12:14

AEw mano onde eu coloco a página para qual o visitante vai ser direcionado, concegui fazer o sistema de login, mas num sei onde coloco a página

#8 birivas

birivas

    Turista

  • Usuários
  • 31 posts
  • Sexo:Não informado

Posted 18/01/2008, 13:47

tem como inserir no formulario um campo foto e data para a mesma aparecer aniversariantes do dia com foto do usuário cadastrado. Se dá pra fazer isso vamos criar então. Fico disposto a tentar juntamente com todos, pois sou iniciante em php e isso é uma idéia que ira beneficiar muitos.

#9 tury

tury

    Novato no fórum

  • Usuários
  • 18 posts
  • Sexo:Não informado

Posted 13/02/2008, 10:37

Tipo olha so toda hora eu eu do login aparecer usuario logado so que logo depois aparece escrito ( Favor Logar )

aff que chato plis me ajudem


#10 Leonardo Pinheiro

Leonardo Pinheiro

    Novato no fórum

  • Usuários
  • 1 posts
  • Sexo:Não informado

Posted 25/04/2009, 19:33

ATENÇÃO PESSOAL: Não funciona em servidor local :x pelo menos eu usei o WAMP e o XAMPP e não funcionou (:
Mas mandei para o servidor do meu site e funcionou PERFEITAMENTE!
Você me ajudou muito

Edição feita por: Leonardo Pinheiro, 25/04/2009, 21:28.


#11 Guilherme Jucoski Fernandes

Guilherme Jucoski Fernandes

    Normal

  • Usuários
  • 64 posts
  • Sexo:Masculino

Posted 13/11/2009, 14:07

amigo estou com o seguinte problema na hora de logar!
Posted Image
Posted Image




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq