procesar_formularios.php 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407
  1. <?php
  2. require_once('conexionBD.php');
  3. //llamar librería de soap
  4. require_once("soap/nusoap.php");
  5. //Llamar la librería de encriptación
  6. require_once("encriptarSodium.php");
  7. // Set timezone
  8. date_default_timezone_set('America/Monterrey');
  9. ini_set('upload_max_filesize', '10M');
  10. ini_set('post_max_size', '10M');
  11. ini_set('max_input_time', 300);
  12. ini_set('max_execution_time', 300);
  13. mysqli_query($conexion,"SET NAMES utf8");
  14. $error = false;
  15. $data = null;
  16. $msj = '';
  17. //formulario de queremos conocerte al descargar un archivo
  18. //primer formulario
  19. if (isset($_POST['nombre']) && isset($_POST['apellido']) && isset($_POST['email']) && isset($_POST['modalPreguntas'])) {
  20. $email = $_POST['email'];
  21. $nombre = $_POST['nombre'];
  22. $apellido = $_POST['apellido'];
  23. $sql = "INSERT INTO ITT_ASW_CONT (CORR, NOMB, APEL, FECH) VALUES ('".$email."', '".$nombre."', '".$apellido."','".date('Y-m-d')."')";
  24. if (mysqli_query($conexion, $sql)) {
  25. $msj = "<center>
  26. <h2 class='modal-t'>¡Gracias por llenar el formulario!</h2><br>
  27. <p>Serás redirigido al archivo en breve...</p>
  28. <p><img src='media/img/complete.gif' width='300px'/></p>
  29. </center>";
  30. } else {
  31. //codigo de error de entrada duplicada
  32. if ($conexion->errno == 1062) {
  33. $error = true;
  34. $msj = "<p id='error' class='descargar'>Este mail, ya se encuentra en nuestra base de datos, serás reiniciado al formulario donde te quedaste la ultima vez.</p>";
  35. //verificamos los datos del correo
  36. $q = " SELECT RES1,RES2,RES3,RES4,RES5,RES6 FROM ITT_ASW_CONT WHERE CORR ='".$email."' ";
  37. $resultado = mysqli_query($conexion, $q ) or die ( "No se pudo verificar si el registro existe");
  38. //verificamos que preguntas a contestado
  39. while ($casos = mysqli_fetch_array( $resultado) ) {
  40. if ($casos['RES1'] == "") {
  41. //volver cookie a 1
  42. $data = 1;
  43. }else if ($casos['RES2'] == "") {
  44. //volver cookie a 2
  45. $data = 2;
  46. }else if ($casos['RES3'] == "") {
  47. //volver cookie a 3
  48. $data = 3;
  49. }else if ($casos['RES4'] == "") {
  50. //volver cookie a 4
  51. $data = 4;
  52. }else if ($casos['RES5'] == "") {
  53. //volver cookie a 5
  54. $data = 5;
  55. }else if ($casos['RES6'] == "") {
  56. //volver cookie a 6
  57. $data = 6;
  58. }
  59. }
  60. }else{
  61. $error = true;
  62. $msj = "<p id='error' class='descargar' >Código de error #005 Problemas al insertar datos, contacte al administrador.".$conexion->errno."</p>";
  63. }
  64. }
  65. $response = array(
  66. 'error' => $error,
  67. 'msj' => $msj,
  68. 'data' => $data
  69. );
  70. echo json_encode($response);
  71. }
  72. //verificamos si se recibe pr para ver que pregunta estamos recibiendo
  73. $pr = "";
  74. if(isset($_POST['pr'])) {
  75. $pr = $_POST['pr'];
  76. }
  77. //recbimos los datos de la primera pregunta
  78. if ( ($pr == 'pregunta1') && isset($_POST['email']) && isset($_POST['pregunta']) ) {
  79. $pregunta1 = $_POST['pregunta'];
  80. $email = $_POST['email'];
  81. $email1 = $_COOKIE['email'];
  82. if ($email1 != $email) {
  83. echo "<p id='error-r'> El email no coincide con el anterior. </p>";
  84. }else{
  85. //llamando función para actualizar registro
  86. update_preg($email,$pregunta1,1,$conexion);
  87. }
  88. }
  89. //recbimos los datos de la segunda pregunta
  90. if ( ($pr == 'pregunta2') && isset($_POST['email']) && isset($_POST['pregunta']) ) {
  91. $pregunta2 = $_POST['pregunta'];
  92. $email = $_POST['email'];
  93. $email1 = $_COOKIE['email'];
  94. if ($email1 != $email) {
  95. echo "<p id='error-r'> El email no coincide con el anterior. </p>";
  96. }else{
  97. //llamando función para actualizar registro
  98. update_preg($email,$pregunta2,2,$conexion);
  99. }
  100. }
  101. //recbimos los datos de la tercer pregunta
  102. if ( ($pr == 'pregunta3') && isset($_POST['email']) && isset($_POST['pregunta']) ) {
  103. $pregunta3 = $_POST['pregunta'];
  104. $email = $_POST['email'];
  105. $email1 = $_COOKIE['email'];
  106. if ($email1 != $email) {
  107. echo "<p id='error-r'> El email no coincide con el anterior. </p>";
  108. }else{
  109. //llamando función para actualizar registro
  110. update_preg($email,$pregunta3,3,$conexion);
  111. }
  112. }
  113. //recbimos los datos de la cuarta pregunta
  114. if (($pr == 'pregunta4') && isset($_POST['email']) && isset($_POST['pregunta'])) {
  115. $pregunta4 = $_POST['pregunta'];
  116. $email = $_POST['email'];
  117. $email1 = $_COOKIE['email'];
  118. if ($email1 != $email) {
  119. echo "<p id='error-r'> El email no coincide con el anterior. </p>";
  120. } else {
  121. //llamando función para actualizar registro
  122. update_preg($email, $pregunta4, 4, $conexion);
  123. }
  124. }
  125. //funcion par actualizar registros
  126. function update_preg($email,$pregunta,$pr,$conexion){
  127. //verificamos si existe el registro
  128. $q = " SELECT * FROM ITT_ASW_CONT WHERE CORR ='".$email."' ";
  129. $resultado = mysqli_query($conexion, $q ) or die ( "No se pudo verificar si el registro existe");
  130. if (mysqli_num_rows($resultado) == 0) {
  131. echo("<p id='error-r'> No tenemos ese email en nuestros archivos <br> la página será recargada. </p>");
  132. }else{
  133. // Actualizar datos";
  134. $q2 = " UPDATE ITT_ASW_CONT SET RES$pr = '".$pregunta."',FECH ='".date('Y-m-d')."' WHERE CORR = '".$email."' ";
  135. $r = mysqli_query($conexion,$q2) or die ( "No se pudo actualizar los datos del usuario");
  136. echo "<center>
  137. <h2 class='modal-t'>¡Gracias por llenar el formulario!</h2><br>
  138. <p>Serás redirigido al archivo en breve...</p>
  139. <p><img src='media/img/complete.gif' width='300px'/></p>
  140. </center>";
  141. }
  142. }
  143. //recibir formulario de suscripcion al boletín
  144. if (isset($_POST['email']) && isset($_POST['modal'])) {
  145. $email = $_POST['email'];
  146. $fecha = date("Y-m-d H:i:s");
  147. $fields = array("CORREO" => $email);
  148. $fieldsStr = http_build_query($fields);
  149. $ch = curl_init();
  150. curl_setopt($ch, CURLOPT_URL, "https://smart.solerpalau.mx/PR/api/v1/registroBoletin");
  151. curl_setopt($ch, CURLOPT_POST, 1);
  152. curl_setopt($ch, CURLOPT_POSTFIELDS, $fieldsStr);
  153. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  154. $data = curl_exec($ch);
  155. curl_close($ch);
  156. $dataArr = json_decode($data);
  157. if($data->response){
  158. echo "<center>
  159. <p class='modal-t'>¡Suscripción Correcta!</p>
  160. <p>Gracias por suscribirte a nuestro boletín.</p>
  161. <p><img src='media/img/completeStatic.png' width='200px'/></p>
  162. </center>";
  163. }else if($data->result->error){
  164. echo "<center>
  165. <p class='modal-t'>Error al suscribirte,contacte al administrador </p>
  166. <p>". $data->message ."</p>
  167. <p><img src='media/img/frown.png' width='200px'/></p>
  168. </center>";
  169. }else{
  170. echo "<center>
  171. <p class='modal-t'>¡Tú email, ya se encuentra registrado en nuestra Base de datos!</p>
  172. <p>Ya te encuentras recibiendo nuestro boletin.</p>
  173. <p><img src='media/img/completeStatic.png' width='200px'/></p>
  174. </center>";
  175. }
  176. $q = " SELECT * FROM ITT_ASW_NEWS WHERE CORR ='".$email."' ";
  177. $resultado = mysqli_query($conexion, $q );
  178. if (mysqli_num_rows($resultado) == 0) {
  179. $sql = "INSERT INTO ITT_ASW_NEWS (CORR,FECH) VALUES ('".$email."','".$fecha."')";
  180. mysqli_query($conexion, $sql);
  181. /*if (mysqli_query($conexion, $sql))
  182. {
  183. echo "<center>
  184. <p class='modal-t'>¡Suscripción Correcta!</p>
  185. <p>Gracias por suscribirte a nuestro boletín.</p>
  186. <p><img src='media/img/completeStatic.png' width='200px'/></p>
  187. </center>";
  188. }else{
  189. echo "<center>
  190. <p class='modal-t'>Error al suscribirte,contacte al administrador </p>
  191. <p><img src='media/img/frown.png' width='200px'/></p>
  192. </center>";
  193. }*/
  194. }
  195. /*else{
  196. echo "<center>
  197. <p class='modal-t'>¡Tú email, ya se encuentra registrado en nuestra Base de datos!</p>
  198. <p>Ya te encuentras recibiendo nuestro boletin.</p>
  199. <p><img src='media/img/completeStatic.png' width='200px'/></p>
  200. </center>";
  201. }*/
  202. }
  203. //recibir formulario de contacto
  204. if (isset($_POST['aceptar_condiciones'])) {
  205. extract($_REQUEST);
  206. // Realizamos la petición de control:
  207. $recaptcha_url = 'https://www.google.com/recaptcha/api/siteverify';
  208. $recaptcha_secret = '6LfaTp4UAAAAAJv2SNGnE8wCPVGdDq0WyEtPK17D';
  209. $recaptchaGet = file_get_contents($recaptcha_url . '?secret=' . $recaptcha_secret . '&response=' . $recaptcha_response);
  210. $recaptcha = json_decode($recaptchaGet, true);
  211. // Miramos si se considera humano o robot:
  212. if ($recaptcha['success'] == true) {
  213. if ($recaptcha['score'] >= 0.7) {
  214. //buscamos los datos del promotor por estado
  215. if (!empty($estado) && $estado != null) {
  216. $qryZona = "SELECT ZONA FROM ITT_ASW_ZONAS WHERE ESTADO='" . $estado . "' ";
  217. $result = mysqli_query($conexion, $qryZona);
  218. $row = $result->fetch_assoc();
  219. $zona = $row['ZONA'];
  220. } else {
  221. $zona = '';
  222. $estado = '';
  223. }
  224. // Determinar el numero máximo de la zona registrado
  225. $qryNumMax = "SELECT MAX(`NUM`) AS 'NUM' FROM `ITT_ASW_INCI` WHERE `ZPRO` = '".$zona."' ";
  226. $result = mysqli_query($conexion, $qryNumMax);
  227. $row = $result->fetch_assoc();
  228. $numMax = $row['NUM']+1;
  229. // Insertamos datos en tabla local
  230. $sql = "INSERT INTO ITT_ASW_INCI(TIPO,NOMB,APEL,EMPR,DIRE,CP,CIUD,ESTADO,PAIS,TELF,CORR,COMM,FECH,ZPRO,IP,STATUS,NUM) VALUES ('" . $necesito . "','" . $nombre . "',
  231. '" . $apellido . "',
  232. '" . $empresa.', '.$giro. "',
  233. '" . $direccion . "',
  234. '" . $cp . "',
  235. '" . $ciudad . "',
  236. '" . $estado . "',
  237. '" . $pais . "',
  238. '" . $telefono . "',
  239. '" . $email . "','" . trim($comentarios) . "','" . date('Y-m-d H:i:s') . "','" . $zona . "','" . $ipCliente . "','P',".$numMax.")";
  240. if (mysqli_query($conexion, $sql)) {
  241. //obtenemos el ultimo Id insertado en este hilo
  242. $lastId = mysqli_insert_id($conexion);
  243. $newID = $lastId."-".$numMax;
  244. // Preparamos datos para enviar a WS
  245. $dataPlain = $necesito . "|" . $nombre . "|" . $apellido . "|" . $empresa .', '.$giro."|" . $direccion . "|" . $cp . "|" . $ciudad . "|" . $estado . "|" . $pais . "|" . $telefono . "|" . $email . "|" . $comentarios . "|" . date('Y-m-d H:i:s') . "|" . $zona . "|" . $ipCliente . "|" . $newID . '|P|SP';
  246. //se procede a hacer la conexión al webService
  247. $respuesta = conectarWebService($dataPlain, "sendEmail");
  248. if ($respuesta['status'] == 0 && $respuesta['errorDescripcion'] == 'OK') {
  249. $strActualizar = 'UPDATE ITT_ASW_INCI SET PROCESADO="OK" ';
  250. $strActualizar .= 'WHERE ID=' . $lastId;
  251. if (mysqli_query($conexion, $strActualizar)) {
  252. controlError(true, "Muy pronto nos pondremos en contacto contigo :)");
  253. }
  254. } else {
  255. controlError(false, "Tenemos errores: " . json_encode($respuesta));
  256. }
  257. } else {
  258. controlError(false, "Error al insertar tus datos en nuestro sistema, favor de reportar el problema.");
  259. }
  260. } else {
  261. controlError(false, "No hemos podido descubrir que eres un humano");
  262. }
  263. } else {
  264. controlError(false, "Se ha producido un error, se ha agotado el tiempo de espera, para continuar recargue la página.");
  265. }
  266. }
  267. if (isset($_POST['aceptar_condiciones_bolsa'])) {
  268. extract($_REQUEST);
  269. // Realizamos la petición de control:
  270. $recaptcha_url = 'https://www.google.com/recaptcha/api/siteverify';
  271. // $recaptcha_secret = '6LcLVp4UAAAAAMFP4zQqTzXY4dqGg5Tqg6WhrNNq';
  272. $recaptcha_secret = '6LccpqUpAAAAAD7Y23MwdWzuKc8fX5Y2gSToWyeO';
  273. $recaptchaGet = file_get_contents($recaptcha_url . '?secret=' . $recaptcha_secret . '&response=' . $recaptcha_response);
  274. // var_dump($recaptcha_url . '?secret=' . $recaptcha_secret . '&response=' . $recaptcha_response);
  275. $recaptcha = json_decode($recaptchaGet, true);
  276. // Miramos si se considera humano o robot:
  277. if ($recaptcha['success'] == true) {
  278. if ($recaptcha['score'] >= 0.7) {
  279. $target_path = "../media/bolsatrabajo/archivos/";
  280. //CV
  281. $nombreCv = basename($_FILES['cv']['name']);
  282. $nombrecv = explode('.', $nombreCv);
  283. $extCV = $nombrecv[1];
  284. $nombrecv = utf8_decode($nombrecv[0] . "_" . date('Y-m-s-H-m-s')) . "." . $nombrecv[1];
  285. $removeSpaceCV = str_replace(" ", "", $nombrecv);
  286. $cv = $target_path . $removeSpaceCV;
  287. //CARTA
  288. $nombreCarta = basename($_FILES['cartap']['name']);
  289. $nombreC = explode('.', $nombreCarta);
  290. $extCarta = $nombreC[1];
  291. $nombreCarta = utf8_decode($nombreC[0] . "_" . date('Y-m-s-H-m-s')) . "." . $nombreC[1];
  292. $removeSpaceCarta = str_replace(" ", "", $nombreCarta);
  293. $carta = $target_path . $removeSpaceCarta;
  294. //mover archivos a la carpeta
  295. if ((move_uploaded_file($_FILES['cartap']['tmp_name'], $carta)) && (move_uploaded_file($_FILES['cv']['tmp_name'], $cv))) {
  296. //Ya que se copiaron los datos insertamos los datos a la BD
  297. $sql = "INSERT INTO ITT_ASW_BTRA(NOMB,APEL,CORR,TELF,DIRE,CP,CIUD,PAIS,CURR,CARTA,COMM,FECHA) VALUES ('" . $nombre . "','" . $apellidos . "','" . $email . "','" . $telefono . "','" . $direccion . "','" . $cp . "','" . $ciudad . "','" . $pais . "','" . $cv . "','" . $carta . "','" . $comentarios . "','" . date('Y-m-d') . "') ";
  298. if (mysqli_query($conexion, $sql)) {
  299. //obtenemos el ultimo Id insertado en este hilo
  300. $lastId = mysqli_insert_id($conexion);
  301. //Pasamos los archivos a bs4
  302. $cartaD = base64_encode(file_get_contents($carta));
  303. $cvData = base64_encode(file_get_contents($cv));
  304. // Preparamos datos para enviar a WS
  305. $data = $nombre . "|" . $apellidos . "|" . $email . "|" . $telefono . "|" . $direccion . "|" . $cp . "|" . $ciudad . "|" . $pais . "|" . $cvData . "#" . $extCV . "|" . $cartaD . "#" . $extCarta . "|" . $comentarios . "|" . date('Y-m-d') . "|" . $lastId . "|" . "P";
  306. //Nos conectamos al WS y le pasamos los datos y la funcion
  307. $respuesta = conectarWebService($data, "sendEmailBolsa");
  308. if ($respuesta['status'] == 0 && $respuesta['errorDescripcion'] == 'OK') {
  309. controlError(true, "Muy pronto nos pondremos en contacto contigo :) ");
  310. } else {
  311. controlError(false, "Tenemos errores: " . $respuesta['errorDescripcion']);
  312. }
  313. } else {
  314. controlError(false, "Se encontraron errores al insertar los datos a nuestro sistema, por favor reporte el problema.");
  315. }
  316. } else {
  317. controlError(false, "No se pudieron recuperar los archivos, parece que pesan más de lo soportado.");
  318. }
  319. } else {
  320. controlError(false, "No hemos podido descubrir que eres un humano, por favor recarga la Página");
  321. }
  322. } else {
  323. controlError(false, "Captcha repetido o invalido, favor de recargar la Página.");
  324. }
  325. }
  326. function conectarWebService($dataPlain, $function)
  327. {
  328. //$key = 'SPA861201DK4';
  329. //$data = encriptarDatos($dataPlain);
  330. $data = base64_encode($dataPlain);
  331. //url del webservice
  332. $wsdl = "https://smart.solerpalau.mx/PR/WS001_ASW.php?wsdl";
  333. //$wsdl = "http://169.57.64.6/PR/WS001_ASW.php?wsdl";
  334. //Verificamos si esta disponible
  335. $headers = @get_headers($wsdl);
  336. if (preg_match('/^HTTP\/\d\.\d\s+(200|301|302)/', $headers[0])) {
  337. //instanciando un nuevo objeto cliente para consumir el webservice
  338. $client = new nusoap_client($wsdl, 'wsdl');
  339. //pasando los parámetros a un array
  340. $param = array('datos' => $data);
  341. //llamando al método y pasándole el array con los parámetros
  342. $resultado = $client->call($function, $param);
  343. return $resultado;
  344. }
  345. }
  346. function controlError($succes, $mensaje)
  347. {
  348. $response = array('success' => $succes, 'mensaje' => $mensaje);
  349. echo json_encode($response);
  350. }
  351. // Close connection
  352. mysqli_close($conexion);