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.

4 participantes

Ir para baixo  Mensagem [Página 1 de 1]

Raphael Caldas

Raphael Caldas
Membro

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.

AndréR.

AndréR.
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é ...

BrunoFerAr

BrunoFerAr
Designer

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

Vuzziikii

Vuzziikii
Coordenador

Bom tutorial, assim parece que entende de algo :)

Conteúdo patrocinado



Ir para o topo  Mensagem [Página 1 de 1]

Permissões neste sub-fórum
Não podes responder a tópicos

  • Forumeiros.com | ©phpBB | Fórum gratuito de ajuda | Denunciar um abuso | Fórum grátis