PageRenderTime 48ms CodeModel.GetById 18ms RepoModel.GetById 0ms app.codeStats 0ms

/cuentas/Cuestionario2.php

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