index.php 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456
  1. <?php
  2. /*
  3. * Copyright (C) 2021 Ángel Benítez Hernández, Echedey López Romero
  4. *
  5. * This program is free software: you can redistribute it and/or modify
  6. * it under the terms of the GNU General Public License as published by
  7. * the Free Software Foundation, either version 3 of the License, or
  8. * (at your option) any later version.
  9. *
  10. * This program is distributed in the hope that it will be useful,
  11. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  12. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  13. * GNU General Public License for more details.
  14. *
  15. * You should have received a copy of the GNU General Public License
  16. * along with this program. If not, see <http://www.gnu.org/licenses/>.
  17. */
  18. // Mostrar errores en pantalla
  19. ini_set('display_errors', '1');
  20. ini_set('display_startup_errors', '1');
  21. error_reporting(E_ALL);
  22. // Reparar salida con Tidy
  23. ini_set('tidy.clean_output', '1');
  24. // Vaciar caché navegador
  25. header('Cache-Control: no-cache');
  26. header('Pragma: no-cache');
  27. // Cargar funciones
  28. require './funciones.php';
  29. // Cargar variables
  30. require './variables.php';
  31. // Operación principal
  32. if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['operacion'])
  33. && $_POST['operacion'] === 'procesar') {
  34. if (isset($_POST['representacion']) && $_POST['representacion'] !== '') {
  35. $Dato = FiltrarValor($_POST['representacion']);
  36. ValidarRepresentacion($Dato, $Respuestas, $Errores);
  37. } else {
  38. $Mensaje = 'No se ha establecido quien presenta el formulario.';
  39. array_push($Errores, $Mensaje);
  40. }
  41. if (isset($_POST['documento']) && $_POST['documento'] !== '') {
  42. $Dato = FiltrarValor($_POST['documento']);
  43. ValidarDocumento($Dato, $Documentos, $Respuestas, $Errores);
  44. } else {
  45. $Mensaje = 'No se ha especificado el tipo de documento.';
  46. array_push($Errores, $Mensaje);
  47. }
  48. if (isset($_POST['identificacion']) && $_POST['identificacion'] !== '') {
  49. $Dato = FiltrarValor($_POST['identificacion']);
  50. ValidarIdentificacion($Dato, $Respuestas['documento'], $Respuestas, $Errores);
  51. } else {
  52. $Mensaje = 'No se ha especificado el número de identificación.';
  53. array_push($Errores, $Mensaje);
  54. }
  55. if (isset($_POST['nombre']) && $_POST['nombre'] !== '') {
  56. $Dato = FiltrarValor($_POST['nombre']);
  57. ValidarNombre($Dato, $Respuestas, $Errores);
  58. } else {
  59. $Mensaje = 'No se ha especificado el nombre.';
  60. array_push($Errores, $Mensaje);
  61. }
  62. if (isset($_POST['primer_apellido']) && $_POST['primer_apellido'] !== '') {
  63. $Dato = FiltrarValor($_POST['primer_apellido']);
  64. ValidarPrimerApellido($Dato, $Respuestas, $Errores);
  65. } else {
  66. $Mensaje = 'No se ha especificado el primer apellido.';
  67. array_push($Errores, $Mensaje);
  68. }
  69. if (isset($_POST['segundo_apellido']) && $_POST['segundo_apellido'] !== '') {
  70. $Dato = FiltrarValor($_POST['segundo_apellido']);
  71. ValidarSegundoApellido($Dato, $Respuestas, $Errores);
  72. }
  73. if (isset($_POST['calidad_de']) && $_POST['calidad_de'] !== '') {
  74. $Dato = FiltrarValor($_POST['calidad_de']);
  75. ValidarCalidadDe($Dato, $Calidades, $Respuestas, $Errores);
  76. } else {
  77. $Mensaje = 'No se ha especificado quien está en propiedad de los
  78. teléfonos.';
  79. array_push($Errores, $Mensaje);
  80. }
  81. if (isset($_POST['telefono_fijo']) && $_POST['telefono_fijo'] !== '') {
  82. $Dato = FiltrarValor($_POST['telefono_fijo']);
  83. ValidarTelefonoFijo($Dato, $Respuestas, $Errores);
  84. }
  85. if (isset($_POST['telefono_movil']) && $_POST['telefono_movil'] !== '') {
  86. $Dato = FiltrarValor($_POST['telefono_movil']);
  87. ValidarTelefonoMovil($Dato, $Respuestas, $Errores);
  88. } else {
  89. $Mensaje = 'No se ha especificado el teléfono móvil.';
  90. array_push($Errores, $Mensaje);
  91. }
  92. if (isset($_POST['email']) && $_POST['email'] !== '') {
  93. $Dato = FiltrarValor($_POST['email']);
  94. ValidarEmail($Dato, $Respuestas, $Errores);
  95. } else {
  96. $Mensaje = 'No se ha especificado una dirección de correo '
  97. . 'electrónico.';
  98. array_push($Errores, $Mensaje);
  99. }
  100. if (isset($_POST['tipo_via']) && $_POST['tipo_via'] !== '') {
  101. $Dato = FiltrarValor($_POST['tipo_via']);
  102. ValidarTipoVia($Dato, $TiposVia, $Respuestas, $Errores);
  103. } else {
  104. $Mensaje = 'No se ha especificado el tipo de vía.';
  105. array_push($Errores, $Mensaje);
  106. }
  107. if (isset($_POST['nombre_via']) && $_POST['nombre_via'] !== '') {
  108. $Dato = FiltrarValor($_POST['nombre_via']);
  109. ValidarNombreVia($Dato, $Respuestas['tipo_via'], $Respuestas, $Errores);
  110. } else {
  111. $Mensaje = 'No se ha especificado el nombre de la vía.';
  112. array_push($Errores, $Mensaje);
  113. }
  114. if (isset($_POST['numero']) && $_POST['numero'] !== '') {
  115. $Dato = FiltrarValor($_POST['numero']);
  116. ValidarNumero($Dato, $Respuestas, $Errores);
  117. } else {
  118. $Mensaje = 'No se ha especificado el número del domicilio.';
  119. array_push($Errores, $Mensaje);
  120. }
  121. if (isset($_POST['bloque']) && $_POST['bloque'] !== '') {
  122. $Dato = FiltrarValor($_POST['bloque']);
  123. ValidarBloque($Dato, $Respuestas, $Errores);
  124. }
  125. if (isset($_POST['escalera']) && $_POST['escalera'] !== '') {
  126. $Dato = FiltrarValor($_POST['escalera']);
  127. ValidarEscalera($Dato, $Respuestas, $Errores);
  128. }
  129. if (isset($_POST['piso']) && $_POST['piso'] !== '') {
  130. $Dato = FiltrarValor($_POST['piso']);
  131. ValidarPiso($Dato, $Respuestas, $Errores);
  132. }
  133. if (isset($_POST['portal']) && $_POST['portal'] !== '') {
  134. $Dato = FiltrarValor($_POST['portal']);
  135. ValidarPortal($Dato, $Respuestas, $Errores);
  136. }
  137. if (isset($_POST['letra']) && $_POST['letra'] !== '') {
  138. $Dato = FiltrarValor($_POST['letra']);
  139. ValidarLetra($Dato, $Respuestas, $Errores);
  140. }
  141. if (isset($_POST['puerta']) && $_POST['puerta'] !== '') {
  142. $Dato = FiltrarValor($_POST['puerta']);
  143. ValidarPuerta($Dato, $Respuestas, $Errores);
  144. }
  145. if (isset($_POST['complemento']) && $_POST['complemento'] !== '') {
  146. $Dato = FiltrarValor($_POST['complemento']);
  147. ValidarComplemento($Dato, $Respuestas, $Errores);
  148. }
  149. if (isset($_POST['fecha']) && $_POST['fecha'] !== '') {
  150. $Dato = FiltrarValor($_POST['fecha']);
  151. ValidarFecha($Dato, $Respuestas, $Errores);
  152. } else {
  153. $Mensaje = 'No se ha especificado la fecha.';
  154. array_push($Errores, $Mensaje);
  155. }
  156. if (isset($_POST['pais']) && $_POST['pais'] !== '') {
  157. $Dato = FiltrarValor($_POST['pais']);
  158. ValidarPais($Dato, $Paises, $Respuestas, $Errores);
  159. } else {
  160. $Errores = 'No se ha especificado el país.';
  161. }
  162. if (isset($_POST['provincia']) && $_POST['provincia'] !== '') {
  163. $Dato = FiltrarValor($_POST['provincia']);
  164. ValidarProvincia($Dato, $Respuestas['pais'],
  165. $Paises, $Provincias, $Respuestas, $Errores);
  166. } else {
  167. $Mensaje = 'No se ha especificado la provincia.';
  168. array_push($Errores, $Mensaje);
  169. }
  170. if (isset($_POST['isla']) && $_POST['isla'] !== '') {
  171. $Dato = FiltrarValor($_POST['isla']);
  172. $ValoresPosibles = GenerarValoresPosibles($Islas,
  173. $Respuestas['provincia'], 'provincia_id');
  174. ValidarIsla($Dato, $ValoresPosibles, $Respuestas, $Errores);
  175. } else {
  176. $Errores = 'No se ha especificado la isla.';
  177. }
  178. if (isset($_POST['municipio']) && $_POST['municipio'] !== '') {
  179. $Dato = FiltrarValor($_POST['municipio']);
  180. $ValoresPosibles = GenerarValoresPosibles($Municipios,
  181. $Respuestas['isla'], 'isla_id');
  182. ValidarMunicipio($Dato, $ValoresPosibles, $Respuestas, $Errores);
  183. } else {
  184. $Mensaje = 'No se ha especificado el municipio.';
  185. array_push($Errores, $Mensaje);
  186. }
  187. if (isset($_POST['localidad']) && $_POST['localidad'] !== '') {
  188. $Dato = FiltrarValor($_POST['localidad']);
  189. $ValoresPosibles = GenerarValoresPosibles($Localidades,
  190. $Respuestas['municipio'], 'municipio_id');
  191. ValidarLocalidad($Dato, $ValoresPosibles, $Respuestas, $Errores);
  192. } else {
  193. $Mensaje = 'No se ha especificado la localidad.';
  194. array_push($Errores, $Mensaje);
  195. }
  196. if (isset($_POST['cp']) && $_POST['cp'] !== '') {
  197. $Dato = FiltrarValor($_POST['cp']);
  198. $ValoresPosibles = GenerarValoresPosibles($CPs,
  199. $Respuestas['municipio'], 'municipio_id');
  200. ValidarCP($Dato, $Respuestas['localidad'], $ValoresPosibles, $Respuestas, $Errores);
  201. } else {
  202. $Mensaje = 'No se ha especificado el código postal (CP).';
  203. array_push($Errores, $Mensaje);
  204. }
  205. if (isset($_POST['horfandad']) && $_POST['horfandad'] !== '') {
  206. $Dato = FiltrarValor($_POST['horfandad']);
  207. ValidarHorfandad($Dato, $Respuestas);
  208. }
  209. if (isset($_POST['tutela_guarda']) && $_POST['tutela_guarda'] !== '') {
  210. $Dato = FiltrarValor($_POST['tutela_guarda']);
  211. ValidarTutelaGuarda($Dato, $Respuestas);
  212. }
  213. if (isset($_POST['observaciones']) && $_POST['observaciones'] !== '') {
  214. $Dato = FiltrarValor($_POST['observaciones']);
  215. ValidarObservaciones($Dato, $Respuestas, $Errores);
  216. }
  217. if (isset($_POST['itinerario']) && $_POST['itinerario'] !== '') {
  218. $Dato = FiltrarValor($_POST['itinerario']);
  219. ValidarItinerario($Dato, $Respuestas, $Errores);
  220. } else {
  221. $Mensaje = 'No se ha especificado un itinerario.';
  222. array_push($Errores, $Mensaje);
  223. }
  224. if (isset($_POST['lengua_literatura_1']) && $_POST['lengua_literatura_1'] !== '') {
  225. $Dato = FiltrarValor($_POST['lengua_literatura_1']);
  226. ValidarLenguaLiteratura1($Dato, $Respuestas, $Errores);
  227. } else {
  228. $Mensaje = 'No se ha seleccionado la asignatura de Lengua Castellana '
  229. . 'y Literatura en el Bloque 1.';
  230. array_push($Errores, $Mensaje);
  231. }
  232. if (isset($_POST['filosofia']) && $_POST['filosofia'] !== '') {
  233. $Dato = FiltrarValor($_POST['filosofia']);
  234. ValidarFilosofia($Dato, $Respuestas, $Errores);
  235. } else {
  236. $Mensaje = 'No se ha seleccionado la asignatura de Filosofía en el '
  237. . 'Bloque 1.';
  238. array_push($Errores, $Mensaje);
  239. }
  240. if (isset($_POST['ed_fisica']) && $_POST['ed_fisica'] !== '') {
  241. $Dato = FiltrarValor($_POST['ed_fisica']);
  242. ValidarEdFisica($Dato, $Respuestas, $Errores);
  243. } else {
  244. $Mensaje = 'No se ha seleccionado la asignatura de Educación Física '
  245. . 'en el Bloque 1.';
  246. array_push($Errores, $Mensaje);
  247. }
  248. if (isset($_POST['matematicas_1']) && $_POST['matematicas_1'] !== '') {
  249. $Dato = FiltrarValor($_POST['matematicas_1']);
  250. ValidarMatematicas1($Dato, $Respuestas, $Errores);
  251. } else {
  252. $Mensaje = 'No se ha seleccionado la asignatura de Matemáticas I '
  253. . 'en el Bloque 1.';
  254. array_push($Errores, $Mensaje);
  255. }
  256. if (isset($_POST['fisica_quimica']) && $_POST['fisica_quimica'] !== '') {
  257. $Dato = FiltrarValor($_POST['fisica_quimica']);
  258. ValidarFisicaQuimica($Dato, $Respuestas, $Errores);
  259. } else {
  260. $Mensaje = 'No se ha seleccionado la asignatura de Física y Química '
  261. . 'en el Bloque 1.';
  262. array_push($Errores, $Mensaje);
  263. }
  264. if (isset($_POST['tutoria']) && $_POST['tutoria'] !== '') {
  265. $Dato = FiltrarValor($_POST['tutoria']);
  266. ValidarTutoria($Dato, $Respuestas, $Errores);
  267. } else {
  268. $Mensaje = 'No se ha seleccionado la asignatura de Tutoría en el '
  269. . 'en el Bloque 1.';
  270. array_push($Errores, $Mensaje);
  271. }
  272. if (isset($_POST['optativa_1']) && $_POST['optativa_1'] !== '') {
  273. $Dato = FiltrarValor($_POST['optativa_1']);
  274. ValidarOptativa1($Dato, $Respuestas, $Errores);
  275. } else {
  276. $Mensaje = 'No se ha especificado la optativa del Bloque 2.';
  277. array_push($Errores, $Mensaje);
  278. }
  279. if (isset($_POST['optativa_2']) && $_POST['optativa_2'] !== '') {
  280. $Dato = FiltrarValor($_POST['optativa_2']);
  281. ValidarOptativa2($Dato, $Respuestas['itinerario'],
  282. $Respuestas, $Errores);
  283. } else {
  284. $Mensaje = 'No se ha especificado la optativa del Bloque 3.';
  285. array_push($Errores, $Mensaje);
  286. }
  287. if (isset($_POST['optativa_3']) && $_POST['optativa_3'] !== '') {
  288. $Dato = FiltrarValor($_POST['optativa_3']);
  289. ValidarOptativa3($Dato, $Respuestas['itinerario'],
  290. $Respuestas['optativa_1'], $Respuestas, $Errores);
  291. } else {
  292. $Mensaje = 'No se ha especificado la optativa del Bloque 4.';
  293. array_push($Errores, $Mensaje);
  294. }
  295. if (isset($_POST['optativa_4']) && $_POST['optativa_4'] !== '') {
  296. $Dato = FiltrarValor($_POST['optativa_4']);
  297. ValidarOptativa4($Dato, $Respuestas, $Errores);
  298. } else {
  299. $Mensaje = 'No se ha especificado la optativa del Bloque 5.';
  300. array_push($Errores, $Mensaje);
  301. }
  302. if (isset($_POST['tratamiento']) && $_POST['tratamiento'] !== '') {
  303. $Dato = FiltrarValor($_POST['tratamiento']);
  304. ValidarTratamiento($Dato, $Respuestas, $Errores);
  305. } else {
  306. $Mensaje = 'No se ha especificado el consentimiento del tratamiento '
  307. . 'de datos general.';
  308. array_push($Errores, $Mensaje);
  309. }
  310. if (isset($_POST['difusion_web']) && $_POST['difusion_web'] !== '') {
  311. $Dato = FiltrarValor($_POST['difusion_web']);
  312. ValidarDifusionWeb($Dato, $Respuestas, $Errores);
  313. } else {
  314. $Mensaje = 'No se ha especificado el consentimiento de la difusión '
  315. . 'en el sitio web.';
  316. array_push($Errores, $Mensaje);
  317. }
  318. if (isset($_POST['difusion_app']) && $_POST['difusion_app'] !== '') {
  319. $Dato = FiltrarValor($_POST['difusion_app']);
  320. ValidarDifusionApp($Dato, $Respuestas, $Errores);
  321. } else {
  322. $Mensaje = 'No se ha especificado el consentimiento de la difusión en
  323. la app.';
  324. array_push($Errores, $Mensaje);
  325. }
  326. if (isset($_POST['difusion_facebook']) && $_POST['difusion_facebook'] !== '') {
  327. $Dato = FiltrarValor($_POST['difusion_facebook']);
  328. ValidarDifusionFacebook($Dato, $Respuestas, $Errores);
  329. } else {
  330. $Mensaje = 'No se ha especificado el consentimiento de la difusión en
  331. Facebook.';
  332. array_push($Errores, $Mensaje);
  333. }
  334. if (isset($_FILES['fichero_identificacion']) && $_FILES['fichero_identificacion']['tmp_name'] !== '') {
  335. $Dato = $_FILES['fichero_identificacion'];
  336. ValidarFichero($Dato, 'fichero_identificacion', $Respuestas, $Errores);
  337. }
  338. if (isset($_FILES['fichero_certificacion']) && $_FILES['fichero_certificacion']['tmp_name'] !== '') {
  339. $Dato = $_FILES['fichero_certificacion'];
  340. ValidarFichero($Dato, 'fichero_certificacion', $Respuestas, $Errores);
  341. }
  342. if (count($Errores) === 0) {
  343. GuardarRespuestas($Respuestas, './almacen/datos.json');
  344. $Resultado = '<span class="font-weight-bold d-block p-2 text-center rounded correcto">Su solicitud será '
  345. . 'procesada. En breve nos pondremos en contacto con ud para '
  346. . 'facilitarle más información.' . '</span>';
  347. } else {
  348. $Resultado = ImprimirErrores($Errores);
  349. }
  350. }
  351. // Cargar vista
  352. require './vista.php';