Note: Chào mừng bạn đến với Cntt-k3.com. Hãy Đăng ký thành viên hoặc Đăng nhập để có thể tham gia cùng Cntt-k3 nhá !

Você não está conectado. Conecte-se ou registre-se

[Tutorial] Como Fazer Cadastro e Login Seguros com Senha Criptografada.

Ver o tópico anterior Ver o tópico seguinte Ir em baixo  Mensagem [Página 1 de 1]

Eaí Galera, de boas?
Vou direto ao Assunto aqui, para ser breve.

Eu to aqui nesse tutorial para ensinar vocês a fazerem um sistema de Criptografia para senhas(para ficar mais difícil de roubarem).
Eu programo em PDO:: e PHP(Mesmas Linguagens, umas simples(PHP) e uma mais segura(PDO::)).

Vamos lá, eu para não perder tempo fiz um sistema de Login pelo DreamWeaver(Programa da Adobe).

O Código de login comum fica assim:

Código:

<?php
require_once('Connections/login2.php');
$usuarios = $_SESSION['MM_Username'];
?>

<?php

if($usuarios >= '1'){
 header("Location: index.php?p=perfil&u=".$usuarios);
}else{
?>

<?php require_once('Connections/login2.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
  if (PHP_VERSION < 6) {
    $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
  }

  $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

  switch ($theType) {
    case "text":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;    
    case "long":
    case "int":
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case "double":
      $theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
      break;
    case "date":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "defined":
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
      break;
  }
  return $theValue;
}
}

}
?>
<?php
// *** Validate request to login to this site.
if (!isset($_SESSION)) {
  session_start();
}

$loginFormAction = $_SERVER['PHP_SELF'];
if (isset($_GET['accesscheck'])) {
  $_SESSION['PrevUrl'] = $_GET['accesscheck'];
}

if (isset($_POST['login'])) {
  $loginUsername=$_POST['login'];
  $password=$_POST['senha'];
  $MM_fldUserAuthorization = "nivel";
  $MM_redirectLoginSuccess = "index.php";
  $MM_redirectLoginFailed = "index.php?p=error";
  $MM_redirecttoReferrer = false;
  mysql_select_db($database_login2, $login2);
  
  $LoginRS__query=sprintf("SELECT login, senha, nivel FROM usuarios WHERE login=%s AND senha=%s",
  GetSQLValueString($loginUsername, "text"), GetSQLValueString($password, "text"));
  
  $LoginRS = mysql_query($LoginRS__query, $login2) or die(mysql_error());
  $loginFoundUser = mysql_num_rows($LoginRS);
  if ($loginFoundUser) {
    
    $loginStrGroup  = mysql_result($LoginRS,0,'nivel');
    
 if (PHP_VERSION >= 5.1) {session_regenerate_id(true);} else {session_regenerate_id();}
    //declare two session variables and assign them
    $_SESSION['MM_Username'] = $loginUsername;
    $_SESSION['MM_UserGroup'] = $loginStrGroup;      

    if (isset($_SESSION['PrevUrl']) && false) {
      $MM_redirectLoginSuccess = $_SESSION['PrevUrl'];
    }
    header("Location: " . $MM_redirectLoginSuccess );
  }
  else {
    header("Location: ". $MM_redirectLoginFailed );
  }
}
?>

Nesse código vamos procurar pelo ISSET, após achar o ISSET iremos achar a Variavel da Senha, no meu caso é "$password".
Após acharmos iremos trocar de:
Código:

$password=$_POST['senha'];
Para:
Código:

$password=md5($_POST['senha']);

Vou dizer agora oque faz diferença no primeiro pro segundo.
Primeiro de tudo, mandamos que a Senha colocada no Formulário de Login seja modificado para MD5, no  caso ele vai pegar a senha comum e transformar em Criptografia, para que tenha coerência com a senha que está no Banco de Dados.



Agora vamos para o Cadastro.

Após você fazer o seu sistema de cadastro, vá no código em que pega oque foi digitado no formulário e envia para o banco de dados.
Seria algo assim:
Código:

$verise  = $_POST['pass'];
Ela tem um $_POST (Pega oque foi enviado do formulário após clicar no botão de Enviar(Submit)).

Vamos lá, aqui é oque iremos fazer, o processe é igual ao processo de login, iremos achar o $_POST e modifica-lo com o md5().

Vamos pegar o código assim:
Código:

$senha = $_POST['pass'];
E deixar ela assim:
Código:

$senha = strip_tags(trim(md5($_POST['senha2'])));
Vocês veem que não só colocamos o md5, e sim vários outros filtros, vou dizer agora oque cada filtro faz.

Strip_tags = Tiras os códigos em PHP/HTML/CSS para que não tenha quebra de banco de dados ou de página, pois caso não tenha a pessoa pode colocar o código em PHP para puxar alguma variável.

Trim = Tira os Espaços.
md5 = Criptografa a senha.



Qualquer dúvida deixe aqui no post e irei tentar responder. :D
Boa Sorte.

Ver perfil do usuário

AndréR.

avatar
Programador
- ótimo, tutorial amigo e seja bem vindo a comunidade ..
- ainda, bem que lhe chamei pra comunidade sou teu fã :)
- poste mais, tutoriais quem sabe vire um staff ..
Até ...



É meu fã ? use ;)
# FãBar:
Ver perfil do usuário

BrunoFerAr

avatar
Designer
Gostei muito. Bem explicado, bem detalhado, tudo nos seus devidos lugares. Parabéns

Ver perfil do usuário

Vuzziikii

avatar
Coordenador
Bom tutorial, assim parece que entende de algo :)

Ver perfil do usuário

Conteúdo patrocinado


Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo  Mensagem [Página 1 de 1]

Permissão deste fórum:
Você não pode responder aos tópicos neste fórum