You are on page 1of 9

<?

php

function isNull($nombre,$user,$pass,$con_pass,$email){

if(strlen(trim($nombre))< 1 ||strlen(trim($user)) < 1 ||strlen(trim($pass))<1||


strlen(trim($con_pass))<1||

strlen(trim($email))<1)

return true;

}else{

return false;

function isEmail($email){

if(filter_var($email,FILTER_VALIDATE_EMAIL)){

return true;

}else{

return false;

function validapassword($var1, $var2){

if(strcmp($var1,$var2)!==0){

return false;

}else{

return true;

function usuarioExiste($usuario){

global $mysqli;

$stmt = $mysqli->prepare("SELECT id FROM usuarios WHERE usuario = ? LIMIT 1 ");


$stmt->bind_param("s", $usuario);

$stmt->execute();

$stmt->store_result();

$num = $stmt->num_rows;

$stmt->close();

if($num>0){

return true;

}else{

return false;

function emailExiste($email){

global $mysqli;

$stmt = $mysqli->prepare("SELECT id FROM usuarios WHERE correo = ? LIMIT 1");

$stmt->bind_param("s", $email);

$stmt->execute();

$stmt->store_result();

$num =$stmt->num_rows;

$stmt->close();

if($num>0){

return true;

}else{

return false;

function hashpassword($password){

$hash = password_hash($password, PASSWORD_DEFAULT);


return $hash;

function generateToken(){

$gen = md5(uniqid(mt_rand()));

return $gen;

function registraUsuario($usuario,$pass_hash, $nombre, $email, $activo,$token,


$tipo_usuario)

global $mysqli;

$stmt=$mysqli->prepare("INSERT INTO usuarios (usuario,password,nombre, correo,


activacion, token,id_tipo)VALUES(?,?,?,?,?,?,?)");

$stmt->bind_param('ssssisi', $usuario, $pass_hash, $nombre, $email, $activo, $token,


$tipo_usuario);

if ($stmt->execute())

return $mysqli->insert_id;

}else{

return 0;

function resultBlock($errors){

if(count($errors) >0) {

echo "<div id='errors' class='alert alert-danger'

role='alert'><a href='#' onclick=\"showHide('error');\">[x] </a>

<ul>";

foreach($errors as $error)

{
echo "<li>".$error."</li>";

echo "</ul>";

echo "</div>";

//enviar correo electronico

//aqui importamos las clases php Mailer

use PHPMailer\PHPMailer\PHPMailer;

use PHPMailer\PHPMailer\Exception;

function enviarEmail($email,$nombre,$asunto,$cuerpo){

require'PHPMailer-master/src/Exception.php';

require'PHPMailer-master/src/PHPMailer.php';

require'PHPMailer-master/src/SMTP.php';

$mail = new PHPMailer(true);

$mail->SMTPDebug =0;

$mail->isSMTP();

$mail->Host ='smtp.gmail.com';

$mail->SMTPAuth = true;

$mail->Username = 'cristianponcepxndx@gmail.com';

$mail->Password = 'cristian72945690';

$mail->SMTPSecure = 'tls';

$mail->Port = 587;
$mail->setFrom('cristianponcepxndx@gmail.com','cristian');

$mail->addAddress($email, $nombre);

$mail->isHTML(true);

$mail->Subject = $asunto;

$mail-> Body = $cuerpo;

if($mail->send()){

return true;

}else{

return false;

function validaIdtoken($id, $token)

global $mysqli;

$stmt -> $mysqli->prepare("SELECT activacion FROM usuarios WHERE ID=? LIMIT 1");

$stmt -> bind_param('is', $id, $token);

$stmt -> execute();

$stmt -> store_result();

$rows = $stmt -> num_rows;

if($rows >0)

$stmt ->bind_result($acticacion);

$stmt ->fectch() ;

if($acticacion == 1)

{
$msg = "la cuenta ya se activo anteriormente";

}else{

if(activarUsuario($id))

$msg = "Cuenta activada";

}else{

$msg ="Error al activar cuenta";

}else{

$msg = "No existe el registro para activar";

return $msg;

function activarUsuario($id)

global $mysqli;

$stmt = $mysqli ->prepare("UPDATE usuario SET activacion =1 WHERE id =?");

$stmt ->bind_param('i', $id);

$result = $stmt ->execute();

$stmt ->close();

return $result;

function isNullLogin($usuario, $password)

{
if(strmlen(trim($usuario)) <1 || strien(trim($password)) <1)

return true;

}else

return false;

function login($usuario, $password)

global $mysqli;

$stmt = $mysqli->prepare("SELECT id, id_tipo, password FROM usuarios WHERE usuario = ?


|| correo = ? LIMIT 1");

$stmt->bind_param('ss', $usuario, $usuario);

$stmt->execute();

$stmt->store_result();

$rows = $stmt->num_rows;

if($rows >0)

if(isActivo($usuario))

$stmt->bind_result($id, $id_tipo, $password);

$stmt->fetch();

$validaPassw = password_verify($password, $passwd);


if($validaPassw)

lastsession($id);

$_SESSION['id_usuario'] = $id;

$_SESSION['tipo_usuario'] = $id_tipo;

header("location: welcome.php");

}else{

$errors = "La contrase&ntilde;a es incorrecta";

}else{

$errors = "El usuario no esta activo ";

}else{

$errors = "El nombre de usuario o correo electr&oacute;nico no existe";

function isActivo($usuario)

global $mysqli;

$stmt $mysqli->prepare("SELECT activacion FROM usuarios WHERE usuario = ? correo = ?


LIMIT 1");

$stmt->bind_param('ss', $usuario, $usuario);

$stmt->execute();

$stmt->bind_result($activacion) ;

$stmt->fetch();
if($activacion == 1)

return true;

}else{

return false;

function lastSession($id)

global $mysqli;

$stmt = $mysqli->prepare("UPDATE usuarios SET last_session=NOW(), token_password='',


password_request=1 WHERE id = ?" );

$stmt->bind_param('s', $id);

$stmt->execute();

$stmt->close();

?>

You might also like