Jump to content


Photo

Tutorial - Cadastro De Usuários Completo


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

#16 incrivelbr

incrivelbr

    Novato no fórum

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

Posted 19/09/2007, 20:49

Opa! To na área!
Fiquei fora pois tava configurando o sistema.
Aquele erro era erro na digitação. :wacko:
Cara, só q to com um outro probleminha, não estou conseguindo achar pelos métodos comuns.
Talvez seja o caso de abrir um tópico novo no forum.
Bom, o sistema no qual adicionei o seu programa, é um sistema de visualização de arquivos no formato PDF, em que o usuário cadastrado, de acordo com o seu nível, adiciona os arquivos para a visualização na Intranet da empresa e os editam conforme o caso. O problema é o seguinte: queria adicionar um nr código no nome do arquivo PDF que o usuário "upar". Por exemplo: arquivo.pdf -> 001_arquivo.pdf (sobe para o servidor com esse nome). A idéia é para que usuários não adicionem arquivos com mesmo nome e sobrescrevam um dos outros, entende?
Só queria uma luz. :lol:
Desde já agradeço!!! (y)

#17 Crab

Crab

    Da paz, mas preparado para Guerra

  • Ex-Admins
  • 2521 posts
  • Sexo:Masculino
  • Localidade:Florianópolis - SC
  • Interesses:Desenvolvimento Gráfico e Web.

Posted 19/09/2007, 21:51

Quanto ao erro de digitação que mencionaste foi erro de digitação seu neh?? :huh:
Pois no Tutorial acredito que esteja tudo OK... :blink:


Quanto a sua dúvida, não tem muito haver com o tutorial, te peço que abra um tópico sobre isso...
Mas antes de uma buscada no fórum de php que acredito que possa encontrar mais rápido a sua resposta.
Se não me engano tem muita coisa sobre isso...

(y) Até mais

#18 incrivelbr

incrivelbr

    Novato no fórum

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

Posted 19/09/2007, 22:13

Pode crer o erro foi na minha digitação do código! :rolleyes:

Pois é, já olhei o forum e encontrei funçoes que fazem quase o que quero, vou pesquisar mais.
Vou criar um tópico!
vlw.

#19 Crab

Crab

    Da paz, mas preparado para Guerra

  • Ex-Admins
  • 2521 posts
  • Sexo:Masculino
  • Localidade:Florianópolis - SC
  • Interesses:Desenvolvimento Gráfico e Web.

Posted 19/09/2007, 22:28

isso... se não achar o que está precisando para solucionar sua dúvida, abra um tópico...
se eu poder ajudar ajudarei.

(y) Até mais

#20 incrivelbr

incrivelbr

    Novato no fórum

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

Posted 21/09/2007, 14:46

Voltei!
To procurando ainda uma função para inserir um código ou a data no arquivo!
Olha só, vc sabe por onde anda o Sistema Galeria Viva?

#21 Crab

Crab

    Da paz, mas preparado para Guerra

  • Ex-Admins
  • 2521 posts
  • Sexo:Masculino
  • Localidade:Florianópolis - SC
  • Interesses:Desenvolvimento Gráfico e Web.

Posted 21/09/2007, 15:37

:blink:

Data ??

no tutorial ensina como gravar a data no banco de dados... depois é só trazer em uma consulta ao mesmo ...

... de uma olhada com mais atenção.

(y)

Quanto ao tópico de scripts prontos deve estar na seção de scripts prontos em php ou na linguagem que esta galeria que vc fala, foi feito.

(y) Até mais

#22 incrivelbr

incrivelbr

    Novato no fórum

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

Posted 22/09/2007, 12:47

Vlw! Olhei com mais atenção! Sabe, é muita coisa para administrar que acabei não percebendo que no código tem como enviar data!
Já adaptei e funcionou!

#23 Crab

Crab

    Da paz, mas preparado para Guerra

  • Ex-Admins
  • 2521 posts
  • Sexo:Masculino
  • Localidade:Florianópolis - SC
  • Interesses:Desenvolvimento Gráfico e Web.

Posted 23/06/2008, 01:37

Adicionado melhorias na visualização do tutorial:

- Utilização na apresentação do tutorial SyntaxHighlighter para dar maior visibilidade no código, ajudando nos estudos.
- Mudança de endereço

Em breve versão II com maiores otimizações no cod

(y)Até mais

#24 knoxville

knoxville

    Backdoor Man

  • Usuários
  • 951 posts
  • Sexo:Masculino
  • Localidade:Itajaí - SC

Posted 29/12/2008, 13:34

Ok, enquanto aguardamos a versão II, segue um breve tutorial de um "+" que eu fiz para este sistema, dando a possibilidade do usuário mudar a sua senha!
Esta função funciona da seguinte forma: usuário digita a senha antiga (pra ter uma segurança de que não é qualquer pessoa tentando trocar a senha) [1] e 2x a senha nova para não ter erro de digitação [2].

