<?php
function isNull($nombre, $apellidos, $usuario, $email, $password, $rep_password){
if(strlen(trim($nombre)) < 1 || strlen(trim($apellidos)) < 1 || strlen(trim($usuario)) < 1 || strlen(trim($email)) < 1 || strlen(trim($password))< 1 || strlen(trim($rep_password)))
{
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 minMax($min, $max, $valor){
if(strlen(trim($valor)) < $min)
{
return true;
}
else if(strlen(trim($valor)) > $max)
{
return true;
}
else
{
return false;
}
}
function usuarioExiste($usuario)
{
global $ConDB;
$stmt = $ConDB->prepare("SELECT id_usuario 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 $ConDB;
$stmt = $ConDB->prepare("SELECT id_usuario FROM usuarios WHERE email = ? 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 generateToken()
{
$gen = md5(uniqid(mt_rand(), false));
return $gen;
}
function hashPassword($password)
{
$hash = password_hash($password, PASSWORD_DEFAULT);
return $hash;
}
function resultBlock($errors){
if(count($errors) > 0)
{
echo "<div id='error' class='alert alert-danger' role='alert'>
<a href='#' onclick=\"showHide('error');\"><img alt='cerrar' class='alert_close_icon' src='img/icons/cerrar.png' width='5%' height='auto'></a>
<ul>";
foreach($errors as $error)
{
echo "<li>".$error."</li>";
}
echo "</ul>";
echo "</div>";
}
}
function registraUsuario($nombre,$apellidos,$usuario,$email,$passwd_hash,$nombre_archivo,$activo,$token,$tipo_usuario){
global $ConDB;
$stmt = $ConDB->prepare("INSERT INTO usuarios (nombre, apellidos, usuario, email, password, url_avatar, activacion, token, id_tipo) VALUES(?,?,?,?,?,?,?,?,?)");
$stmt->bind_param('ssssssisi',$nombre,$apellidos,$usuario,$email,$passwd_hash,$nombre_archivo,$activo,$token,$tipo_usuario);
if ($stmt->execute()){
return $ConDB->insert_id_usuario;
} else {
return $stmt->errorInfo();
}
}
function enviarEmail($email, $nombre, $asunto, $cuerpo){
require_once 'includes/PHPMailer/PHPMailerAutoload.php';
$mail = new PHPMailer();
$mail->isSMTP();
$mail->SMTPAuth = true;
$mail->SMTPSecure = 'tls';
$mail->Host = 'smtp.gmail.com';
$mail->Port = '587';
$mail->Username = 'dissenywebvicent@gmail.com';
$mail->Password = 'TRYNDR4PDT';
$mail->setFrom('dissenywebvicent@gmail.com', 'Disseny Web Vicent');
$mail->addAddress($email, $nombre);
$mail->Subject = $asunto;
$mail->Body = $cuerpo;
$mail->IsHTML(true);
if($mail->send()){
return true;
}
else
{
return false;
}
}
function validaIdToken($id, $token){
global $ConDB;
$stmt = $ConDB->prepare("SELECT activacion FROM usuarios WHERE id_usuario = ? AND token = ? LIMIT 1");
$stmt->bind_param("is", $id, $token);
$stmt->execute();
$stmt->store_result();
$rows = $stmt->num_rows;
if($rows > 0) {
$stmt->bind_result($activacion);
$stmt->fetch();
if($activacion == 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 $ConDB;
$stmt = $ConDB->prepare("UPDATE usuarios SET activacion=1 WHERE id_usuario = ?");
$stmt->bind_param('s', $id);
$result = $stmt->execute();
$stmt->close();
return $result;
}
function isNullLogin($usuario, $password){
if(strlen(trim($usuario)) < 1 || strlen(trim($password)) < 1)
{
return true;
}
else
{
return false;
}
}
function login($usuario, $password)
{
global $ConDB;
$stmt = $ConDB->prepare("SELECT id_usuario, id_tipo, password FROM usuarios WHERE usuario = ? || email = ? 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, $passwd);
$stmt->fetch();
$validaPassw = password_verify($password, $passwd);
if($validaPassw){
lastSession($id);
$_SESSION['id_usuario'] = $id;
$_SESSION['tipo_usuario'] = $id_tipo;
header("location: aside.php");
echo'<input class="btn btn-black-2 desconectar" href="logout.php">Desconectar</a></div>';
echo'<input class="btn btn-black-1" id="perfil" type="button" name="" href="registro.php" placeholder="Ver Perfil"/>';
} else {
header("location: aside.php");
echo'<input class="btn btn-black" id="login" type="button" name="menu1" ONCLICK="Mostrar_Ocultar(this.button);" action=""placeholder="Iniciar sesion"/>';
$errors = "La contraseña es incorrecta";
}
} else {
header("location: aside.php");
echo'<input class="btn btn-black" id="login" type="button" name="menu1" ONCLICK="Mostrar_Ocultar(this.button);" action=""placeholder="Iniciar sesion"/>';
$errors = 'El usuario no esta activo';
}
} else {
header("location: aside.php");
echo'<input class="btn btn-black" id="login" type="button" name="menu1" ONCLICK="Mostrar_Ocultar(this.button);" action=""placeholder="Iniciar sesion"/>';
$errors = "El nombre de usuario o correo electrónico no existe";
}
return $errors;
}
function lastSession($id)
{
global $ConDB;
$stmt = $ConDB->prepare("UPDATE usuarios SET last_session=NOW(), token_password='', password_request=1 WHERE id_usuario = ?");
$stmt->bind_param('s', $id);
$stmt->execute();
$stmt->close();
}
function isActivo($usuario)
{
global $ConDB;
$stmt = $ConDB->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 generaTokenPass($user_id)
{
global $ConDB;
$token = generateToken();
$stmt = $ConDB->prepare("UPDATE usuarios SET token_password=?, password_request=1 WHERE id_usuario = ?");
$stmt->bind_param('ss', $token, $user_id);
$stmt->execute();
$stmt->close();
return $token;
}
function getValor($campo, $campoWhere, $valor)
{
global $ConDB;
$stmt = $ConDB->prepare("SELECT $campo FROM usuarios WHERE $campoWhere = ? LIMIT 1");
$stmt->bind_param('s', $valor);
$stmt->execute();
$stmt->store_result();
$num = $stmt->num_rows;
if ($num > 0)
{
$stmt->bind_result($_campo);
$stmt->fetch();
return $_campo;
}
else
{
return null;
}
}
function getPasswordRequest($id)
{
global $ConDB;
$stmt = $ConDB->prepare("SELECT password_request FROM usuarios WHERE id_usuario = ?");
$stmt->bind_param('i', $id);
$stmt->execute();
$stmt->bind_result($_id);
$stmt->fetch();
if ($_id == 1)
{
return true;
}
else
{
return null;
}
}
function verificaTokenPass($user_id, $token){
global $ConDB;
$stmt = $ConDB->prepare("SELECT activacion FROM usuarios WHERE id_usuario = ? AND token_password = ? AND password_request = 1 LIMIT 1");
$stmt->bind_param('is', $user_id, $token);
$stmt->execute();
$stmt->store_result();
$num = $stmt->num_rows;
if ($num > 0)
{
$stmt->bind_result($activacion);
$stmt->fetch();
if($activacion == 1)
{
return true;
}
else
{
return false;
}
}
else
{
return false;
}
}
function cambiaPassword($password, $user_id, $token){
global $ConDB;
$stmt = $ConDB->prepare("UPDATE usuarios SET password = ?, token_password='', password_request=0 WHERE id_usuario = ? AND token_password = ?");
$stmt->bind_param('sis', $password, $user_id, $token);
if($stmt->execute()){
return true;
} else {
return false;
}
}
?>