PageRenderTime 64ms CodeModel.GetById 10ms RepoModel.GetById 0ms app.codeStats 1ms

/Cuestionario2.php

https://bitbucket.org/sergiohzlz/reportaprod
PHP | 467 lines | 302 code | 93 blank | 72 comment | 36 complexity | ca8f66dc6465b3523c6fddf2b5c892dc MD5 | raw file
Possible License(s): GPL-2.0, GPL-3.0, AGPL-1.0, LGPL-2.1
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//ES">
  2. <meta http-equiv="Content-type" content="text/html; charset=UTF-8" />
  3. <link href="EstiloReporta2011.css" rel="stylesheet" type="text/css">
  4. <script type="text/javascript" src="jquery-1.4.2.js"></script>
  5. <html>
  6. <head>
  7. <title>REPORTA: Sistema Ciudadano de Monitoreo de Enfermedades Respiratorias</title>
  8. <?php require_once('config.php');?>
  9. </head>
  10. <body>
  11. <div class="Contenedor">
  12. <?php include_once( 'cabeza.php' );
  13. include_once('funciones.php');
  14. include_once('auxiliares.php');
  15. include_once('ColumnaAdminNoticias.php'); ?>
  16. <div class="Cuerpo conFondo">
  17. <div class="textCuerpo justify Secundaria" >
  18. <h3> Cuestionario</h3>
  19. <?php
  20. /*
  21. Antes que nada, los numeros de los cuestionarios <-----------------------------
  22. */
  23. $cuestinic = 7; // Inicial
  24. $cuestpost = 6; // Rutrinario
  25. $cuestdoct = 3; // Tras volver del Doc
  26. $cuestcucho = 4;
  27. /*
  28. Luego la conexión a la DB
  29. */
  30. // =============
  31. // ------- CONEXION A BASE DE DATOS --------
  32. // -- (poniendo charset a utf8) --
  33. include_once('conexion.php');
  34. //mysql_set_charset('utf8',$conexion);
  35. $con = new DBManager;
  36. $exito = False; $mom = 0;
  37. if (!$con->conectar()) {
  38. echo "<H2>CONEXION CON LA BASE FALLIDA</H2>"; }
  39. mysql_set_charset('utf8',$con->conexion());
  40. include_once('funcionesCuestionario.php');
  41. /*
  42. -- Ahora lo principal ---------------
  43. */
  44. /*
  45. Las entradas hay que limpiarlas contra SQL injection
  46. */
  47. $Pemail = clean($_POST['Femail']);
  48. $Pclav1 = clean($_POST['Fclav1']);
  49. $Pestado = clean($_POST['Festado']);
  50. $Pmunicipio = clean($_POST['Fmunicipio']);
  51. $Pcp = clean($_POST['CCCP']);
  52. $Pcp2 = clean($_POST['CCCP2']);
  53. $Ppaso = clean($_POST['Fpaso']); // <- Indica si el usuario acaba de llenar un cuestionario
  54. $Pquest = clean($_POST['Fquest']); // <- Indica cual es el cuestionario que el usuario acaba de llenar
  55. $Pcalle = clean($_POST['Fcalle']);
  56. $Pentre1 = clean($_POST['Fentre1']);
  57. $Pentre2 = clean($_POST['Fentre2']);
  58. $Pfechaapasar = clean($_POST['Ffechaapasar']);
  59. $Qusuario = mysql_query("SELECT * FROM usuario WHERE EMail='".$Pemail."' AND ( AFavor=sha1('".$Pclav1."') OR AFavor='".$Pclav1."')");
  60. $usuario = mysql_fetch_array($Qusuario);
  61. $notification_id = $_POST['Fcount'];
  62. // Tiene que haber uno y solo uno con este correo y contraseña
  63. if (mysql_num_rows($Qusuario)!=1) // <- Si es un usuario inválido
  64. {
  65. echo "<center><FONT color=FF0000> Correo electrónico o contraseña incorrectos, intentalo de nuevo</FONT></center><br>";
  66. }
  67. else
  68. { //Si es un usuario válido
  69. if($Ppaso=="ALLENNNNNAR")
  70. {
  71. if($Pquest==$cuestinic) // <- Acaba de llenar el cuestionario inicial, hay que guardar su municipio.
  72. {
  73. if ($Pcp==NULL)
  74. {
  75. $Pcp = "MALO";
  76. }
  77. $actualizar = mysql_query("UPDATE usuario SET Municipio=\"".$Pmunicipio."\" WHERE IDUsuario=".$usuario['IDUsuario']);
  78. $actualizar = mysql_query("UPDATE usuario SET CP=\"".$Pcp."\" WHERE IDUsuario=".$usuario['IDUsuario']);
  79. $actualizar = mysql_query("UPDATE usuario SET CP2=\"".$Pcp2."\" WHERE IDUsuario=".$usuario['IDUsuario']);
  80. $actualizar = mysql_query("UPDATE usuario SET ENTRE1=\"".$Pentre1."\" WHERE IDUsuario=".$usuario['IDUsuario']);
  81. $actualizar = mysql_query("UPDATE usuario SET ENTRE2=\"".$Pentre2."\" WHERE IDUsuario=".$usuario['IDUsuario']);
  82. $actualizar = mysql_query("UPDATE usuario SET CALLE=\"".$Pcalle."\" WHERE IDUsuario=".$usuario['IDUsuario']);
  83. /*
  84. Aquí analizamos sus respuestas y escogemos, en función de ello un cuestionario a desplegarle.
  85. Para ello cambiamos el valor de la variable $cuestpost
  86. */
  87. if ((clean($_POST['37'])!=305)&&(clean($_POST['37'])!=0))
  88. {
  89. // Tuvo algo esta semana... hay que mandarle al cucho con la fecha reciente
  90. $cambiaronelcuest = 1;
  91. $fechaaponer = $_POST['37'];
  92. }
  93. if ((clean($_POST['38'])!=314)&&(clean($_POST['38'])!=0))
  94. {
  95. // Tuvo algo en los últimos dos mese.. hay que mandarle el cucho con la fecha remota
  96. $cambiaronelcuest = 1; // <-- Con esto hacemos que ponga el campo fecha artificialmente
  97. $fechaaponer = $_POST['38'];
  98. if ((clean($_POST['37'])!=305)&&(clean($_POST['37'])!=0))
  99. {
  100. $fechaaponer = $_POST['37'];
  101. $fechaapasar = $_POST['38'];
  102. // El probe tipo tuvo ADEMAS, algo esta semana
  103. }
  104. }
  105. } // FIN de Acaba de llenar el cuestionario inicial
  106. // Debemos verificar que haya pasado el tiempo suficiente. y que no esté llenando por segunda vez el cuestionario inicial
  107. $esinicialrepetido = 0;
  108. if (($Pquest == 1)||($Pquest == $cuestinic))
  109. {
  110. $QREP = mysql_query("SELECT * FROM encuesta WHERE IDCuestionario = 1 AND IDUsuario=".$usuario['IDUsuario']."");
  111. if (mysql_num_rows($QREP)>0)
  112. {
  113. $esinicialrepetido=1;
  114. }
  115. }
  116. if (haesperado($usuario['IDUsuario'])&&($esinicialrepetido==0))
  117. {
  118. /* ******************************************************------
  119. Primero guardamos en la tabla encuesta la info de que acaban de llenar
  120. El IDCuestionario, IDUsuario y la fecha actual
  121. */
  122. $insertar = mysql_query("INSERT into encuesta (IDUsuario,Fecha,IDCuestionario) VALUES (".$usuario['IDUsuario'].",\"".date("Y-m-d H-i-s")."\",".$Pquest.")");
  123. /*
  124. Obtenemos el valor de IDEncuesta para encuesta que acabamos de llenar
  125. */
  126. $IDdeEstaEncuesta = mysql_insert_id();
  127. if ((($Pquest==$cuestpost)&&($Pfechaapasar == NULL))||($Pquest==$cuestdoct))
  128. {
  129. /*
  130. Y guardamos la fecha en que acaba de llenar este cuestionario, para que no lo llene muy seguido. Pero solo si no acaba de llenar el inicial
  131. */
  132. $actualizar = mysql_query("UPDATE usuario SET UltimaRespuesta=\"".date("Y-m-d H-i-s")."\" WHERE IDUsuario=".$usuario['IDUsuario']);
  133. }
  134. if ($Pquest==$cuestdoct)
  135. {
  136. // Acaba de mandarnos a guardar el cuestionario de doctor, hay que quitarle la marca.
  137. echo "<br>Gracias por colaborar y tener una actitud responsable al ir al doctor<br>";
  138. $actualizar = mysql_query("UPDATE usuario SET AlDoctor=0 WHERE IDUsuario=".$usuario['IDUsuario']);
  139. }
  140. /*
  141. Ahora buscamos todas las preguntas del cuestionario que acaba de llenar
  142. Tomamos el ID de cada una y examinamos el arreglo $_POST en ese índice para ver la respuesta que escogio.
  143. A cada respuesta, hacemos una entrada (numencuesta,idrespuesta) en la tabla valoresencuestas
  144. */
  145. // ------
  146. // INICIA PROPIAMENTE EL L L E N A D O D E E N C U E S T A
  147. // ___________________________________________________-----
  148. $preguntas = mysql_query("SELECT * FROM relCuestPreg where IDCuestionario = ".$Pquest);
  149. while($rowP = mysql_fetch_array($preguntas)) // POR CADA PREGUNTA
  150. {
  151. $contpregunta = mysql_query("SELECT * FROM pregunta where IDPregunta = ".$rowP['IDPregunta']);
  152. $rowC = mysql_fetch_array($contpregunta);
  153. if ($rowC['Varias']==0) // <-- Si la pregunta solo tiene una opcion
  154. {
  155. $respuesta=clean($_POST[$rowP['IDPregunta']]);
  156. $insertar = mysql_query("INSERT into valoresEncuesta (IDEncuesta,IDRespuesta) VALUES(".$IDdeEstaEncuesta.",".$respuesta.")");
  157. }
  158. else
  159. {
  160. $respuestasmultiples = mysql_query("SELECT * FROM respuesta where IDPregunta = ".$rowP['IDPregunta']);
  161. while ($rowA = mysql_fetch_array($respuestasmultiples)) // Por cada una de las posibles respuestas
  162. {
  163. $respuesta=clean($_POST['RR'.$rowA['IDRespuesta']]);
  164. if ($respuesta)
  165. {
  166. $insertar = mysql_query("INSERT into valoresEncuesta (IDEncuesta,IDRespuesta) VALUES(".$IDdeEstaEncuesta.",".$rowA['IDRespuesta'].")");
  167. }
  168. }
  169. }
  170. }
  171. include_once('funcionesApalanadoras.php');
  172. hacerUsuarios();
  173. // TERMINA EL L L E N A D O D E E N C U E S T A
  174. // Hay que actualizar los datos del usuario en el script por si ahora si tiene municipio
  175. // ================================================
  176. // RUBEN: CODIGO DE NOTIFICACIONES
  177. // ================================================
  178. /* require( "config.php" );
  179. require( "notificaciones/NotificationMgr.php" );
  180. $notifMgr = new NotificationMgr();
  181. $notifMgr->remove( $Pemail );*/
  182. // ================================================
  183. $Qusuario = mysql_query("SELECT * FROM usuario WHERE EMail='".$Pemail."' AND ( AFavor=sha1('".$Pclav1."') OR AFavor='".$Pclav1."')");
  184. $usuario = mysql_fetch_array($Qusuario);
  185. $PID = clean($usuario['IDUsuario']);
  186. } // No ha esperado lo sufciente para volver a participar, cómo llego aqui???
  187. else
  188. {
  189. //Esta tratando de enviar una encuesta muy pronto
  190. }
  191. } // FIN de hay que llenar
  192. // Ya escribimos a la base de datos todo lo que teniamos que escribir... ahora hay que mostrarle los cuestionarios pertinentes
  193. if ($usuario['Municipio']==NULL) // <= El usuario acaba de registrarse, en este caso este script no ha escrito nada a la DB.
  194. {
  195. /*
  196. Hay que pedirle su municipio
  197. Y mostarle el cuestionario inicial
  198. */
  199. echo "Por ser la primera vez, por favor responde estas preguntas para que tu participación sea más valiosa<BR>";
  200. echo "Este cuestionario sólo tendrás que llenarlo una vez.<BR><BR>";
  201. $mpos = mysql_query("SELECT * FROM municipios WHERE Estado= ".$usuario['Estado']." ORDER BY Municipio");
  202. ?>
  203. <Form name="laforma" method="post" action="Cuestionario.php">
  204. <INPUT type="hidden" name="Femail" value="<?php echo $Pemail; ?>">
  205. <INPUT type="hidden" name="Fclav1" value="<?php echo $Pclav1; ?>">
  206. <INPUT type="hidden" name="Fquest" value="<?php echo $cuestinic; ?>">
  207. <INPUT type="hidden" name="Fpaso" value="ALLENNNNNAR">
  208. <hr>
  209. <table width="100%">
  210. <p><label for"Fmunicipio" ><b> ¿En qué municipio o delegación vives? </b></label>
  211. <select name="Fmunicipio" ID="Fmunicipio" >
  212. <?php // ---- Este select muestra todos los municipios del estado que nos pasaron
  213. while($mipio = mysql_fetch_array($mpos))
  214. {
  215. echo "<option value=\"".$mipio['Municipio']."\">".$mipio['Municipio']."</option>\n";
  216. }
  217. ?> </select>
  218. </p><hr class="entrePreguntas">
  219. <p><label for="CCCP"><b>¿Cuál es el código postal de tu casa?</b></label> <input type="text" name="CCCP" id="CCCP"> </p>
  220. <hr class="entrePreguntas">
  221. <p>
  222. <label for="Fcalle"><b>¿En qué calle está tu casa?</b><br><u>Estrictamente opcional</u></label>
  223. <input type="text" name="Fcalle" id="Fcalle" >
  224. </p>
  225. <hr class="entrePreguntas">
  226. <p>
  227. <label for="Fentre1"><b>Entre las calles: </b><br><u>Estrictamente opcional</u> </label>
  228. <fieldset id="entres">
  229. <input type="text" name="Fentre1" > y <br> <input type="text" name="Fentre2">
  230. </fieldset>
  231. </p>
  232. <hr class="entrePreguntas">
  233. <p><label for="CCCP2"><b>¿Cuál es el código postal de tu trabajo o escuela?</b></label> <input type="text" name="CCCP2" id="CCCP2"> </p>
  234. <hr class="entrePreguntas"><p>
  235. <?php
  236. echo muestracuest($cuestinic);
  237. ?>
  238. <p></p>
  239. <p>
  240. <INPUT class="enviar" type="submit" value="Continuar al cuestionario rutinario" name="terminoquestI">
  241. </p>
  242. </form>
  243. <?php
  244. } // FIN DE MUNICIPIO == NULL ES DECIR, FIN DE ES UN USUARIO NUEVO, MOSTRARLE EL INICIAL
  245. else
  246. { //El usuario ya lleno el cuestionario inicial
  247. if (($Pquest==$cuestpost)&&($Pfechaapasar == ""))
  248. // Además acaba de llenar el cuestionario posterior y no tendrá que llenar el siguiente. O acaba de llenar el inicial y no tuvo problema alguno.
  249. {
  250. /*
  251. No queda más que agradecerle;
  252. */
  253. if (aldoctor($_POST)) // Si hay que mandarlo al doctor
  254. {
  255. echo "La definición operacional de la Secretaría de Salud de caso sospechoso de influenza es: Fiebre y alguna de las siguientes: odinofagia (dolor al tragar) o tos.";
  256. echo "<br><br>Si cumples con estos síntomas, debes ir al doctor para una evaluación más profunda.<br>";
  257. echo "<br><br>Así mismo, te recordamos las medidas sanitarias recomendadas: lavarse frecuentemente las manos, de preferencias con jabón líquido; al toser o estornudar, cubrir la boca con un papel y tirarlo en una bolsa de plástico, o utilizar el ángulo interno del codo. Para ver más información al respecto, puedes acceder <a href=\"http://portal.salud.gob.mx/contenidos/noticias/influenza/preguntas.html\">al sitio de preguntas y respuestas de la Secretaría de Salud.</a><br>";
  258. $actualizar = mysql_query("UPDATE usuario SET AlDoctor=1 WHERE IDUsuario=".$usuario['IDUsuario']);
  259. }
  260. echo "<BR>Gracias por llenar el cuestionario. Por favor regresa en una semana para seguir ayudando a monitorear, recuerda que sólo lleva un minuto. <br><br>La proxima vez solo tendrás que introducir información si tuviste síntomas en la última semana.<b>".$Pfechaapasar."</b>";
  261. echo "<br> ¡Y pasa la voz!<br><br>";
  262. echo"<br><br>
  263. Aquí te mostramos como ha evolucionado tu estado de salud con respecto a los demás participantes y a los participantes que residen en el mismo estado de la república que .";?>
  264. <?
  265. echo "<p><img src=\"cuentas/cuentaInsidIndiv.php?usu=".((string)$usuario['IDUsuario'])."\" width=500 ></p>";
  266. }
  267. else // No acaba de llenar el posterior, o tiene que llenarlo de nuez porque se enfermo dos veces así que debe llenarlo ahora
  268. {
  269. if ($usuario['AlDoctor']==1) // Le habiamos dicho que fuera al doctor
  270. {
  271. /*
  272. Aquí hay que poner la parte de las preguntas
  273. de cuando regresa del doctor
  274. */
  275. ?>
  276. La última vez que participaste, mostrabas un conjunto de síntomas que ameritaba ir al doctor.
  277. <Form name="laforma" method="post" action="Cuestionario.php">
  278. <INPUT type="hidden" name="Femail" value="<?php echo $Pemail; ?>">
  279. <INPUT type="hidden" name="Fclav1" value="<?php echo $Pclav1; ?>">
  280. <INPUT type="hidden" name="Fquest" value="<?php echo $cuestdoct; ?>">
  281. <INPUT type="hidden" name="Fpaso" value="ALLENNNNNAR">
  282. <hr>
  283. <table width="100%">
  284. <?php
  285. echo muestracuest($cuestdoct);
  286. ?>
  287. <p></p>
  288. <p>
  289. <INPUT class="enviar LABI_<?php echo $BloquePreg ?>" type="submit" value="Terminar" name="terminoquestd">
  290. </p>
  291. </form>
  292. <?php
  293. } // Fin de le habiamos dicho que fuera al doctor
  294. else
  295. { // No le habiamos dicho que fuera al doctor
  296. if (haesperado($usuario['IDUsuario'])) // Ya puede llenar de nuevo
  297. {
  298. if($Pquest==$cuestinic) // Acaba de llenar el cuestionario inicial
  299. {
  300. include_once('funcionesModelo1.php');
  301. ?>
  302. <div style=" border-width:3px; border-style:solid; border-color:<?php echo colorDeBorde(modeloParaUsuario($usuario['IDUsuario']))?>">
  303. Conforme a los datos que proporcionaste en tu cuestionario inicial, se te calculó un riesgo <b><?php echo modeloParaUsuario($usuario['IDUsuario']);?> de enfermedades respiratorias. </b></div><br><br>
  304. <?php
  305. if ($fechaaponer!=NULL)
  306. {
  307. $fechas = mysql_query("SELECT * FROM respuesta WHERE IDRespuesta= ".$fechaaponer);
  308. $row = mysql_fetch_array($fechas);
  309. echo "Hablanos un poco de los síntomas que tuviste <b>".$row['Valor'].".</b><br>Cuentanos con más precisión cuales fueron estos síntomas";
  310. }
  311. }
  312. if ($Pfechaapasar != "")
  313. {
  314. $fechas = mysql_query("SELECT * FROM respuesta WHERE IDRespuesta= ".$Pfechaapasar);
  315. $row = mysql_fetch_array($fechas);
  316. echo "Hablanos un poco de los síntomas que tuviste <b>".$row['Valor'].".</b> <br>Cuentanos con más precisión cuales fueron estos síntomas";
  317. }
  318. if (($Pfechaapasar == "") && ($fechaaponer==NULL))
  319. {
  320. echo "En los <b>últimos siete días</b>:" ;
  321. }
  322. /*
  323. Aquí va el cuestionario en si. El rutinario.
  324. */
  325. ?>
  326. <?php
  327. if ($usuario['Paterno']=="PILOTO")
  328. { ?>
  329. <br>Si deseas reportar mismo a otras personas con las que compartes casa da click <a href="CreaGrupo?id=<?php echo $usuario['IDUsuario']; ?>">aquí</a><br><br>
  330. <?php }
  331. ?>
  332. <Form name="laforma" method="post" action="Cuestionario.php">
  333. <INPUT type="hidden" name="Femail" value="<?php echo $Pemail; ?>">
  334. <INPUT type="hidden" name="Fclav1" value="<?php echo $Pclav1; ?>">
  335. <INPUT type="hidden" name="Fpaso" value="ALLENNNNNAR">
  336. <INPUT type="hidden" name="Fquest" value="<?php echo $cuestpost; ?>">
  337. <?php
  338. if ($cambiaronelcuest==1) // SI este NO es el rutinario normal... (Nota: esta variable solo se altera cuando acabo de leer el inicial)
  339. {
  340. echo "\n<INPUT type=\"hidden\" name=\"18\" value=\"".$fechaaponer."\">"; // <--- Aquí ponemos la fecha porque el cuest que vamos a poner no la trae.
  341. echo "\n<INPUT type=\"hidden\" name=\"Ffechaapasar\" value=\"".$fechaapasar."\">";
  342. $cuestpost = $cuestcucho;
  343. }
  344. if ($Pfechaapasar!=NULL) // Si me pasaron una fecha como fecha a pasar, quiere decir que el tipo es de los que se enfermaron twice
  345. {
  346. echo "\n<INPUT type=\"hidden\" name=\"18\" value=\"".$Pfechaapasar."\">"; // <--- Aquí ponemos la fecha porque el cuest que vamos a poner no la trae.
  347. $cuestpost = $cuestcucho;
  348. }
  349. ?>
  350. <?php
  351. echo muestracuest($cuestpost);
  352. ?>
  353. <p>
  354. <label for="asdlkj"><br></label>
  355. <p><INPUT id ="asdlkj" class="enviar LABI_<?php echo $BloquePreg ?>" type="submit" value="Terminar" name="terminoquestP">
  356. </p>
  357. </form>
  358. <?php
  359. } // FIN DE HAESPERADO
  360. else
  361. { // NO HA ESPERADO LO SUFICIENTE
  362. echo "Espera al menos 5 días para volver a participar";
  363. } // FIN DE NO HA ESPERADO LO SUFICIENTE
  364. } // FIN de NO le habiamos dicho que fuera al doctor
  365. } // Fin de tiene que llenar el posterior
  366. } // FIN de El usuario ya lleno el cuestionario inicial
  367. } //FIN de si es un usuario válido
  368. ?>
  369. </div>
  370. </div>
  371. </div>
  372. </body>
  373. </html>