Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save eusonlito/9429738 to your computer and use it in GitHub Desktop.
Save eusonlito/9429738 to your computer and use it in GitHub Desktop.
<?php
define('HASH', 'BestRandomHashEver');
$erro = $ok = '';
if (empty($_POST['usuario']) || empty($_POST['contrasinal'])) {
$erro = 'Sentímolo, os datos enviados non son correctos';
return false;
}
$usuario = $_POST['usuario'];
$contrasinal = $_POST['contrasinal'];
if ((filter_var($usuario, FILTER_VALIDATE_EMAIL) === false) || (strlen($contrasinal) < 6)) {
$erro = 'Sentímolo, pero os datos de acceso non parecen correctos';
return false;
}
try {
$PDO = new PDO('mysql:host=localhost;dbname=test', 'root', '');
} catch (Exception $e) {
throw new Exception('Ups! non se puido conectar a base de datos: '.$e->getMessage());
}
$PDO->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
try {
$Q = $PDO->prepare('SELECT * FROM usuarios WHERE usuario = :usuario AND contrasinal = :contrasinal LIMIT 1');
$Q->execute(array(
':usuario' => $usuario,
':contrasinal' => crypt($contrasinal, HASH)
));
} catch (Exception $e) {
$erro = 'Sentímolo, pero os datos de acceso non parecen correctos';
return false;
}
if (!($usuario = $Q->fetch())) {
$erro = 'Sentímolo, pero os datos de acceso non parecen correctos';
return false;
}
session_start();
$_SESSION['usuario'] = $usuario;
$ok = 'Benvido de novo :)';
return true;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment