/fb/Cuestionario2.php
PHP | 503 lines | 347 code | 78 blank | 78 comment | 37 complexity | ea20d804f5e2eafeb7665c139e1788c7 MD5 | raw file
Possible License(s): GPL-2.0, GPL-3.0, AGPL-1.0, LGPL-2.1
- <html>
- <head>
- <meta http-equiv="Content-type" content="text/html; charset=UTF-8" >
- <link href="HojaStiloINFLU2.css" rel="stylesheet" type="text/css"/>
- <TITLE>Monitoreo de Enfermedades Respiratorias</TITLE>
- </HEAD>
- <BODY>
- <div class="centrador">
- <div class="contenedor">
- <img src="header-blog-morado.jpg" alt="amplified"/>
- <div id="cabeza">
- <h2><a href="index.php" class="more left">Colabora</a></h2>
- <h2><a href="#" class="more left">Información sobre la Influenza</a> </h2>
- <h2><a href="Resultados.php" class="more left">ve los resultados</a> </h2>
- <h2><a href="Acerca.php" class="more left">Acerca de esta página</a> </h2>
- </div>
- <div class="columna_central">
- <div id="recuadro">
- <h3> CUESTIONARIO </h3>
- <?php
- /*
- Antes que nada, los numeros de los cuestionarios <-----------------------------
- */
- $cuestinic = 5; // Inicial
- $cuestpost = 2; // Rutrinario
- $cuestdoct = 3; // Tras volver del Doc
- $cuestcucho = 4;
- /*
- Luego la conexión a la DB
- */
-
- $conexion = mysql_connect("mysql.c3.org.mx","c3_sql","hola666Rt0m4t3");
-
- mysql_set_charset('utf8',$conexion);
- mysql_select_db("flu2009", $conexion);
-
- /*
- -- Ahora las F U N C I O N E S A U X I L I A R E S ---------------
- */
- /*
- Determina si el usuario ha esperado lo suficiente para volver a participar.
- */
- function haesperado($elusuario)
- {
- $muynuevos = mysql_query("SELECT (HOUR( TIMEDIFF('".date("Y-m-d H:i:s")."', UltimaRespuesta))) AS ur FROM usuario WHERE IDUsuario=".$elusuario);
- while($dife = mysql_fetch_array($muynuevos))
- {
- if (($dife['ur']!=NULL)&&($dife['ur']<96))
- {
- return false;
- }
- return true;
- }
- }
- /*
- Determina si esta pregunta es una de esas que te ponen un botón de salida.
- */
- function mostrarlelasalida($pregunta)
- {
- if ($pregunta==17)
- {
- return "</table><hr><br><b> Si no tuviste ninguno de esos síntomas, puedes salir del cuestionario dando clic <INPUT class=\"enviar\" type=\"submit\" value=\"Aquí\" name=\"Sano\"><br><br><table></b><br>";
- }
- if ($pregunta==21)
- {
- return "</table><hr><br><b>Si no recibiste atención médica, puedes salir del cuestionario dando clic <INPUT class=\"enviar\" type=\"submit\" value=\"Aquí\" name=\"NOFUE\"><br><br><table></b>";
- }
- return "";
- }
- /*
- Si esta pregunta tiene una introducción, esta función hace que aparezca
- */
- function introapreg($pregunta)
- {
-
- return "";
- }
- /*
- En esta función se determina si se le debe dar a una persona una recomendación para que vaya al médico
- */
- function aldoctor($posteado)
- {
- if ((!mysql_real_escape_string($posteado['RR260']))&&(!mysql_real_escape_string($posteado['RR268'])))
- return false;
- if ((mysql_real_escape_string($posteado['19'])!=179)&&(mysql_real_escape_string($posteado['19'])!=180)&&(mysql_real_escape_string($posteado['19'])!=181))
- {
- return false;
- }
- return true;
- }
- /*
- Esta función muestra un cuestionario
- */
- function muestracuest($numcuestionario)
- {
- $salida="";
-
- $preguntas = mysql_query("SELECT * FROM relCuestPreg where IDCuestionario = ".$numcuestionario." ORDER BY Orden");
- while($rowP = mysql_fetch_array($preguntas)) // POR CADA PREGUNTA
- {
- $salida=$salida."\n". "<tr>\n";
- $contpregunta = mysql_query("SELECT * FROM pregunta where IDPregunta = ".$rowP['IDPregunta']);
- $rowC = mysql_fetch_array($contpregunta);
- $salida=$salida."\n". "<TD>\n";
- $salida=$salida."\n".introapreg($rowC['IDPregunta']);
- $salida=$salida."\n"."<b>".$rowC['Titulo'] . "</b> <br> " . $rowC['Descripcion'];
- $salida=$salida."\n"."\n<TD>\n";
- $respuestas = mysql_query("SELECT * FROM respuesta where IDPregunta = ".$rowC['IDPregunta']);
- if ($rowC['Varias']==0) // <-- Si la pregunta solo tiene una opcion
- {
- $salida=$salida."\n"."<select name=\"".$rowC['IDPregunta']."\">\n";
- $salida=$salida."\n"."<option value=\"0\"> Elige una opción </option>";
- while($rowA = mysql_fetch_array($respuestas)) // POR CADA RESPUESTA
- {
- $salida=$salida."\n"."<option value=\"".$rowA['IDRespuesta']."\">".$rowA['Valor']."</option>\n";
- }
- echo "</select>";
- }
- else // <-- Si puede tener varias
- {
- while($rowA = mysql_fetch_array($respuestas)) // POR CADA RESPUESTA
- {
- $salida=$salida."\n"."<input type=checkbox name=\"RR".$rowA['IDRespuesta']."\"> ".$rowA['Valor']." <br>";
- }
-
- }
- $salida=$salida."\n".mostrarlelasalida($rowC['IDPregunta']); //Hay algunas preguntas que te ofrecen salirte, veamos si esta es una.
- $salida=$salida."\n"."</select>\n</tr><tr><td><hr><td><hr></tr> ";
- }
- return $salida;
- }
- /*
- -- Ahora lo principal ---------------
- */
- /*
- Las entradas hay que limpiarlas contra SQL injection
- */
- $Pemail = mysql_real_escape_string($_POST['Femail']);
- $Pclav1 = mysql_real_escape_string($_POST['Fclav1']);
- $Pestado = mysql_real_escape_string($_POST['Festado']);
- $Pmunicipio = mysql_real_escape_string($_POST['Fmunicipio']);
- $Pcp = mysql_real_escape_string($_POST['CCCP']);
- $Pcp2 = mysql_real_escape_string($_POST['CCCP2']);
- $Ppaso = mysql_real_escape_string($_POST['Fpaso']); // <- Indica si el usuario acaba de llenar un cuestionario
- $Pquest = mysql_real_escape_string($_POST['Fquest']); // <- Indica cual es el cuestionario que el usuario acaba de llenar
- $Pcalle = mysql_real_escape_string($_POST['Fcalle']);
- $Pentre1 = mysql_real_escape_string($_POST['Fentre1']);
- $Pentre2 = mysql_real_escape_string($_POST['Fentre2']);
-
- $Pfechaapasar = mysql_real_escape_string($_POST['Ffechaapasar']);
- $Qusuario = mysql_query("SELECT * FROM usuario WHERE EMail='".$Pemail."' AND AFavor=sha1('".$Pclav1."')");
- $usuario = mysql_fetch_array($Qusuario);
-
- // Tiene que haber uno y solo uno con este correo y contraseña
- if (mysql_num_rows($Qusuario)!=1) // <- Si es un usuario inválido
- {
- echo "<center><FONT color=FF0000> Correo electrónico o contraseña incorrectos, intentalo de nuevo</FONT></center><br>";
- }
- else
- { //Si es un usuario válido
- if($Ppaso=="ALLENNNNNAR")
- {
- if($Pquest==$cuestinic) // <- Acaba de llenar el cuestionario inicial, hay que guardar su municipio.
- {
- if ($Pcp==NULL)
- {
- $Pcp = "MALO";
- }
- $actualizar = mysql_query("UPDATE usuario SET Municipio=\"".$Pmunicipio."\" WHERE IDUsuario=".$usuario['IDUsuario']);
- $actualizar = mysql_query("UPDATE usuario SET CP=\"".$Pcp."\" WHERE IDUsuario=".$usuario['IDUsuario']);
- $actualizar = mysql_query("UPDATE usuario SET CP2=\"".$Pcp2."\" WHERE IDUsuario=".$usuario['IDUsuario']);
- $actualizar = mysql_query("UPDATE usuario SET ENTRE1=\"".$Pentre1."\" WHERE IDUsuario=".$usuario['IDUsuario']);
- $actualizar = mysql_query("UPDATE usuario SET ENTRE2=\"".$Pentre2."\" WHERE IDUsuario=".$usuario['IDUsuario']);
- $actualizar = mysql_query("UPDATE usuario SET CALLE=\"".$Pcalle."\" WHERE IDUsuario=".$usuario['IDUsuario']);
- /*
- Aquí analizamos sus respuestas y escogemos, en función de ello un cuestionario a desplegarle.
- Para ello cambiamos el valor de la variable $cuestpost
- */
-
-
- if ((mysql_real_escape_string($_POST['37'])!=305)&&(mysql_real_escape_string($_POST['37'])!=0))
- {
- // Tuvo algo esta semana... hay que mandarle al cucho con la fecha reciente
- $cambiaronelcuest = 1;
- $fechaaponer = $_POST['37'];
- }
- if ((mysql_real_escape_string($_POST['38'])!=314)&&(mysql_real_escape_string($_POST['38'])!=0))
- {
- // Tuvo algo en los últimos dos mese.. hay que mandarle el cucho con la fecha remota
- $cambiaronelcuest = 1; // <-- Con esto hacemos que ponga el campo fecha artificialmente
- $fechaaponer = $_POST['38'];
- if ((mysql_real_escape_string($_POST['37'])!=305)&&(mysql_real_escape_string($_POST['37'])!=0))
- {
- $fechaaponer = $_POST['37'];
- $fechaapasar = $_POST['38'];
- // El probe tipo tuvo ADEMAS, algo esta semana
- }
- }
- } // FIN de Acaba de llenar el cuestionario inicial
-
- // Lo que sigue lo hacemos no importa que cuestionario acabe de llenar
- // Debemos verificar que haya pasado el tiempo suficiente.
- if (haesperado($usuario['IDUsuario']))
- {
- /*
- Primero guardamos en la tabla encuesta la info de que acaban de llenar
- El IDCuestionario, IDUsuario y la fecha actual
- */
- $insertar = mysql_query("INSERT into encuesta (IDUsuario,Fecha,IDCuestionario) VALUES (".$usuario['IDUsuario'].",\"".date("Y-m-d H-i-s")."\",".$Pquest.")");
- /*
- Obtenemos el valor de IDEncuesta para encuesta que acabamos de llenar
- */
- $IDdeEstaEncuesta = mysql_insert_id();
-
- if ((($Pquest==$cuestpost)&&($Pfechaapasar == NULL))||($Pquest==$cuestdoct))
- {
- /*
- 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
- */
- $actualizar = mysql_query("UPDATE usuario SET UltimaRespuesta=\"".date("Y-m-d H-i-s")."\" WHERE IDUsuario=".$usuario['IDUsuario']);
- }
- if ($Pquest==$cuestdoct)
- {
- // Acaba de mandarnos a guardar el cuestionario de doctor, hay que quitarle la marca.
- echo "<br>Gracias por colaborar y tener una actitud responsable al ir al doctor<br>";
- $actualizar = mysql_query("UPDATE usuario SET AlDoctor=0 WHERE IDUsuario=".$usuario['IDUsuario']);
- }
-
- /*
- Ahora buscamos todas las preguntas del cuestionario que acaba de llenar
- Tomamos el ID de cada una y examinamos el arreglo $_POST en ese índice para ver la respuesta que escogio.
- A cada respuesta, hacemos una entrada (numencuesta,idrespuesta) en la tabla valoresencuestas
- */
-
- // ------
- // INICIA PROPIAMENTE EL L L E N A D O D E E N C U E S T A
- // ___________________________________________________-----
- $preguntas = mysql_query("SELECT * FROM relCuestPreg where IDCuestionario = ".$Pquest);
- while($rowP = mysql_fetch_array($preguntas)) // POR CADA PREGUNTA
- {
- $contpregunta = mysql_query("SELECT * FROM pregunta where IDPregunta = ".$rowP['IDPregunta']);
- $rowC = mysql_fetch_array($contpregunta);
- if ($rowC['Varias']==0) // <-- Si la pregunta solo tiene una opcion
- {
- $respuesta=mysql_real_escape_string($_POST[$rowP['IDPregunta']]);
- $insertar = mysql_query("INSERT into valoresEncuesta (IDEncuesta,IDRespuesta) VALUES(".$IDdeEstaEncuesta.",".$respuesta.")");
- }
- else
- {
- $respuestasmultiples = mysql_query("SELECT * FROM respuesta where IDPregunta = ".$rowP['IDPregunta']);
- while ($rowA = mysql_fetch_array($respuestasmultiples)) // Por cada una de las posibles respuestas
- {
- $respuesta=mysql_real_escape_string($_POST['RR'.$rowA['IDRespuesta']]);
- if ($respuesta)
- {
- $insertar = mysql_query("INSERT into valoresEncuesta (IDEncuesta,IDRespuesta) VALUES(".$IDdeEstaEncuesta.",".$rowA['IDRespuesta'].")");
- }
- }
- }
- }
- // TERMINA EL L L E N A D O D E E N C U E S T A
- // Hay que actualizar los datos del usuario en el script por si ahora si tiene municipio
- $Qusuario = mysql_query("SELECT * FROM usuario WHERE EMail='".$Pemail."' AND AFavor=sha1('".$Pclav1."')");
- $usuario = mysql_fetch_array($Qusuario);
- } // No ha esperado lo sufciente para volver a participar, cómo llego aqui???
- else
- {
- //Esta tratando de enviar una encuesta muy pronto
- }
- } // FIN de hay que llenar
-
- // Ya escribimos a la base de datos todo lo que teniamos que escribir... ahora hay que mostrarle los cuestionarios pertinentes
-
-
-
-
- if ($usuario['Municipio']==NULL) // <= El usuario acaba de registrarse, en este caso este script no ha escrito nada a la DB.
- {
- /*
- Hay que pedirle su municipio
- Y mostarle el cuestionario inicial
- */
- echo "Por ser la primera vez, por favor responde estas preguntas para que tu participación sea más valiosa<BR>";
- echo "Este cuestionario sólo tendrás que llenarlo una vez.<BR><BR>";
- $mpos = mysql_query("SELECT * FROM municipios WHERE Estado= ".$usuario['Estado']." ORDER BY Municipio");
- ?>
-
- <Form method="post" action="Cuestionario.php">
- <INPUT type="hidden" name="Femail" value="<?php echo $Pemail; ?>">
- <INPUT type="hidden" name="Fclav1" value="<?php echo $Pclav1; ?>">
- <INPUT type="hidden" name="Fquest" value="<?php echo $cuestinic; ?>">
- <INPUT type="hidden" name="Fpaso" value="ALLENNNNNAR">
- <hr>
- <table width="100%">
- <tr><td><b> ¿En qué municipio o delegación vives? </b>
- <td><select name="Fmunicipio">
- <?php // ---- Este select muestra todos los municipios del estado que nos pasaron
- while($mipio = mysql_fetch_array($mpos))
- {
- echo "<option value=\"".$mipio['Municipio']."\">".$mipio['Municipio']."</option>\n";
-
- }
- ?> </select>
- </tr><tr><td><hr><td><hr></tr>
- <tr><td><b>¿Cuál es el código postal de tu casa?</b> <td> <input type="text" name="CCCP"> </tr>
- </tr><tr><td><hr><td><hr></tr>
-
- <tr><td><b>¿En qué calle está tu casa?</b><br><u>Estrictamente opcional</u> ¡Esto nos ayuda a ubicar los datos en el mapa con más precisión!
- <td> <input type="text" name="Fcalle"> </tr>
- </tr><tr><td><hr><td><hr></tr>
- <tr><td><b>Entre la calle: <br>Y la calle</b><br><u>Estrictamente opcional</u>
- <td> <input type="text" name="Fentre1"> <br> <input type="text" name="Fentre2"> <br><br></tr>
- </tr><tr><td><hr><td><hr></tr>
-
- <tr><td><b>¿Cuál es el código postal de tu trabajo o escuela?</b> <td> <input type="text" name="CCCP2"> </tr>
- </tr><tr><td><hr><td><hr></tr><tr>
- <?php
- echo muestracuest($cuestinic);
- ?>
- <tr></tr>
- <tr>
- <td>
- <td><INPUT class="enviar" type="submit" value="Continuar al cuestionario rutinario" name="terminoquestI">
- </tr>
- </table>
- </form>
- <?php
-
- } // FIN DE MUNICIPIO == NULL ES DECIR, FIN DE ES UN USUARIO NUEVO, MOSTRARLE EL INICIAL
- else
- { //El usuario ya lleno el cuestionario inicial
- if ( (($Pquest==$cuestpost)&&($Pfechaapasar == "")) || (($Pquest==$cuestinic)&&($fechaaponer==NULL)))
- // 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.
- {
- /*
- No queda más que agradecerle;
- */
- if (aldoctor($_POST)) // Si hay que mandarlo al doctor
- {
- 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.";
- echo "<br><br>Si cumples con estos síntomas, debes ir al doctor para una evaluación más profunda.<br>";
- $actualizar = mysql_query("UPDATE usuario SET AlDoctor=1 WHERE IDUsuario=".$usuario['IDUsuario']);
- }
- 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>";
- echo "<br> ¡Y pasa la voz!";
- }
- else // No acaba de llenar el posterior, o tiene que llenarlo de nuez porque se enfermo dos veces así que debe llenarlo ahora
- {
- if ($usuario['AlDoctor']==1) // Le habiamos dicho que fuera al doctor
- {
- /*
- Aquí hay que poner la parte de las preguntas
- de cuando regresa del doctor
- */
- ?>
- La última vez que participaste, mostrabas un conjunto de síntomas que ameritaba ir al doctor.
- <Form method="post" action="Cuestionario.php">
- <INPUT type="hidden" name="Femail" value="<?php echo $Pemail; ?>">
- <INPUT type="hidden" name="Fclav1" value="<?php echo $Pclav1; ?>">
- <INPUT type="hidden" name="Fquest" value="<?php echo $cuestdoct; ?>">
- <INPUT type="hidden" name="Fpaso" value="ALLENNNNNAR">
- <hr>
- <table width="100%">
- <?php
-
- echo muestracuest($cuestdoct);
- ?>
- <tr></tr>
- <tr>
- <td>
- <td><INPUT class="enviar" type="submit" value="Terminar" name="terminoquestd">
- </tr>
- </table>
- </form>
- <?php
-
- } // Fin de le habiamos dicho que fuera al doctor
- else
- { // No le habiamos dicho que fuera al doctor
- if (haesperado($usuario['IDUsuario'])) // Ya puede llenar de nuevo
- {
- if($Pquest==$cuestinic) // Acaba de llenar el cuestionario inicial
- {
- if ($fechaaponer!=NULL)
- {
- $fechas = mysql_query("SELECT * FROM respuesta WHERE IDRespuesta= ".$fechaaponer);
- $row = mysql_fetch_array($fechas);
- 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";
- }
- }
- if ($Pfechaapasar != "")
- {
- $fechas = mysql_query("SELECT * FROM respuesta WHERE IDRespuesta= ".$Pfechaapasar);
- $row = mysql_fetch_array($fechas);
- 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";
- }
- if (($Pfechaapasar == "") && ($fechaaponer==NULL))
- {
- echo "En los <b>últimos siete días</b>:" ;
- }
- /*
- Aquí va el cuestionario en si. El rutinario.
- */
- ?>
- <Form method="post" action="Cuestionario.php">
- <INPUT type="hidden" name="Femail" value="<?php echo $Pemail; ?>">
- <INPUT type="hidden" name="Fclav1" value="<?php echo $Pclav1; ?>">
- <INPUT type="hidden" name="Fpaso" value="ALLENNNNNAR">
- <INPUT type="hidden" name="Fquest" value="<?php echo $cuestpost; ?>">
- <?php
- if ($cambiaronelcuest==1) // SI este NO es el rutinario normal... (Nota: esta variable solo se altera cuando acabo de leer el inicial)
- {
- echo "\n<INPUT type=\"hidden\" name=\"18\" value=\"".$fechaaponer."\">"; // <--- Aquí ponemos la fecha porque el cuest que vamos a poner no la trae.
- echo "\n<INPUT type=\"hidden\" name=\"Ffechaapasar\" value=\"".$fechaapasar."\">";
- $cuestpost = $cuestcucho;
- }
- if ($Pfechaapasar!=NULL) // Si me pasaron una fecha como fecha a pasar, quiere decir que el tipo es de los que se enfermaron twice
- {
- echo "\n<INPUT type=\"hidden\" name=\"18\" value=\"".$Pfechaapasar."\">"; // <--- Aquí ponemos la fecha porque el cuest que vamos a poner no la trae.
- $cuestpost = $cuestcucho;
- }
- ?>
- <hr>
- <table>
- <?php
- echo muestracuest($cuestpost);
- ?>
- <tr></tr>
- <tr>
- <td>
- <td><INPUT class="enviar" type="submit" value="Terminar" name="terminoquestP">
- </tr>
- </table>
- </form>
- <?php
- } // FIN DE HAESPERADO
- else
- { // NO HA ESPERADO LO SUFICIENTE
- echo "Espera al menos 5 días para volver a participar";
-
- } // FIN DE NO HA ESPERADO LO SUFICIENTE
- } // FIN de NO le habiamos dicho que fuera al doctor
- } // Fin de tiene que llenar el posterior
- } // FIN de El usuario ya lleno el cuestionario inicial
- } //FIN de si es un usuario válido
- ?>
- </div>
- </div>
- </div>
- </div>
- </body>
- </html>