Gostaria de deixar entendido que não é minha intenção utilizar métodos complexos, programação PHP de nível intermediário/avançado, tento apenas passar o conhecimento básico para a construção de um simples sistema de cadastro e login utilizando sessions e banco de dados MySQL e md5() para senhas, onde também será possível atribuir diferentes níveis de acesso à páginas restritas e a possibilidade do usuário solicitar a criação de nova senha quando esta se perde ou é esquecida.
Obs.: Não aconselho a utilizar o método “Copiar/Colar” com os códigos aqui apresentados e sim digita-los, linha por linha com muita atenção, assim o aproveitamento será bem maior, porém se alguém quiser os arquivos para abrir em seu editor, os mesmos estão compactados em pasta .zip no final deste tutorial.
Trabalharemos com os seguintes arquivos:
- bancodedados.sql
- config.php
- formulario_cadastro.php
- cadastrar.php
- ativar.php
- formulario_login.html
- verifica_usuario.php
- area_restrita.php
- functions.php
- logout.php
- formulario_senha_perdida.php
- gerar_nova_senha.php
Vamos ao tutorial! Tomo por início que você já tenha um banco de dados MySQL disponível, passamos então para criação da tabela necessária para o armazenamento dos dados referente aos usuários. Eu utilizei o gerenciador SQL phpMyAdmin, digitando e executando o código abaixo no campo de consulta SQL do gerenciador.
bancodedados.sql
CREATE TABLE usuarios( usuario_id int(5) NOT NULL auto_increment, nome varchar(50) NOT NULL default '', sobrenome varchar(50) NOT NULL default '', email varchar(100) NOT NULL default '', usuario varchar(32) NOT NULL default '', senha varchar(32) NOT NULL default '', info text NOT NULL, nivel_usuario enum('0','1','2') NOT NULL default '0', data_cadastro datetime NOT NULL default '0000-00-00 00:00:00', data_ultimo_login datetime NOT NULL default '0000-00-00 00:00:00', ativado enum('0','1') NOT NULL default '0', PRIMARY KEY (usuario_id) ) ENGINE = MYISAM CHARACTER SET latin1 COLLATE latin1_general_ci COMMENT = '';
Agora criaremos o arquivo de conexão com o banco de dados. config.php
<?php define('BD_USER', 'usuário de banco de dados'); define('BD_PASS', 'senha do banco de dados'); define('BD_NAME', 'nome do seu banco de dados'); mysql_connect('localhost', BD_USER, BD_PASS); mysql_select_db(BD_NAME); ?>
O próximo passo é montarmos nosso formulário de cadastro que irá popular a tabela que criamos mais acima.
formulario_cadastro.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Formulário Cadastro</title> </head> <body> <form name="cadastro" method="post" action="cadastrar.php"> Nome <input name="nome" type="text" id="nome" value="<?php echo $nome; ?>" /><br /> Sobrenome <input name="sobrenome" type="text" id="sobrenome" value="<?php echo $sobrenome; ?>" /><br /> Email <input name="email" type="text" id="email" value="<?php echo $email; ?>" /><br /> Nome de Usuário <input name="usuario" type="text" id="usuario" value="<?php echo $usuario; ?>" /><br /> + informações sobre você <textarea name="info" id="info"><?php echo $info; ?></textarea> <br /> <input type="submit" name="Submit" value="Enviar" /> <br /> </form> </body> </html>
De nada adianta este formulário se não tivermos o arquivo que recebe os dados enviados, o arquivo responsável por este recebimento será o que vamos ver mais abaixo. cadastrar.php
<?php include "config.php"; $nome = trim($_POST['nome']); $sobrenome = trim($_POST['sobrenome']); $email = trim($_POST['email']); $usuario = trim($_POST['usuario']); $info = trim($_POST['info']); /* Vamos checar algum erro nos campos */ if ((!$nome) || (!$sobrenome) || (!$email) || (!$usuario)){ echo "ERRO: <br /><br />"; if (!$nome){ echo "Nome é requerido.<br />"; } if (!$sobrenome){ echo "Sobrenome é requerido.<br /> <br />"; } if (!$email){ echo "Email é um campo requerido.<br /><br />"; } if (!$usuario){ echo "Nome de Usuário é requerido.<br /><br />"; } echo "Preencha os campos abaixo: <br /><br />"; include "formulario_cadastro.php"; }else{ /* Vamos checar se o nome de Usuário escolhido e/ou Email já existem no banco de dados */ $sql_email_check = mysql_query( "SELECT COUNT(usuario_id) FROM usuarios WHERE email='{$email}'" ); $sql_usuario_check = mysql_query( "SELECT COUNT(usuario_id) FROM usuarios WHERE usuario='{$usuario}'" ); $eReg = mysql_fetch_array($sql_email_check); $uReg = mysql_fetch_array($sql_usuario_check); $email_check = $eReg[0]; $usuario_check = $uReg[0]; if (($email_check > 0) || ($usuario_check > 0)){ echo "<strong>ERRO</strong>: <br /><br />"; if ($email_check > 0){ echo "Este email já está sendo utilizado.<br /><br />"; unset($email); } if ($usuario_check > 0){ echo "Este nome de usuário já está sendo utilizado.<br /><br />"; unset($usuario); } include "formulario_cadastro.php"; }else{ /* Se passarmos por esta verificação ilesos é hora de finalmente cadastrar os dados. Vamos utilizar uma função para gerar a senha de forma randômica*/ function makeRandomPassword(){ $salt = "abchefghjkmnpqrstuvwxyz0123456789"; srand((double)microtime()*1000000); $i = 0; while ($i <= 7){ $num = rand() % 33; $tmp = substr($salt, $num, 1); $pass = $pass . $tmp; $i++; } return $pass; } $senha_randomica = makeRandomPassword(); $senha = md5($senha_randomica); // Inserindo os dados no banco de dados $info = htmlspecialchars($info); $sql = mysql_query( "INSERT INTO usuarios (nome, sobrenome, email, usuario, senha, info, data_cadastro) VALUES ('$nome', '$sobrenome', '$email', '$usuario', '$senha', '$info', now())") or die( mysql_error() ); if (!$sql){ echo "Ocorreu um erro ao criar sua conta, entre em contato."; }else{ $usuario_id = mysql_insert_id(); // Enviar um email ao usuário para confirmação e ativar o cadastro! $headers = "MIME-Version: 1.0\n"; $headers .= "Content-type: text/html; charset=iso-8859-1\n"; $headers .= "From: Teu Domínio - Webmaster<email@teusite.com.br>"; $subject = "Confirmação de cadastro - teusite.com.br"; $mensagem = "Prezado {$nome} {$sobrenome},<br /> Obrigado pelo seu cadastro em nosso site, <a href='http://www.teusite.com.br'> http://www.teusite.com.br</a>!<br /> <br /> Para confirmar seu cadastro e ativar sua conta em nosso site, podendo acessar à áreas exclusivas, por favor clique no link abaixo ou copie e cole na barra de endereço do seu navegador.<br /> <br /> <a href='http://www.teusite.com.br/ativar.php?id={$usuario_id}&code={$senha}'> http://www.teusite.com.br/ativar.php?id={$usuario_id}&code={$senha} </a> <br /> <br /> Após a ativação de sua conta, você poderá ter acesso ao conteúdo exclusivo efetuado o login com os seguintes dados abaixo:<br > <br /> <strong>Usuario</strong>: {$usuario}<br /> <strong>Senha</strong>: {$senha_randomica}<br /> <br /> Obrigado!<br /> <br /> Webmaster<br /> <br /> <br /> Esta é uma mensagem automática, por favor não responda!"; mail($email, $subject, $mensagem, $headers); echo "Foi enviado para seu email - ( ".$email." ) um pedido de confirmação de cadastro, por favor verifique e sigas as instruções!"; } } } ?>
Como podemos ver no arquivo acima, ao cadastrar-se, automaticamente é enviado uma mensagem de confirmação de cadastro para a conta de email que o usuário digitou no formulário de cadastro, esta mensagem conterá instruções de como proceder. Através de um link nesta mensagem ele executará um arquivo que ativa definitivamente sua conta e só a partir desta ativação que o membro poderá acessar a área restrita. ativar.php
<?php include "config.php"; $usuario_id = $_REQUEST['id']; $senha = $_REQUEST['code']; $sql = mysql_query( "UPDATE usuarios SET ativado='1' WHERE usuario_id='{$usuario_id}' AND senha='{$senha}'" ); $sql_doublecheck = mysql_query( "SELECT * FROM usuarios WHERE usuario_id='{$usuario_id}' AND senha='{$senha}' AND ativado='1'" ); $doublecheck = mysql_num_rows($sql_doublecheck); if ($doublecheck == 0){ echo "<strong>Sua conta não pode ser ativada!</strong>"; }elseif ($doublecheck > 0){ echo "<strong>Seu cadastro foi ativado com sucesso!</strong><br /> Você pode fazer o login logo abaixo!<br /><br />"; include "formulario_login.html"; } ?>
Já estamos cadastrando usuários e ativando suas contas corretamente e sem problemas, mas para que cadastrar um usuário se pelo menos não dermos alguns privilégios para este membro? Fazemos assim então, ao efetuar o login o usuário cadastrado terá acesso à uma área restrita, mas para isso precisamos de um formulário de login simples, então vamos lá. formulario_login.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Login</title> </head> <body> Login <br /><br /> <form action="verifica_usuario.php" method="post" name="" id=""> Usuário<br /> <input name="usuario" type="text" id="usuario" /><br /> Senha<br /> <input name="senha" type="password" id="senha" /><br /><br /> <input type="submit" name="Submit" value="Enviar" / > </form> </body> </html>
Não adianta disponibilizar um formulário de login se não tivermos um arquivo para receber os dados enviados e efetuar uma verificação se realmente são dados de um usuário cadastrado ou alguém tentando logar sem as devidas permissões, então continuamos. verifica_usuario.php
<?php session_start(); // Inicia a session include "config.php"; $usuario = $_POST['usuario']; $senha = $_POST['senha']; if ((!$usuario) || (!$senha)){ echo "Por favor, todos campos devem ser preenchidos! <br /><br />"; include "formulario_login.html"; }else{ $senha = md5($senha); $sql = mysql_query( "SELECT * FROM usuarios WHERE usuario='{$usuario}' AND senha='{$senha}' AND ativado='1'" ); $login_check = mysql_num_rows($sql); if ($login_check > 0){ while ($row = mysql_fetch_array($sql)){ foreach ($row AS $key => $val){ $$key = stripslashes( $val ); } $_SESSION['usuario_id'] = $usuario_id; $_SESSION['nome'] = $nome; $_SESSION['sobrenome'] = $sobrenome; $_SESSION['email'] = $email; $_SESSION['nivel_usuario'] = $nivel_usuario; mysql_query( "UPDATE usuarios SET data_ultimo_login = now() WHERE usuario_id ='{$usuario_id}'" ); header("Location: area_restrita.php"); } }else{ echo "Você não pode logar-se! Este usuário e/ou senha não são válidos!<br /> Por favor tente novamente!<br />"; include "formulario_login.html"; } } ?>
Percebemos acima que caso o usuário não esteja cadastrado no banco de dados ou caso ele insira dados errados nos campos do formulário de login, ele não consegue entrar na área restrita, mas conseguir validar terá acesso à tão desejada área restrita. Vamos então fazer um arquivo de exemplo que representará uma página de acesso restrito. area_restrita.php
<?php session_start(); // Inicia a session include "functions.php"; // arquivo de funções. session_checker(); // chama a função que verifica se a session iniciada da acesso à página. echo "Bem vindo <strong>". $_SESSION['nome'] ." ". $_SESSION['sobrenome'] ."</strong>!<br /> Você está acessando área restrita para usuários cadastrados! <br /><br />"; echo "Seu nível de usuário é <strong>". $_SESSION['nivel_usuario']."</strong>. <br />Com esse nível, você tem permisão de acesso às seguintes áreas: <br /><br />"; if ($_SESSION['nivel_usuario'] == 0){ echo "- <strong>Forum</strong><br />Abrir tópicos, postar em tópicos de terceiros.<br /><br />"; } if ($_SESSION['nivel_usuario'] == 1){ echo "- <strong>Forum</strong><br />Administração - Acesso total <br /><br />"; } /* Não colocarei representações para outros níveis de acesso, mas fica entendido que o limite de níveis de acesso quem define é você*/ echo "<a href=\"logout.php\">Sair</a>"; ?>
Neste arquivo acima eu mencionei mais dois arquivos que ainda não criamos. O primeiro arquivo conterá uma função de verificação como eu comentei no início do script acima. Vejamos ele. functions.php
<?php function session_checker(){ if (!isset($_SESSION['usuario_id'])){ header ("Location:formulario_login.html"); exit(); } } ?>
Ops! No arquivo exemplo que representa a área restrita, eu coloquei no final uma opção para sair desta área, sendo assim não posso faltar com minha palavra, por tanto vamos cria-la, assim sempre que o usuário sair utilizando esta opção só poderá acessar a área restrita se efetuar o login novamente. Acredito que não teremos problema algum em entender o funcionamento. logout.php
<?php session_start(); if (!isset($_REQUEST['logmeout'])){ echo "Você realmente deseja sair da área restrita?<br />"; echo "<a href=\"logout.php?logmeout\">Sim</a> | "; echo "<a href=\"javascript:history.go(-1)\">Não</a>"; }else{ session_destroy(); if (!session_is_registered('nome')){ echo "<strong>Você não está mais logado em nosso site!</strong>"; echo "<br /><br /><strong>Login:</strong><br /><br />"; include "formulario_login.html"; } } ?>
hummm, já ia me esquecendo, como vamos disponibilizar uma opção para gerar nova senha, onde seria o melhor lugar para colocarmos um link para chamar o arquivo que dará início da criação de uma nova senha se não no próprio arquivo .html que utilizamos para efetuar o login. Então que tal colocarmos abaixo do formulário de login? Façamos o seguinte então, adicione essas linhas logo abaixo no arquivo formulario_login.html bem abaixo do botão Enviar:
<br /><a href="formulario_senha_perdida.html" >- Não lembra a sua senha?</a>
Quase no final, agora resta apenas criarmos o formulário para requisição de nova senha para os casos de esquecimento ou perda que será chamado pelo link que criamos acima e também o arquivo que recebe os dados e envia a nova senha para o email cadastrado do usuário. Vamos lá então! formulario_senha_perdida.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Formulário Nova Senha</title> </head> <body> <form name="form1" method="post" action=""> Por favor digite o seu email que está cadastrado em nosso banco de dados;<br /> <input name="email" type="text" id="email" /> <input name="recupera" type="hidden" id="recupera" value="recupera" /> <input type="submit" name="Submit" value="Gerar Senha" /> </form> </body> </html>
Para completar, o arquivo responsável em receber os dados do formulário acima, onde baseando-se em uma verificação de resultado afirmativo da existência deste email no banco de dados passa a gerar uma nova senha e envia-la para o mesmo email cadastrado, caso o email não exista, não precisa nem dizer o que acontece, sendo assim vamos ao que interessa. gerar_nova_senha.php
<?php include "config.php"; $recupera = $_POST['recupera']; $email = $_POST['email']; switch ($recupera){ case "recupera" : recupera_senha($email); break; default : include "formulario_senha_perdida.html"; break; } function recupera_senha($email){ if (!isset($email)){ echo "Você esqueceu de preencher seu email.<br /> <strong>Use o mesmo email que utilizou em seu cadastro.</strong><br /><br />"; include "formulario_senha_perdida.html"; exit(); } // Checando se o email informado está cadastrado $sql_check = mysql_query("SELECT * FROM usuarios WHERE email='{$email}'"); $sql_check_num = mysql_num_rows($sql_check); if ($sql_check_num == 0){ echo "Este email não está cadastrado em nosso banco de dados.<br /><br />"; include "formulario_senha_perdida.html"; exit(); } // Se tudo OK vamos gerar uma nova senha e enviar para o email do usuário! function makeRandomPassword(){ $salt = "abchefghjkmnpqrstuvwxyz0123456789"; srand((double)microtime()*1000000); $i = 0; while ($i <= 7){ $num = rand() % 33; $tmp = substr($salt, $num, 1); $pass = $pass . $tmp; $i++; } return $pass; } $senha_randomica = makeRandomPassword(); $senha = md5($senha_randomica); $sql = mysql_query( "UPDATE usuarios SET senha='{$senha}' WHERE email ='{$email}'" ); $headers = "MIME-Version: 1.0\n"; $headers .= "Content-type: text/html; charset=iso-8859-1\n"; $headers .= "From: Teu Domínio - Webmaster<email@teusite.com.br>"; $subject = "Sua nova senha em teusite.com.br"; $message = "Olá, redefinimos sua senha.<br /><br /> <strong>Nova Senha</strong>: {$senha_randomica}<br /><br /> <a href='http://www.teusite.com/formulario_login.html'> http://www.teusite.com/formulario_login.html </a><br /><br /> Obrigado!<br /><br /> Webmaster<br /><br /><br /> Esta é uma mensagem automática, por favor não responda!"; mail($email, $subject, $message, $headers); echo "Sua nova senha foi gerada com sucesso e enviada para o seu email!<br /> Por favor verifique seu email!<br /><br />"; include "formulario_login.html"; } ?>
Observação: Obviamente este tutorial é apresentado da forma simples e crua, onde a intenção é ajudar os iniciantes em PHP, porém há formas mais requintadas de tratar os dados aqui trabalhados e não gostaria de colocar em questão isso, pois como disse o objetivo é apresentar uma forma simples para quem ainda tenha pouco contato com PHP e gostaria de entrar nesse mundo.
Baixar os arquivos desse tutorial
Fonte: Sistema Básico
Gostaria de saber se o sistema funciona em plataforma windows, se funcona quais as auterações ,desde já obrigado
Olá Roberto.
Esse script foi escrito em PHP, portanto ele roda perfeitamente em servidores Apache com PHP.
O sistema está rodando perfeitamente, porém a senha não é enviada para o e-mail.
Olá Daniel,
Alguma coisa no código foi digitado errado, ou deve algum problema com email.
Testamos esse scrip tantes de publicar.
perfeito! Parabéns!
algo de errado com o arquivo.sql
da erro ao importar
esse script funciona direto do meu servidor web…
aguardo
Boa Noite Fabio, estou querendo criar uma área restrita onde cada cliente tem sua página individual.
Você poderia me ajudar !
Um abraço
Olá Roberto, desculpe a demora em responder.
Ainda precisa de ajuda?
Nos coments deste meu tutorial, no site oficial, http://www.sistemabasico.com.br/2007/12/07/tutorial-php-sistema-cadastro-usuarios-login-sessions/ , pode ser encontrado muito material, que acredito, irão tirar muitas dúvidas corriqueiras, como não chegar email, não logar com a senha e usuário, entre outros.
Obrigado.
Fábio,
Bom Dia.
Usei seu programa porém apareceu este erro:
—
Seu cadastro foi ativado com sucesso!
Você pode fazer o login logo abaixo!
Warning: include(formulario_login.html) [function.include]: failed to open stream: No such file or directory in /home/boloacom/public_html/cadusuqrc/ativar.php on line 36
Warning: include(formulario_login.html) [function.include]: failed to open stream: No such file or directory in /home/boloacom/public_html/cadusuqrc/ativar.php on line 36
Warning: include() [function.include]: Failed opening ‘formulario_login.html’ for inclusion (include_path=’.:/usr/lib/php:/usr/local/lib/php’) in /home/boloacom/public_html/cadusuqrc/ativar.php on line 36
—
Fábio, onde posso ter errado?
Grato pela atenção,
Bernardo
Fábio,
Boa tarde,
Já resolvi. Foi um erro na extensão (HTML) e (HTM)
Grato,
Bernardo
Ok.
Olá estou enfrentando o mesmo problema! Você poderia me explicar por que este erro acontece? Grato.
agora como eu crio uma pagina para cada nivel de acesso?
Você pode trabalhar os níveis de acesso criando uma tabela no banco chamada niveis_de_acesso, para para cada página definir o nível que tem acesso. Você vincula o nível de acesso ao usuário, então o usuário só irá conseguir acessar as páginas pertencentes ao seu nível.
ola caro amigo ja algum tempo que ando a procura disto mas queria saber se isto depois da para adecionar ao server de perfect world pois algum tempo ke ando a procura de cadastro com confirmaçao de email… datas base que uso e msql 2000 server em colinux …
RESUMINDO: como e que eu faço para criar a data base e conectar o mysql ao colinux?
Assim quando o pessoal se cadastrar ira receber um email de confirmaçao ja a meses ke ando pesquisar isto mas continuo a zeros kkkkk
Olá Tiago, infelizmente essa não saberei responder pois ainda não fiz algo parecido.
Ficarei te devendo.,
ja agora o pograma que usastes para o tuturial e o wamp?,ou outro?
Geralmente uso XAMPP
Olá Fábio, bom sou meio leigo em PHP mas entendo algumas coisas tipo ctrl+c e ctrl+v do php, o que você tem aqui é quase 100% exatamente o que eu preciso, porém gostaria de saber se você pode explicar ou se tiver algum código já pronto para postar sobre como fazer para logar da seguinte forma. Vou tentar ser compreensível… É o seguinte: Todo código exatamente como este, onde a pessoa cadastra certo? certo! faz login certo? certo! mas na parte do login além de levar a pessoa para um painel restrito, os dados sejam exibidos no lugar do form onde ela fez o login, intende? Tipo… quando a pessoa entra no site (index.php) lá esta o form de login, daí a pessoa efetua o login, mas então ela é direcionada exatamente para a index.php e seus dados são exibidos no lugar do form. Cara se você me ajudar, eu juro que eu pedirei a Deus pra te dar tudo que precisar, por quê eu preciso muuuuuito do código funcionando desta forma, desde já agradeço muuito cara.
Olá Lucas, desculpe a demora em te respoder, estava muito atarefado mesmo.
Nesse caso é simples, basta você fazer uma consulta no banco preenchendo os campos do form com o resultado da consulta usando echo do php.
Se estiver com dificuldade, passe os acesso para o email suporte@fabiobmed.com.br que estarei dando uma olhada.
Ola estou iniciando agora o desenvolvimento web, o problema e que ja programo a muito tempo em Delphi entao pra mim ta mais complicado.
Estou com o Netbeans 8.0 vc me indicaria uma outra IDE e outra coisa eu criei o projeto aqui estou compilando ai diz que nao achou o index, neste caso seria o formulario_login.html que seria o nosso index ou nao..
me desculpa as perguntas.
Olá Charbel,
O Netbeans 8.0 é a melhor opção e recomendo.
Tente renomear para index.php, acredito que assim irá funcionar.
Boa tarde já refiz todos os passos mas não estou conseguindo fazer com que o usuario recupere a senha. Quando clica em GERAR SENHA só limpa o campo ,mas não carrega pagina alguma, não chega nem a verificar no banco se o e-mail existe.
O que pode ser?
Obrigado
Olá Jonas, ó código foi testado e comprovado funcionamento.
Por favor, verifique se o código está ok.
estou com problemas em fazer login usando servidor interno. Ou seja, fazer o teste. Por exemplo, eu simulei um cadastro, mas tudo para por ai… ele não faz o login mesmo ativando o cadastro e dando um nível de permissão ao usuário. O que se passa?
Olá Marcio, no código retorna alguma mensagem de erro?
Amigo não to conseguindo configurar a config.php sempre da erro
Olá Vando, como faço para ver o seu código? Tem como enviar o link e os acesso?
Envie os dados para suporte@fabiobmed.com.br
Cara parabéns por este post e por seu site… tudo muito bem explicado e com qualidade… vc está de parabéns.. continue colocando conteúdos excelentes como este. =)
Obrigado pelo Feedback.
Quero fazer sistema área restrita.
Acesso liberado para 30 dias.
Apos isso sera direcionado para link para pagamento da mensalidade.
VC pode me ajudar.
Obrigado
Ola amigo! Muito bom seu script! Gostaria de que quando o usuário realizar login ele va para uma pagina restrita onde ele possa ver e manipular seus dados! Pode me dar uma dica? obrigada
Olá,
Você precisa desenvolver essa tela de atualização dos dados cadastrais do aluno, e no login, criar um redirecionamento para essa pagina (tipo “header location”).
Oi, esta dando erro na parte de include da functions sabe o que pode ser? outra duvida mesmo estando em servidor local, eu consigo receber a senha por email?
o meu esta com muito erro eu sou iniciante olha o erro no cadastro
( ! ) Notice: Undefined index: nome in C:\wamp\www\artemidias\cadastrar.php on line 5
Call Stack
# Time Memory Function Location
1 0.0015 394488 {main}( ) ..\cadastrar.php:0
( ! ) Notice: Undefined index: sobrenome in C:\wamp\www\artemidias\cadastrar.php on line 6
Call Stack
# Time Memory Function Location
1 0.0015 394488 {main}( ) ..\cadastrar.php:0
( ! ) Notice: Undefined index: email in C:\wamp\www\artemidias\cadastrar.php on line 7
Call Stack
# Time Memory Function Location
1 0.0015 394488 {main}( ) ..\cadastrar.php:0
( ! ) Notice: Undefined index: usuario in C:\wamp\www\artemidias\cadastrar.php on line 8
Call Stack
# Time Memory Function Location
1 0.0015 394488 {main}( ) ..\cadastrar.php:0
( ! ) Notice: Undefined index: info in C:\wamp\www\artemidias\cadastrar.php on line 9
Call Stack
# Time Memory Function Location
1 0.0015 394488 {main}( ) ..\cadastrar.php:0
ERRO:
Nome é requerido.
Sobrenome é requerido.
Email é um campo requerido.
Nome de Usuário é requerido.
Preencha os campos abaixo:
Formulário de Cadastro
Nome
( ! ) Notice: Undefined index: nome in C:\wamp\www\artemidias\formulario_cadastro.php on line 18 Call Stack #TimeMemoryFunctionLocation 10.0015394488{main}( )..\cadastrar.php:0 20.0168406600include( ‘C:\wamp\www\artemidias\formulario_cadastro.php’ )..\cadastrar.php:43 ” />
Sobrenome
( ! ) Notice: Undefined index: sobrenome in C:\wamp\www\artemidias\formulario_cadastro.php on line 21 Call Stack #TimeMemoryFunctionLocation 10.0015394488{main}( )..\cadastrar.php:0 20.0168406600include( ‘C:\wamp\www\artemidias\formulario_cadastro.php’ )..\cadastrar.php:43 ” />
Email
( ! ) Notice: Undefined index: email in C:\wamp\www\artemidias\formulario_cadastro.php on line 24 Call Stack #TimeMemoryFunctionLocation 10.0015394488{main}( )..\cadastrar.php:0 20.0168406600include( ‘C:\wamp\www\artemidias\formulario_cadastro.php’ )..\cadastrar.php:43 ” />
Nome de Usuário
( ! ) Notice: Undefined index: usuario in C:\wamp\www\artemidias\formulario_cadastro.php on line 27 Call Stack #TimeMemoryFunctionLocation 10.0015394488{main}( )..\cadastrar.php:0 20.0168406600include( ‘C:\wamp\www\artemidias\formulario_cadastro.php’ )..\cadastrar.php:43 ” />
+ informações sobre você
“… tento apenas passar o conhecimento básico” Modesto, esse rapaz! Com um código desse, para quem entende um pouco de PHP, dá para fazer muita coisa… Ele não quebra um galho: derruba uma floresta inteira. Lucas, Parabéns mesmo. Você tem razão, PHP é muito vasto.
“… tento apenas passar o conhecimento básico” Quanta modéstia! Com um código desse, para quem entende um pouco de PHP, dá para fazer muita coisa… Ele não quebra um galho: derruba uma floresta inteira. Parabéns mesmo. Você tem razão, PHP é muito vasto.
Gostaria de saber se com esse sistema eu consigo definir onde o usuário pode fazer comentários em uma página e se sim como.
Grato!
Ola, muito bom esse script, mas nao estou conseguindo enviar para email sendo que tbm nao encontrei codigo para saida de email.
Obrigadooo! Funcionou. *-*
Gj, cara.
Gostaria de saber se é possível integrar este tutorial para envio de senha via sms.
Olá Carlos, embora nunca tenha tentado, acredito que sim.
Você irá precisar de um sistema que faz o envio, e então fazer a integração.
Legal, estou pensando em usar uma api de empresas de envio de SMS o que você acha?
Olá Carlos,
Acho ótimo,
Alias, se conseguir, comente aqui para a galera.
Fábio, tudo bem?
estou aprendendo session e segui esse modelo mas não consigo dar um echo com todos os campos da tabela…
Eu notei que a session $_SESSION[‘nome’] recebe o valor da variavel $nome porém nao vejo onde a variavel $nome recebe o valor do campo da tabela e acredito que por isso o meu echo $_SESSION[‘nome’]; nao mostra nada.
pode me ajudar?
Muito bom post, quebrou um galhão!
mas gostaria de mais uma informação, caso o e-mail de ativação por algum motivo não foi entregue ao usuário, existe a possibilidade de reenviar o e-mail para ativação do mesmo?
algum script parecido?
Obrigado!
Ola, recentemente baixei um script completo de loja virtual para meu site, e quero que o login da minha loja seja pago, tipo assim: quero que quando o cliente for cadastrar, o login dele para acesso as demais atividades no site seja liberado por mim (administrador) para eu ter o controle de quem pagou para eu liberar o acesso dele, voce tem um script de login que funcione assim? ou um script que eu possa incorporar no meu script de login? obrigado!
Olá Alex,
Não tenho esse script, mas acredito que possa encontra-lo na internet.
Trabalho bastante com WordPress, e sei que o WP tem plugins para controlar/liberar acesso pago, da uma pesquisada.
voce poderia fazer um sistema de login pra min nao consigo fazer
Cadastrei senha formato md5 , porem não consigo efetuar o login, apresenta o seguinte erro: Você não pode logar-se! Este usuário e/ou senha não são válidos!
Por favor tente novamente!
Login
Voda ta dando md5 na senha da pagina de login?
Parabéns por ajudar àqueles que estão iniciando em PHP. Fiz todos os procedimentos conforme descrito por você e talvez o erro pode ser meu. Ao fazer o cadastro, aparece a seguinte mensagem no formulário cadastrar.php
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /home/saudelegal/public_html/portal/clientes/cadastrar.php on line 63
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /home/saudelegal/public_html/portal/clientes/cadastrar.php on line 64
Notice: Undefined variable: pass in /home/saudelegal/public_html/portal/clientes/cadastrar.php on line 108
No database selected
No database selected = Provavelmente não informou a base de dados corretamente
mysql_fetch_array() = Deve ser um erro recorrente do erro acima.
Precisa verificar seu código e ser certificar que está correto a conexão com a base de dados.
Muito bom…pena que não pude me orientar com o conteúdo, pois meu trabalho é em java.
Mas obrigada.
Olá, este script está funcionando perfeitamente em meu site, obrigado por ajuda tão valiosa, porém só nao entendi como redirecionar cada nivel a uma determinada página, pode me orientar
Muito bom funcionou bem aqui adaptei para mssql
Perfeito!
Estou usando em meu site!
Obrigado por compartilhar!
Parabéns pelo Post, exatamente o que eu estava procurando.
Obrigado