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; }
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(); } }