1) guardei em uma sessão (verifica_usuario.php) a senha criptografada do usuário, para fazer a verificação [1]
arquivo comentado:
<?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;
			$_SESSION['senhapramudanca'] = $senha; // aqui ele guarda a senha (criptografada) numa sessão para ser recuperada depois mais facilmente
		
			mysql_query("UPDATE usuarios SET data_ultimo_login = now() WHERE usuario_id ='{$usuario_id}'");

			header("Location: area_restrita.php");

		}

	}
	else{

		echo "Voc&ecirc; n&atilde;o pode logar-se! Este usu&aacute;rio e/ou senha n&atilde;o s&atilde;o v&aacute;lidos!<br />
			Por favor tente novamente!<br />";

		include "formulario_login.html";

	}
}

?>
*obs: guardar esta informação em uma session não é a forma mais segura de fazer isto, porém para um sistema bem simples que é o que queremos, é a forma mais fácil e "rápida" que eu achei pois não precisaremos abrir o BD mais de 1x ao fazer a mudança.

2) página de formulário das senhas. formulario_trocasenha.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>Troca de senha</title>
</head>

<body>

<form action="trocasenha.php" method="post">

Senha antiga<br />
<input name="senhavelha" type="password" id="usuario" /><br />
Senha nova<br />
<input name="senhanova1" type="password" id="senha" /><br />
Repetir senha nova<br />
<input name="senhanova2" type="password" id="senha" /><br /><br />

<input type="submit" name="Submit" value="Submit">

</form>

</body>
</html>
3) e agora o mais importante, fazer as verificações de se a senha que o usuário deu como antiga é a correta [1] e se as duas novas senhas coincidem [2], caso positivo, alteração no bd.
trocasenha.php comentado:
<?php

session_start();  // Inicia a session

include "config.php"; // inclui no code o arquivo que vai te conectar ao bd

$senhavelha = md5($_POST['senhavelha']); // grava na variavel senhavelha o que o user digitou no campo senhavelha
$senhanova1 = $_POST['senhanova1']; // grava na variavel senhanova1 o que o user digitou no campo senhanova1
$senhanova2 = $_POST['senhanova2']; // grava na variavel senhanova2 o que o user digitou no campo senhanova2

if((!$senhavelha) || (!$senhanova1) || (!$senhanova2)){ // verifica se o usuário digitou todos os 3 campos necessários, caso contrário dá a mensagem de erro e inclui o formulário novamente para ele redigitar

	echo "Por favor, todos campos devem ser preenchidos! <br /><br />";
	include "formulario_trocasenha.html";

}
else{
	
	$senhaantiga = $_SESSION['senhapramudanca']; // recupera a sessao salva no arquivo verifica_usuario.php salvando-a em uma variavel
	$novasenha = md5($senhanova1); // criptografa a nova senha desejada
	$usuario_id = $_SESSION['usuario_id']; // recupera da sessão o id do usuário cadastrado no BD

	if($senhavelha==$senhaantiga){ // verifica se a senha antiga é a mesma da digitada como sendo

		if ($senhanova1==$senhanova2) { // verifica se as 2 novas senhas digitadas estão iguais
		
			mysql_query("UPDATE usuarios SET senha='$novasenha' WHERE usuario_id='$usuario_id'"); // atualiza a senha no bd

			echo "Senha alterada com sucesso! Clique <a href=area_restrita.php>aqui</a> para voltar.";
			$_SESSION['senhapramudanca'] = $novasenha; // redefine o conteudo da sessao para a senha nova, para o caso do usuario querer mudar novamente
			
		} else { echo "As duas novas senhas não coincidem!"; } // erro caso não coincidam
		
	} else { echo "Senha antiga incorreta!"; } // erro caso o usuário tenha digitado a senha antiga incorreta

}

?>

acho que é isso

o code foi feito por mim e testado, qualquer problema favor avisar!
(y)
Crab, parabéns pelo code inicial!

Edição feita por: knoxville, 30/12/2008, 08:51.


#25 Crab

Crab

    Da paz, mas preparado para Guerra

  • Ex-Admins
  • 2521 posts
  • Sexo:Masculino
  • Localidade:Florianópolis - SC
  • Interesses:Desenvolvimento Gráfico e Web.

Posted 30/12/2008, 02:26

Legal sua iniciativa...
Espero que sirva de ajuda para quem procura tal opção.
Obrigado pela colaboração.

Agora nos detendo a lógica...

No meu tutorial a senha inicial, gerada no cadastro e recebida via email ... é randômica
Ainda no escopo do meu tutorial, caso o usuário perda a senha e utilize a opção de "Esqueci minha senha" conforme ensino no tutorial, ele receberá uma nova senha, pois não há como recuprar a anterior.

No teu mod aí em cima vc ensina a trocar a senha... mas se ele esquecer a senha antiga?

Então fica a sugestão para quem for utilizar esse mod, de sempre disponibilizar uma opção para gerar nova senha.
Assim é gerada uma nova senha e depois pode-se modifica-la caso necessite.

Eu acho a forma de gerar senha como coloquei no tutorial (randômica) mais segura, pois evita do usuário criar senhas fáceis como datas, 12345, etc...

