Gostei do tutorial

Sim
1
33%
Não
0
Sem votos
Excepcional!
2
67%
 
Total de votos: 3

  •  
     

Aprendendo a fazer um Sistema de Login - PHP e MySQL

Inicialmente vamos esquematizar o que queremos, e dividirimos isso em algumas partes:

Uma pagina que tenha o formulário de login e definir as variaveis para o Banco de dados.
Uma pagina em php que sirva de porta entre a pagina com o formulário e a pagina objetivo.
Uma "pagina objetivo" que só poderá ser acessada se o utilizador tiver passado pela pagina inicial do login.

Criando 1º parte :

Banco de dados

1º Precisamos criar nossa tabela:
essa tabela deve conter as colunas id,login e senha.
id: deve ser minha chave primária, ja que não existirá id's iguais na mesma tabela, e ela irá se auto incrementar, ou seja, sempre que for adicionado um login e senha novo, o id desse login e senha será o mesmo do anterior somando +1 .
login: deve ser uma String que suporte um limite aceitável de caracteres e não seja tão grande.
senha: deve ser uma String que suporte um limite aceitável de caracteres e não seja tão grande.

Código: Selecionar todos

CREATE TABLE `DATABASE`.`users` (
  `id` INT(5) NOT NULL AUTO_INCREMENT,
  `login` VARCHAR(45) NOT NULL,
  `senha` VARCHAR(45) NOT NULL,
  PRIMARY KEY (`id`));

Não esqueça de Substituir DATABASE pelo nome de sua Database...

2º Formulário de login.
Para criar nosso formulário, utilizaremos apenas HTML(apesar de ficar bem básico, pois eu mesmo utilizo html e jquery pra deixar tudo mais bonito).

Código: Selecionar todos


<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Documento sem título</title>
</head>
<body>
<form role="form" method="post" action="log.php">
	<div> 
    <label for="login">Login</label><input type="text" id="login" name="login">
    </div>
    <div>
	<label for="senha">Senha</label><input type="password" id="senha" name="senha">
	</div>
     <button type="submit">Entrar</button>
</form>
</body>
</html>


Criando a 2º parte:

Código: Selecionar todos


<?php
session_start(); /*iniciamos uma sessão para salvar os dados que serão criados nesse documento em uma sessão de navegador.*/
$login = $_POST['login']; /* irá pegar o dado digitado no formulario referente ao login. */
$senha = $_POST['senha']; /*irá pegar o dado digitado no formulário referente à senha.  */
$hostname = "localhost"; /* endereço do banco de dados,geralmente é localhost, somente se usa o IP do servidor, quando o arquivo php está externo ao servidor mysql e o banco de dados está configurado para aceitar remote acess. */
$database = "NOME_do_BANCO"; /*nome do banco de dados que estarão as tabelas. */
$sqlLogin = "LOGIN"; /* login para acessar o banco de dados */
$sqlSenha = "SENHA"; /* senha pra acessar o banco de dados */
$connect = mysql_connect($hostname, $sqlLogin, $sqlSenha ) or die("Sem conexão com o servidor"); /*isso executará uma conexão com o servidor mysql, utilizando o login e senha informado, se por acaso não der algum problema, ele mostrará essa mensagem. */ 
$select = mysql_select_db($database) or die("Banco de dados não existe ou conexão falha!"); /* depois de conectado com o login e senha informado, este codigo irá selecionar o banco de dados que estarão suas tabelas. */
$result = mysql_query("SELECT * FROM users WHERE login = '$login' AND senha= '$senha'");/*este codigo será responsável por selecionar na tabela users o login e senha que forem iguais a os digitados no formulario html. */
	if(mysql_num_rows ($result) > 0 ) { /*quando o $result consegue achar um login e senha na tabela, exatamente igual ao digitado no formulário, ele retornará 1, se não 0, ou seja , se a consulta der 1 (>0) ele fará tudo que está dendo deste if. */
		$_SESSION['login'] = $login; /*criará uma variável login dentro da sessão que conterá o login que foi digitado no formulário. */
		$_SESSION['senha'] = $senha; /*o mesmo só que pra senha... */
		header('location:teste.php'); /*redirecionará para a pagina objetivo que no meu caso é a teste.php (ja citada antes) */
	}else{/* se o retorno da consulta for 0 , ele não achou os valores iguais os da tabela, então não existe o login e senha ou não estão digitados corretamente. */
		unset ($_SESSION['login']);/*descria a variavel da sessão 'login'.*/ 
		unset ($_SESSION['senha']); /*o mesmo pra senha*/
		header('location:index.php'); /*retorna para a pagina que tinha o formulário, no meu caso é a index.php, mas pode ser mudada.*/
		  }

?>


Criando a 3º parte:

Nesta terceira parte iremos criar a pagina objetivo, ou seja, a pagina que receberá ou não os dados passados na primeira pagina e que só mostrará seu conteúdo para quem informou o login e senha e deu tudo certo.

Código: Selecionar todos


<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>testar o sistema</title>
</head> 
<body>
<?PHP /* iremos iniciar a sessão para recuperar os dados anteriores como ja expliquei */
session_start();
if ( !isset($_SESSION['login']) and !isset($_SESSION['senha']) ) { /* verifica que as variáveis realmente existem, e consequentemente  , se a sessão existe.*/
    session_destroy(); /*destroi a sessão que foi criada agora(já que não existia nenhuma criada anteriormente). */
    unset ($_SESSION['login']); /* apaga a variavel que armazenava o login dessa sessão*/
    unset ($_SESSION['senha']); /* apaga a variável que armazenava a senha nessa sessão */
    header('location:index.php'); /*já que a sessão nao havia sido criada antes, então o utilizador do site tentou ir direto na pagina objetivo, esse codigo redirecionará ele de volta para a pagina do formulário, no meu caso , a index.*/
}
?> 
bem vindo
</body>
</html>

essa mensagem "bem vindo" só aparecerá para quem realmente logou no formulário, então , esse codigo em php deverá ser incluido no body de todas as paginas que precisem de login para acessa-las.


Notas:
#tutorial feito por mim, qualquer duvida me envia um email: [email protected] .
#Estarei sempre postando tutoriais nessa area de WEB.(agradecimentos ao moderador "YuriAlessandro" que me chamou para fazer os tutoriais)
#dispensem os erros de português '-'
#se forem postar em outro fórum peçam minha permissão.
Última edição por Nargarath em 06 abr 2014 14:30, editado 1 vez no total.
 
Legal!

Chegou um para trocar umas ideias srrsr