tieneAcceso() || !$objSesion->puedeEditar()){ header("Location: ".$pag."?error=2"); exit(); } unset($objValida); try { $pdo->beginTransaction(); if(!isset($_POST["nombre"]) || !isset($_POST["apellidos"]) || !isset($_POST["clave"]) || !isset($_POST["ingreso"])){ header("Location:".$pag."?error=0"); exit(); } $grado = (trim(filter_input(INPUT_POST, "grado", FILTER_SANITIZE_STRING,array('flags' => FILTER_FLAG_STRIP_LOW))));//limpia texto $nombre = (trim(filter_input(INPUT_POST, "nombre", FILTER_SANITIZE_STRING,array('flags' => FILTER_FLAG_STRIP_LOW))));//limpia texto $apellidos = (trim(filter_input(INPUT_POST, "apellidos", FILTER_SANITIZE_STRING,array('flags' => FILTER_FLAG_STRIP_LOW))));//limpia texto $curp = mb_strtoupper(trim(filter_input(INPUT_POST, "curp", FILTER_SANITIZE_STRING,array('flags' => FILTER_FLAG_STRIP_LOW))));//limpia texto //$clave = (trim(filter_input(INPUT_POST, "clave", FILTER_SANITIZE_STRING,array('flags' => FILTER_FLAG_STRIP_LOW))));//limpia texto $clave = intval(filter_input(INPUT_POST, "clave", FILTER_SANITIZE_NUMBER_INT));//limpia texto $pass = $clave; $fechaingreso = trim(filter_input(INPUT_POST, "ingreso"));//limpia texto $fechaingreso = fechaGuion($fechaingreso); //Valida que no esté solo en mayúsculas if($nombre == mb_strtoupper($nombre, "UTF-8")){ $nombre = mb_convert_case(mb_strtolower($nombre), MB_CASE_TITLE, "UTF-8"); } if($apellidos == mb_strtoupper($apellidos, "UTF-8")){ $apellidos = mb_convert_case(mb_strtolower($apellidos), MB_CASE_TITLE, "UTF-8"); } //Inserta usuario $stmt = $pdo->prepare('Select * from fi_usuario(:nom, :ape, :curp)');//devuelve: Usuario_id $stmt->bindParam(":nom", $nombre); $stmt->bindParam(":ape", $apellidos); $stmt->bindParam(":curp", $curp); if(!$stmt->execute()){ $pdo->rollBack(); //echo "Error fi_usuario [".$nombre."] [".$apellidos."][".$clave."] [".$user."]"; //print_r($stmt->errorInfo()); header("Location:".$pag."?error=1"); exit(); } $usr_rs = $stmt->fetch(); $usr_id = $usr_rs["Usuario_id"]; //Inserta usuario APSA $stmt = $pdo->prepare('Select * from fi_usuarioapsa(:id, :claveulsa, :fechai, false, :grado)');//no administrador, devuelve si existía $stmt->bindParam(":id", $usr_id); $stmt->bindParam(":claveulsa", $clave); $stmt->bindParam(":fechai", $fechaingreso); $stmt->bindParam(":grado", $grado); if(!$stmt->execute()){ $pdo->rollBack(); //echo "Error fi_usuario [".$nombre."] [".$apellidos."][".$clave."] [".$user."]"; //print_r($stmt->errorInfo()); header("Location:".$pag."?error=1"); exit(); } $usr_rs = $stmt->fetch(); $usr_existe = $usr_rs["Usuario_existe"]; $stmt->closeCursor(); // cierra conexion de resultado $usr_rs = null; unset($usr_rs); //Inserta datos de contacto if(isset($_POST["contacto_tipo"]) ){ $tipoArr = $_POST["contacto_tipo"]; $valorArr = $_POST["contacto_valor"]; $stmt = $pdo->prepare('Select * from fi_contacto(:valor, :tipo, :usr)');//inserta contactos $stmt->bindParam(":usr", $usr_id); for($i=0; $i< count($tipoArr); $i++){ if($valorArr[$i] != ""){ $stmt->bindParam(":valor", $valorArr[$i]); $stmt->bindParam(":tipo", $tipoArr[$i]); if(!$stmt->execute()){ $pdo->rollBack(); //echo "Error fi_contacto [".$valorArr[$i]."] [".$tipoArr[$i]."] [".$usr_id."]
"; //print_r($stmt->errorInfo()); header("Location:".$pag."?error=6"); exit(); } } } $stmt->closeCursor(); // cierra conexion de resultado } if(!$usr_existe){ //Inserta foto if($_SESSION["sgi_administrador"]){ $archivo = $_FILES['foto']['name'][0]; if(!empty($archivo)){ // Check file size if ($_FILES["foto"]["size"][0] > 10 * 1024 * 1024) {//en bytes $pdo->rollBack(); header("Location:".$pag."?error=8"); exit(); } $exts_arr = array("jpg","png", "jpeg"); $dot_arr = explode('.', $archivo); $ext = end($dot_arr); if(!in_array($ext, $exts_arr)){ $pdo->rollBack(); header("Location:".$pag."?error=9"); exit(); } $target_dir = "../../img/fotos/"; $newfilename = "foto_".$clave."_".md5($clave).".".$ext; if (!move_uploaded_file($_FILES["foto"]["tmp_name"][$i], $target_dir.$newfilename)) { $pdo->rollBack(); header("Location:".$pag."?error=10"); exit(); } } } if(isset($_POST["es_administrativo"]) && intval($_POST["es_administrativo"]) == 1){ //inserta en administrativo. El puesto se define en otra página $stmt = $pdo->prepare('Select * from fi_administrativo(:p_id)');//devuelve: Usuario_id $stmt->bindParam(":p_id", $usr_id); if(!$stmt->execute()){ $pdo->rollBack(); //echo "Error fi_administrativo"; //print_r($stmt->errorInfo()); header("Location:".$pag."?error=1"); exit(); } $stmt->closeCursor(); // cierra conexion de resultado $log = new LogActividad(); $desc_log = "Inserta tipo de usuario nuevo como administrativo ID[".$usr_id."]"; $log->appendLog($_SESSION["usuario_id"], $_SESSION["usuario_nombre"]." ".$_SESSION["usuario_apellidos"], $desc_log); } if(isset($_POST["es_profesor"]) && intval($_POST["es_profesor"]) == 1){ //inserta en profesor if(isset($_POST["cat"]) && $_POST["cat"] != ""){ $cat = filter_input(INPUT_POST, "cat", FILTER_SANITIZE_NUMBER_INT);//limpia texto $stmt = $pdo->prepare('Select * from fi_profesor(:p_id, :p_cat)');//devuelve: Usuario_id $stmt->bindParam(":p_id", $usr_id); $stmt->bindParam(":p_cat", $cat); if(!$stmt->execute()){ $pdo->rollBack(); //echo "Error fi_profesor"; //print_r($stmt->errorInfo()); header("Location:".$pag."?error=1"); exit(); } $stmt->closeCursor(); // cierra conexion de resultado $log = new LogActividad(); $desc_log = "Inserta tipo de usuario nuevo como profesor ID[".$usr_id."]"; $log->appendLog($_SESSION["usuario_id"], $_SESSION["usuario_nombre"]." ".$_SESSION["usuario_apellidos"], $desc_log); } } }else{ $log = new LogActividad(); $desc_log = "Inserta usuario repetido ID[".$usr_id."] Nombre[".($nombre." ".$paterno." ".$materno)."] ClaveULSA[".$clave."] CURP[".$curp."]"; $log->appendLog($_SESSION["usuario_id"], $_SESSION["usuario_nombre"]." ".$_SESSION["usuario_apellidos"], $desc_log); $pdo->commit(); header("Location:".$pag."?error=5"); exit(); } $log = new LogActividad(); $desc_log = "Inserta usuario nuevo ID[".$usr_id."] Nombre[".($nombre." ".$paterno." ".$materno)."] ClaveULSA[".$clave."] CURP[".$curp."]"; $log->appendLog($_SESSION["usuario_id"], $_SESSION["usuario_nombre"]." ".$_SESSION["usuario_apellidos"], $desc_log); $pdo->commit(); $stmt = null; // cierra conexion header("Location: ../usuarios.php?ok=0"); } catch(PDOException $e) { $pdo->rollBack(); header("Location:".$pag."?error=1"); //print_r($e); } ?>