Exemplo n.º 1
0
function loginUsuario($email, $password)
{
    require_once 'bd/conex.php';
    $numeroTuplas = 0;
    global $conex;
    $stmt = $conex->prepare("SELECT * FROM usuario WHERE email = :email and password = :pass");
    $stmt->bindParam(':email', $email);
    $stmt->bindParam(':pass', $password);
    $stmt->execute();
    require_once 'modulos/usuarios/clases/Usuario.php';
    $usuario = new Usuario();
    if ($stmt->rowCount() == 1) {
        $numeroTuplas = 1;
        $row = $stmt->fetch();
        $usuario->idUsuario = $row['idUsuario'];
        $usuario->activado = $row['activado'];
        $usuario->avatar = $row['avatar'];
        //$usuario->bio = $row['bio'];
        $usuario->email = $row['email'];
        $usuario->nombreUsuario = $row['nombreUsuario'];
        $usuario->tipoUsuario = $row['tipoUsuario'];
        $usuario->uuid = $row['uuid'];
        $usuario->uniqueUrl = $row['uniqueUrl'];
        $usuario->saldo = $row['saldo'];
        $_SESSION['usuario'] = $usuario;
        $_SESSION['contador'] = 1;
        //actualizamos en la base de datos el sessionId actual
        actualizarIdSession($usuario->idUsuario);
        require_once 'funcionesPHP/CargarInformacionSession.php';
        cargarCursosSession();
    } else {
        //echo "rowCount = " . $stmt->rowCount();
    }
    return $numeroTuplas;
}
Exemplo n.º 2
0
function inscribirUsuario()
{
    if (isset($_GET['i'])) {
        if (validarUsuarioLoggeado()) {
            $usuario = getUsuarioActual();
            $idCurso = removeBadHtmlTags($_GET['i']);
            require_once 'modulos/cursos/modelos/CursoModelo.php';
            $curso = getCurso($idCurso);
            if ($usuario->activado == 1) {
                if (isset($curso)) {
                    if ($curso->idUsuario != $usuario->idUsuario) {
                        require_once 'modulos/usuarios/modelos/UsuarioCursosModelo.php';
                        if (!esUsuarioUnAlumnoDelCurso($usuario->idUsuario, $idCurso)) {
                            //iniciar transacción
                            //si el curso tiene precio:
                            //  -validar que el usuario tenga saldo suficiente
                            //  -actualizar el saldo
                            //  -agregamos la operación
                            //despues, si tiene precio o no
                            //  -se inscribe el usuario
                            //  -se envia el mail
                            //
                            //ESTO SE DEBE DE HACER DENTRO DE UNA TRANSACCIÓN PARA QUE TODO SÉA VÁLIDO
                            try {
                                require_once 'bd/conex.php';
                                beginTransaction();
                                require_once 'funcionesPHP/CargarInformacionSession.php';
                                cargarUsuarioSession();
                                $usuario = getUsuarioActual();
                                $huboError = false;
                                $suscribirAlumno = true;
                                if ($curso->precio > 0) {
                                    //validar que el saldo del usuario sea suficiente para inscribirse a este curso
                                    if ($usuario->saldo >= $curso->precio) {
                                        //Actualizamos el saldo del usuario
                                        require_once 'modulos/usuarios/modelos/usuarioModelo.php';
                                        if (actualizaSaldoUsuario($usuario->idUsuario, -$curso->precio)) {
                                            //Se actualizó correctamente el saldo del usuario, procedemos
                                            //a guardar la operación
                                            require_once 'modulos/pagos/modelos/operacionModelo.php';
                                            $operacion = new Operacion();
                                            $operacion->cantidad = $curso->precio;
                                            $operacion->detalle = "Curso: <a href='/curso/" . $curso->uniqueUrl . "'>" . $curso->titulo . '</a>';
                                            $operacion->idUsuario = $usuario->idUsuario;
                                            $operacion->completada = 1;
                                            $operacion->idTipoOperacion = 2;
                                            if (altaOperacion($operacion) < 0) {
                                                $huboError = true;
                                            }
                                        } else {
                                            $huboError = true;
                                        }
                                    } else {
                                        //No tiene saldo suficiente para suscribirse al curso, lo enviamos a
                                        //una página donde puede recargar saldo
                                        $suscribirAlumno = false;
                                        setSessionMessage("<h4 class='error'>No tienes el saldo suficiente para suscribirte</h4>");
                                        redirect("/usuarios/saldo");
                                    }
                                }
                                if ($suscribirAlumno) {
                                    //ahora a inscribir al usuario
                                    if (inscribirUsuarioCurso($usuario->idUsuario, $idCurso, $curso->precio)) {
                                        require_once 'funcionesPHP/CargarInformacionSession.php';
                                        cargarCursosSession();
                                        cargarUsuarioSession();
                                        setSessionMessage("<h4 class='success'>Haz quedado inscrito a este curso</h4>");
                                        require_once 'modulos/email/modelos/envioEmailModelo.php';
                                        //enviar email al usuario que se suscribió
                                        enviarMailSuscripcionCurso($usuario->email, $curso->titulo, $curso->imagen, 'www.unova.mx/curso/' . $curso->uniqueUrl);
                                    } else {
                                        $huboError = true;
                                        setSessionMessage("<h4 class='error'>Ocurrió un error al inscribirte al curso</h4>");
                                    }
                                }
                            } catch (Exception $e) {
                                $huboError = true;
                                setSessionMessage("<h4 class='error'>Ocurrió un error al inscribirte al curso. Excepción " . $e->getMessage() . ".</h4>");
                            }
                            //validamos si hubo algun error
                            if ($huboError) {
                                rollBackTransaction();
                            } else {
                                commitTransaction();
                            }
                            redirect("/curso/" . $curso->uniqueUrl);
                        } else {
                            //el usuario ya está inscrito
                            setSessionMessage("<h4 class='error'>Ya estás suscrito a este curso</h4>");
                            redirect("/curso/" . $curso->uniqueUrl);
                        }
                    } else {
                        //el curso pertenece al usuario
                        setSessionMessage("<h4 class='error'>No puedes inscribirte a tu propio curso</h4>");
                        goToIndex();
                    }
                } else {
                    //el curso no existe
                    setSessionMessage("<h4 class='error'>Curso no válido</h4>");
                    goToIndex();
                }
            } else {
                //El usuario no ha confirmado su cuenta
                setSessionMessage("<h4 class='error'>Debes confirmar tu cuenta para poder inscribirte a este curso</h4><h4 class='notice'><a href='/usuarios/usuario/enviarCorreoConfirmacion'>Click aquí para confirmar cuenta</a></h4>");
                redirect("/curso/" . $curso->uniqueUrl);
            }
        } else {
            ////no hay usuario loggeado, pero esto se valida dentro de la función
        }
    } else {
        //no hay i, ir a index
        goToIndex();
    }
}