Obrigado pela colaboração.

Abraço Até mais

#26 knoxville

knoxville

    Backdoor Man

  • Usuários
  • 951 posts
  • Sexo:Masculino
  • Localidade:Itajaí - SC

Posted 30/12/2008, 08:57

espero ter sido claro ao explicar o que cada linha faz.
pra quem se atentar bem vai ver que eu fiz meio por cima do seu code, Crab, algumas partes estão quase iguais como a parte que verifica se digitou todos os campos do formulário, espero que não tenha problema!

para quem viu o code antes dessa minha última "edição", possivelmente percebeu uma linha que eu tirei, essa linha eu havia colocado para testes, tenho o costume de colocar um echo antes de alterar o bd, imprimindo na tela todas as variaveis e sessions que eu vou usar, para ter a certeza de que está tudo certo. portanto, caso alguém tenha pego o code sem ler tudo e tentar entender, recomendo que tire a linha echo $usuario_id; pois aparecerá o id do usuário na página sem motivo!

sobre o que disse, concordo totalmente Crab, acho importantíssimo ou, diria até indispensável, esse sistema de "esqueci minha senha" em qualquer sistema de login!

valeu! (y)

#27 Crab

Crab

    Da paz, mas preparado para Guerra

  • Ex-Admins
  • 2521 posts
  • Sexo:Masculino
  • Localidade:Florianópolis - SC
  • Interesses:Desenvolvimento Gráfico e Web.

Posted 30/12/2008, 17:28

hehehe eu vi aquele echo no id ali mas esqueci de mencionar...

Bom vc perguntou se tem problema ter modificado ali...

Obviamente não... a idéia é essa... eu fiz um tutorial básico onde cada um que utiliza-lo pode adicionar ou retirar opções da forma que quiser.
No tutorial não vou executar tais modificações sugeridas, mas o tópico é para isso... onde quem modificar pode postar suas modificações caso desejar.

Eu mesmo utilizo este sistema e de forma bem modificada hehehehe...

No tuto ele está como básico, e quem acessar o link do tutorial vai ve-lo sempre assim e terá liberdade de modificar caso saiba como.

Essa é a idéia... aprender.

Eu não acrecentarei nada mais nele...
Ajudo quem me procura, na medida do possível, mas um sistema desses com alterações só se for uma versão 2 e com php5 já...

Mas isso só lá pra 2009 hehehe se Deus quiser.

Abraços Até mais

#28 babu

babu

    Novato no fórum

  • Usuários
  • 2 posts
  • Sexo:Não informado
  • Localidade:Salvador - BA - Brasil
  • Interesses:Fireworks<br />Dreamweaver<br />PHP

Posted 28/01/2009, 11:51

Crab, se eu quiser direcionar o usuário criado para uma página exclusiva dele tem como fazer isso utilizando o seu tutorial?

O script funciona perfeitamente, me ajudou bastante, ao contrário de alguns eu fiz o tutorial todo aprendi muito com ele, mas tenho esta dúvida ai.

email para contato: felipemacena@gmail.com


Até mais...
Felipe Macena

Admnistrador MXSTUDIO
www.mxstudio.com.br

#29 Crab

Crab

    Da paz, mas preparado para Guerra

  • Ex-Admins
  • 2521 posts
  • Sexo:Masculino
  • Localidade:Florianópolis - SC
  • Interesses:Desenvolvimento Gráfico e Web.

Posted 28/01/2009, 12:27

Sim babu, na verdade o tutorial já funciona assim :D

O arquivo.php ao qual ele é redirecionado após o login é o mesmo para todos, mas a informação que lá irá constar é exclusiva do usuário 'logado' se assim você quiser.

Você exibe informação baseado nos dados do usuário... digamos que vc tenha outras tabelas relacionadas com a tabela do cadastro pelo id do usuário... tudo que estiver relacionado, conteúdo, dados, etc poderá ser exibido neste arquivo.php ao qual ele foi direcionado

Você pode criar um painel de controle para este usuário ... onde o arquivo será o mesmo para todos, mas o conteúdo será os dados deste usuário... enfim... uma vez feito o cadastro é ilimitado as opções para implementar qualquer conteúdo aos usuários cadastrados.

(y) Até mais

#30 dvdpausini

dvdpausini

    Novato no fórum

  • Usuários
  • 10 posts
  • Sexo:Masculino
  • Localidade:SAMPA

Posted 04/02/2009, 02:50

Eu ainda nao comecei a testar o sistema no meu servidor mas ja queria saber antes de tudo se..

Tem como eu ter uma lista (uma pagina) com os emails cadastrados assim quando eu clica em determinado cadastro eu posso deixa-lo?
ATIVO, ALTERAR EMAIL, NICK e SENHA.

OBs: eu não manjo de PHP

Abçs e aguardo respostas


vlw

Edição feita por: dvdpausini, 04/02/2009, 02:52.





0 user(s) are reading this topic

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

IPB Skin By Virteq