function addDomain($domain) { if (!isSiteAdmin()) { print json_encode(array('success' => FALSE, 'errors' => array('domain' => 'Permission denied'))); return; } if (!$domain) { print json_encode(array('success' => FALSE, 'errors' => array('domain' => 'This field is required'))); return; } $domain = strtolower($domain); if (!validDomain($domain)) { print json_encode(array('success' => FALSE, 'errors' => array('domain' => 'Invalid domain'))); return; } if (domainExists($domain)) { print json_encode(array('success' => FALSE, 'errors' => array('domain' => 'Domain already exists'))); return; } $user = $_SESSION['user']; if ($domain == $user['domain']) { print json_encode(array('success' => FALSE, 'errors' => array('domain' => 'Can not delete your own domain'))); return; } $add = array('domain' => $domain); beginTransaction(); $domain_id = db_insert('virtual_domains', $add, 'domain_id'); if (!$domain_id) { cancelTransaction(); print json_encode(array('success' => FALSE, 'errors' => array('domain' => 'Unknown error'))); return; } $transport = array('subdomain' => 'autoreply', 'domain_id' => $domain_id, 'destination' => 'autoreply:', 'active' => 't'); $transport_id = db_insert('transport_maps', $transport, 'transport_id'); if (!$transport_id) { cancelTransaction(); print json_encode(array('success' => FALSE, 'errors' => array('domain' => 'Unknown error'))); return; } endTransaction(); print json_encode(array('success' => true)); }
function transferir($idOrigem, $cadastroOrigem, $valor, $idDestino, $cadastroDestino) { if ($this->isPessoaJuridica($cadastroDestino)) { try { beginTransaction(); $ps = $this->executar('SELECT * FROM conta WHERE id_conta = ?', array($idOrigem)); $p = $ps->fetchObject(); if ($p->saldo < $valor) { rollBack(); throw new TransferenciaException('Saldo da conta de origem insuficiente'); } $ps = $this->executar('UPDATE conta SET saldo = saldo - ? WHERE id_conta = ?', array($valor, $idOrigem)); $valorDoisPorCento = $valor * 0.02; $valorNovo = $valor - $valor * 0.02; $ps = $this->executar('UPDATE conta SET saldo = saldo + ? WHERE id_conta = ?', array($valorDoisPorCento, 0)); $ps = $this->executar('UPDATE conta SET saldo = saldo + ? WHERE id_conta = ?', array($valorNovo, $idDestino)); commit(); } catch (Exception $e) { rollBack(); throw new TransferenciaException('Erro ao realizar transferencia'); } } else { try { beginTransaction(); $ps = $this->executar('SELECT * FROM conta WHERE id_conta = ?', array($idOrigem)); $p = $ps->fetchObject(); if ($p->saldo < $valor) { rollBack(); throw new TransferenciaException('Saldo da conta de origem insuficiente'); } $ps = $this->executar('UPDATE conta SET saldo = saldo - ? WHERE id_conta = ?', array($valor, $idOrigem)); $ps = $this->executar('UPDATE conta SET saldo = saldo + ? WHERE id_conta = ?', array($valor, $idDestino)); commit(); } catch (Exception $e) { rollBack(); throw new TransferenciaException('Erro ao realizar transferencia'); } } }
function getFormaRecargarSaldo() { if (isset($_GET['cnt']) && isset($_GET['des']) && isset($_GET['tipo'])) { $cantidad = removeBadHtmlTags($_GET['cnt']); $descripcion = removeBadHtmlTags($_GET['des']); $usuario = getUsuarioActual(); if (isset($usuario)) { if ($cantidad >= 50) { require_once 'modulos/pagos/modelos/operacionModelo.php'; require_once 'modulos/pagos/modelos/PayPalModelo.php'; require_once 'bd/conex.php'; beginTransaction(); $operacion = new Operacion(); $operacion->cantidad = $cantidad; $operacion->detalle = $descripcion; $operacion->completada = 0; $operacion->idUsuario = $usuario->idUsuario; $operacion->idTipoOperacion = 1; $operacion->idOperacion = altaOperacion($operacion); switch ($_GET['tipo']) { case 'paypal': commitTransaction(); $encrypted = encriptarInformacionBotonPago($descripcion, "", $cantidad, $operacion->idOperacion); require_once 'modulos/pagos/vistas/formaRecargarSaldoPaypal.php'; break; //not supported yet // case 'mercadopago': // break; //not supported yet // case 'mercadopago': // break; default: rollBackTransaction(); echo '<div class="center" style="text-align:center"><h3 class="error">No es una opción válida</h3><br><h4>Ocurrió un error en tu solicitud</h4></div>'; break; } } else { //No es una cantidad valida echo '<div class="center" style="text-align:center"><h3 class="error">No es una cantidad válida</h3><br><h4>La cantidad mínima para recargar es de $50.00</h4></div>'; } } else { echo 'no hay usuario loggeado'; //No hay un usuario loggeado } } else { //no hay datos.. } }
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(); } }
function modifyUser($userId, $description, $local, $active) { if (!$active) { $active = 'f'; } else { $active = 't'; } if (!$userId) { return FALSE; } else { if (!isSiteAdmin() && isSiteAdmin($userId)) { return FALSE; } } $userObj = loadUser($userId); if (!$userObj) { return FALSE; } $adminDomains = getAdminDomains(); $domain = $userObj['domain']; if (!in_array($domain, $adminDomains)) { return FALSE; } $oldActive = userIsActive($userId); $updates = array('description' => $description, 'active' => $active); $conditions = array('user_id' => $userId); $activeChanged = FALSE; if ($oldActive && $active == 'f') { $activeChanged = TRUE; } else { if (!$oldActive && $active == 't') { $activeChanged = TRUE; } } $aliasUpdates = array('active' => $active); $username = $userObj['user']; $aliasConditions = array('username' => $username, 'domain_id' => $userObj['domain_id']); $email = $username . '@' . $domain; beginTransaction(); db_update('virtual_users', $updates, $conditions); if ($activeChanged) { db_update('virtual_aliases', $aliasUpdates, $aliasConditions); } setUserLocal($local, $email); endTransaction(); }
function setRatingUsuario($idUsuario, $idCurso, $rating) { require_once 'bd/conex.php'; global $conex; //tratamos de insertar en la tabla puntuación beginTransaction(); $stmt = $conex->prepare("INSERT into puntuacion\n (idUsuario, idCurso, rating)\n VALUES(:idUsuario, :idCurso, :rating)"); $stmt->bindParam(':rating', $rating); $stmt->bindParam(':idUsuario', $idUsuario); $stmt->bindParam(':idCurso', $idCurso); if (!$stmt->execute()) { //si NO se pudo ejecutar es que ya había una tupla con esos ids, actualizamos el rating $stmt = $conex->prepare("UPDATE puntuacion \n SET rating = :rating\n WHERE idUsuario = :idUsuario AND idCurso = :idCurso"); $stmt->bindParam(':rating', $rating); $stmt->bindParam(':idUsuario', $idUsuario); $stmt->bindParam(':idCurso', $idCurso); $stmt->execute(); } //Ahora, hacemos el update de la variable rating de la tabla curso $stmt = $conex->prepare("SELECT count(rating) as cuenta, sum(rating) as suma\n FROM puntuacion\n WHERE idCurso = :idCurso"); $stmt->bindParam(':idCurso', $idCurso); $stmt->execute(); $row = $stmt->fetch(); $n = $row['cuenta']; $sum = $row['suma']; $prom = $sum / $n; $stmt = $conex->prepare("UPDATE curso \n SET rating = :rating\n WHERE idCurso = :idCurso"); $stmt->bindParam(':rating', $prom); $stmt->bindParam(':idCurso', $idCurso); if ($stmt->execute()) { commitTransaction(); return true; } else { rollBackTransaction(); return false; } }
public static function eraseByURIPrefix($libraryID, $prefix, $ignorePredicates = false) { Zotero_DB . beginTransaction(); $prefix = $prefix . '%'; $sql = "SELECT relationID FROM relations WHERE libraryID=? AND subject LIKE ?"; $params = [$libraryID, $prefix]; if ($ignorePredicates) { foreach ($ignorePredicates as $ignorePredicate) { $sql .= " AND predicate != ?"; $params[] = $ignorePredicate; } } $sql .= " UNION SELECT relationID FROM relations WHERE libraryID=? AND object LIKE ?"; $params = array_merge($params, [$libraryID, $prefix]); if ($ignorePredicates) { foreach ($ignorePredicates as $ignorePredicate) { $sql .= " AND predicate != ?"; $params[] = $ignorePredicate; } } $ids = Zotero_DB::columnQuery($sql, $params, Zotero_Shards::getByLibraryID($libraryID)); foreach ($ids as $id) { $relation = self::get($libraryID, $id); Zotero_Relations::delete($libraryID, $relation->key); } Zotero_DB::commit(); }
function retirarSaldoSubmit() { if (validarUsuarioLoggeadoParaSubmits() && !empty($_POST['cantidad'])) { $cantidad = str_replace("\$", "", $_POST['cantidad']); $cantidad = floatval($cantidad); $huboError = false; $usuario = getUsuarioActual(); if (isset($usuario->emailPaypal) && strlen($usuario->emailPaypal) > 0) { if ($cantidad >= 50 && $cantidad <= $usuario->saldo) { require_once 'modulos/pagos/modelos/solicitudSaldoModelo.php'; require_once 'modulos/usuarios/modelos/usuarioModelo.php'; require_once 'modulos/pagos/modelos/operacionModelo.php'; require_once 'funcionesPHP/CargarInformacionSession.php'; require_once 'bd/conex.php'; beginTransaction(); if (actualizaSaldoUsuario($usuario->idUsuario, -$cantidad)) { //Se actualizó correctamente el saldo, entonces generamos una operación $operacion = new Operacion(); $operacion->idUsuario = $usuario->idUsuario; $operacion->cantidad = $cantidad; $operacion->idTipoOperacion = 4; $operacion->completada = 1; $operacion->detalle = "Retiro de saldo"; $operacion->idOperacion = altaOperacion($operacion); if ($operacion->idOperacion >= 0) { //se dio de alta correctamente la operacion, generamos la solicitud $solicitudSaldo = new SolicitudSaldo(); $solicitudSaldo->idUsuario = $usuario->idUsuario; $solicitudSaldo->cantidad = $cantidad; $solicitudSaldo->entregado = 0; //0=no entregado if (altaSolicitudSaldo($solicitudSaldo)) { commitTransaction(); setSessionMessage("<h4 class='success'>Tu solicitud de retirar saldo fue enviada correctamente</h4>"); cargarUsuarioSession(); } else { $huboError = true; } } else { $huboError = true; } } else { $huboError = true; } if ($huboError) { rollBackTransaction(); setSessionMessage("<h4 class='error'>Ocurrió un error al realizar tu solicitud. Intenta de nuevo más tarde</h4>"); } } else { //no es una cantidad válida setSessionMessage("<h4 class='error'>La cantidad que se quiere retirar no es válida</h4>"); } redirect("/usuarios/saldo"); } else { setSessionMessage("<h4 class='error'>Debes establecer tu correo electrónico asociado a Paypal para poder retirar tu saldo</h4>"); redirect("/usuarios/usuario/cambiarCorreoPaypal"); } } else { goToIndex(); } }
if ($dumpmode) { $body = file_get_contents($pagefile); } $pagename = $DBInfo->keyToPagename($file); $idx++; $tmp = "('" . _escape_string($type, $pagename) . "',"; if ($dumpmode) { $tmp .= "'" . _escape_string($type, $body) . "',"; } $tmp .= $mtime . ")"; $buffer[] = $tmp; if ($idx > 50) { dump('INSERT INTO ' . $tablename . ' (' . $vals . ') VALUES ' . implode(",\n", $buffer) . ";\n"); $idx = 0; $buffer = array(); } if ($j % 10000 == 0) { endTransaction($type); beginTransaction($type); } } if (sizeof($buffer) > 0) { dump('INSERT INTO ' . $tablename . ' (' . $vals . ') VALUES ' . implode(",\n", $buffer) . ";\n"); } endTransaction($type); fclose($fp); closedir($handle); echo "\t", 'titleindex_init.sql generated', "\n"; $params['timer']->Check('done'); echo $params['timer']->Write(); // vim:et:sts=4:sw=4:
<?php echo 'getProduct 1'; // 登録済み届け先住所を取得 // 操作者のIDを返すAPIをコール, またはここで直接取得 author:あつお // $operatorId = *****API; $operatorId = 1; // temporary value $sqlGetAddress = "\nSELECT store_address\nFROM company\nWHERE operator_id = {$operatorId}\nAND delete_flag = 0;\n"; echo 'getProduct 2'; $connectObj = dbConnect(); echo 'getProduct 2-1'; beginTransaction(); echo 'getProduct 2-2'; $resGetAddress = executeDb($sqlGetAddress); echo 'getProduct 2-3'; if (!$resGetAddress || $resGetAddress == null) { echo 'getProduct 2-4'; rollback(); close(); echo 'getProduct 2-5'; // redirect to error page // 届け先情報の取得に失敗 } echo 'getProduct 3'; while ($row = mysqli_fetch_array($resGetAddress)) { $address = $row["store_address"]; } echo 'getProduct 4'; // 商品情報を取得 // 現在有効な商品の商品ID, 商品名, 金額を取得
function removeForward($aliasId) { if (!$aliasId) { return FALSE; } $email = getAliasEmail($aliasId); if (!$email) { return FALSE; } if ($email != $_SESSION['user']['email']) { $adminDomains = getAdminDomains(); $emailParts = split('@', $email); $domain = $emailParts[1]; if (!in_array($domain, $adminDomains)) { return FALSE; } } $conditions = array('alias_id' => $aliasId); beginTransaction(); $ret = db_delete('virtual_aliases', $conditions); setUserLocalIfNecessary($email); endTransaction(); return $ret; }
/** * @post update */ function update_post_controller($id) { __is_guest(); if (!empty($_POST)) { if (checked_token($_POST['_token'])) { __session_start(); $_SESSION['old'] = []; $_SESSION['errors'] = []; $rules = ['title' => FILTER_SANITIZE_STRING, 'content' => FILTER_SANITIZE_STRING, 'status' => ['filter' => FILTER_CALLBACK, 'options' => function ($s) { if (in_array($s, ['published', 'unpublished'])) { return $s; } else { return 'unpublished'; } }], 'published_at' => ['filter' => FILTER_CALLBACK, 'options' => function ($checkbox) { if ($checkbox == 'yes') { return new DateTime('now'); } }]]; $sanitize = filter_input_array(INPUT_POST, $rules); $id = (int) $id; // test if errors if (empty($_POST['title'])) { $_SESSION['errors']['title'] = 'title is required'; } if (!empty($_SESSION['errors'])) { $_SESSION['old'] = $sanitize; redirect('post/create'); // exit } if (!empty($_FILES['file']) && is_uploaded_file($_FILES['file']['tmp_name'])) { try { $dateFile = upload($_FILES['file']); beginTransaction(); update_post_model($id, $sanitize); create_media_model(['filename' => $dateFile['filename'], 'post_id' => $id, 'size' => $dateFile['size']]); commit(); setFlashMessage("success stored"); redirect('dashboard'); } catch (Exception $e) { if ($e instanceof RuntimeException) { $_SESSION['old'] = $sanitize; $_SESSION['errors']['upload'] = $e->getMessage(); redirect('post/create'); } rollback(); $_SESSION['old'] = $sanitize; $_SESSION['errors']['file'] = $e->getMessage(); redirect('post/create'); } } else { try { beginTransaction(); update_post_model($id, $sanitize); $media_id = (int) $_POST['m_id']; if (!empty($_POST['m_id']) && !empty($_POST['delete_filename'])) { $media = find_model($media_id, 'medias'); $m = $media->fetch(); destroy_model($media_id, 'medias'); } commit(); if (!empty($m)) { unlink(getEnv('UPLOAD_DIRECTORY') . '/' . htmlentities($m['m_filename'])); } setFlashMessage(trans('success_updated_post', $sanitize['title'])); redirect('dashboard'); } catch (Exception $e) { rollback(); $_SESSION['old'] = $sanitize; $_SESSION['errors']['file'] = $e->getMessage(); redirect('post/create'); } throw new RuntimeException('418'); } } } }