perfil_update.php 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. <?php
  2. /*
  3. * Actualiza perfil de usuario actual
  4. * Recibe:
  5. * nombre
  6. * paterno
  7. * materno
  8. * pass * opcional, si no se recibe se mantiene contraseña
  9. * correo
  10. * telcasa
  11. * telcel
  12. *
  13. * Error:
  14. * 0 - no se recibieron todos los campos
  15. * 1 - error al guardar en base de datos
  16. *
  17. * Success:
  18. */
  19. include_once("../../include/nocache.php");
  20. require_once("../../include/constantes.php");
  21. require_once("../../include/bd_pdo.php");//die on error
  22. require_once("../../classes/ValidaSesion.php");//die on error
  23. require_once("../../include/util.php");
  24. require_once("../classes/LogActividad.php");//die on error
  25. $objValida = new ValidaSesion($pdo, NULL, APSA);
  26. /*if(!$objValida->tieneAcceso()){
  27. $objValida->terminaSesion();
  28. }
  29. if(!$objValida->puedeEditar()){
  30. header("Location: ../main.php");
  31. exit();
  32. }
  33. unset($objValida);*/
  34. $pag = "../perfil.php";
  35. try {
  36. $pdo->beginTransaction();
  37. if(isset($_POST["direccion"]) ){
  38. $dir = trim(filter_input(INPUT_POST, "direccion", FILTER_SANITIZE_STRING,array('flags' => FILTER_FLAG_STRIP_LOW)));//limpia texto
  39. $stmt = $pdo->prepare('Select * from fu_usuariodireccion(:usr, :dir)');//borra contacto actual
  40. $stmt->bindParam(":usr", $_SESSION["usuario_id"]);
  41. $stmt->bindParam(":dir", $dir);
  42. if(!$stmt->execute()){
  43. $pdo->rollBack();
  44. print_r($stmt->errorInfo());
  45. //header("Location:".$pag."?error=1");
  46. exit();
  47. }
  48. }
  49. //---- Actualiza datos de contacto ----
  50. $stmt = $pdo->prepare('Select * from fd_contacto(:usr, NULL)');//borra contacto actual
  51. $stmt->bindParam(":usr", $_SESSION["usuario_id"]);
  52. if(!$stmt->execute()){
  53. $pdo->rollBack();
  54. print_r($stmt->errorInfo());
  55. //header("Location:".$pag."?error=1");
  56. exit();
  57. }
  58. if(isset($_POST["contacto_tipo"]) ){
  59. $tipoArr = $_POST["contacto_tipo"];
  60. $valorArr = $_POST["contacto_valor"];
  61. $perfilArr = $_POST["contacto_perfil"];
  62. $subtipoArr = $_POST["contacto_subtipo"];
  63. for($i=0; $i< count($tipoArr); $i++){
  64. if(trim($valorArr[$i]) != ""){
  65. if($subtipoArr[$i] != 0){
  66. $stmt = $pdo->prepare('Select * from fi_contacto(:valor, :tipo, :usr, :perf, :subt)');//inserta contactos
  67. $stmt->bindParam(":subt", $subtipoArr[$i]);
  68. }else{
  69. $stmt = $pdo->prepare('Select * from fi_contacto(:valor, :tipo, :usr, :perf, NULL)');//inserta contactos
  70. }
  71. $stmt->bindParam(":usr", $_SESSION["usuario_id"]);
  72. $stmt->bindParam(":valor", $valorArr[$i]);
  73. $stmt->bindParam(":tipo", $tipoArr[$i]);
  74. $stmt->bindParam(":perf", $perfilArr[$i]);
  75. if(!$stmt->execute()){
  76. $pdo->rollBack();
  77. //echo "Error fi_contacto [".$valorArr[$i]."] [".$tipoArr[$i]."] [".$usr_id."]<br>";
  78. print_r($stmt->errorInfo());
  79. //header("Location:".$pag."?error=1");
  80. exit();
  81. }
  82. }
  83. }
  84. $stmt->closeCursor(); // cierra conexion de resultado
  85. }
  86. $stmt = $pdo->prepare('Select * from fd_contactoemergencia(:usr)');//inserta contactos
  87. $stmt->bindParam(":usr", $_SESSION["usuario_id"]);
  88. if(!$stmt->execute()){
  89. $pdo->rollBack();
  90. //echo "Error fi_contacto [".$valorArr[$i]."] [".$tipoArr[$i]."] [".$usr_id."]<br>";
  91. print_r($stmt->errorInfo());
  92. //header("Location:".$pag."?error=1");
  93. exit();
  94. }
  95. if(!empty($_POST["emergencia_nombre"]) && !empty($_POST["emergencia_tel"])){
  96. $enom = $_POST["emergencia_nombre"];
  97. $etel = $_POST["emergencia_tel"];
  98. $stmt = $pdo->prepare('Select * from fi_contactoemergencia(:usr, :nombre, :tel)');//inserta contactos
  99. $stmt->bindParam(":usr", $_SESSION["usuario_id"]);
  100. $stmt->bindParam(":nombre", $enom);
  101. $stmt->bindParam(":tel", $etel);
  102. if(!$stmt->execute()){
  103. $pdo->rollBack();
  104. //echo "Error fi_contacto [".$valorArr[$i]."] [".$tipoArr[$i]."] [".$usr_id."]<br>";
  105. print_r($stmt->errorInfo());
  106. //header("Location:".$pag."?error=1");
  107. exit();
  108. }
  109. }
  110. $log = new LogActividad();
  111. $desc_log = "Actualiza perfil usuario ID[".$usr_id."]";
  112. $log->appendLog($_SESSION["usuario_id"], $_SESSION["usuario_nombre"]." ".$_SESSION["usuario_apellidos"], $desc_log);
  113. $stmt = null; // cierra conexion
  114. $pdo->commit();
  115. header("Location:".$pag."?ok=0");
  116. } catch(PDOException $e) {
  117. $pdo->rollBack();
  118. echo "Catch ";
  119. print_r($e);
  120. //header("Location:".$pag."?error=1");
  121. }
  122. ?>