<!-- ********************************************************************** * Fichero: encuesta/index.php * Objetivo: Página principal de Encuesta * Fecha: D.11.12.2016 * Autor: Pedro Reina <pedro@pedroreina.net> * Licencia: CC0 1.0 Universal * http://creativecommons.org/publicdomain/zero/1.0/ ********************************************************************** --> <?php require "encuesta.php"; ?> <?php Encuesta_EmiteDTD(); ?> <HTML> <?php Encuesta_EmiteCabecera ("Encuesta"); ?> <BODY> <!-- Presentación --> <DIV CLASS="cuadro"> <DIV CLASS="titulo">Encuesta sobre el profesor Pedro Reina</DIV> <DIV CLASS="contenido"> <?php Encuesta(); ?> </DIV> </DIV> <!-- Fin de página web --> </BODY> </HTML> <?php //-------------------------------------------------------------- // Función principal function Encuesta() { if ( FechaValida() ) { if ( ! isset ($_POST['clave']) ) { PideCodigo(); } else { $Clave = $_POST['clave']; if ( ClaveValida ($Clave) ) { if ( ! isset ($_POST['Enviar']) ) { EscribeEncuesta ($Clave); } else { ProcesaEncuesta ($Clave); } } } } } //-------------------------------------------------------------- // Dice si la fecha de hoy es válida para hacer la encuesta function FechaValida() { $Limites = Encuesta_ListaLimites(); $Hoy = Encuesta_FechaHoy(); if ( $Limites[0] <= $Hoy AND $Hoy <= $Limites[1] ) { $Respuesta = TRUE; } else { print "<P>El plazo para realizar la encuesta es desde " . $Limites[0] . " hasta " . $Limites[1] . " y hoy es " . $Hoy; $Respuesta = FALSE; } return $Respuesta; } //-------------------------------------------------------------- // Imprime un formulario para pedir el código de acceso function PideCodigo() { $YoMismo = $_SERVER['PHP_SELF']; print "<P CLASS=\"centrado\">Escribe el código de acceso: \n"; print "<FORM ACTION=\"$YoMismo\" METHOD=\"POST\">\n"; print "<P CLASS=\"centrado\">\n"; print "<INPUT NAME=\"clave\" TYPE=\"password\" \n"; print "CLASS=\"dato\" SIZE=\"6\" AUTOFOCUS>\n"; print "<INPUT TYPE=\"submit\" NAME=\"Acceder\" VALUE=\"Acceder\""; print "CLASS=\"orden\">\n"; print "</FORM>\n"; } //-------------------------------------------------------------- // Compueba si una clave es válida para entrar a la encuesta function ClaveValida ($Clave) { if ( Encuesta_ClaveValidaNoUsada ($Clave) ) { $Respuesta = TRUE; } else { print "<P>La clave que has escrito no es válida o ya ha sido usada."; print "<P>Puedes volver a intentarlo: "; print "<A CLASS=\"orden\" HREF=\".\"> Reintentar </A>"; $Respuesta = FALSE; } return $Respuesta; } //-------------------------------------------------------------- // Escribe el formulario con las preguntas de la encuesta function EscribeEncuesta ($Clave) { $YoMismo = $_SERVER['PHP_SELF']; $Preguntas = Encuesta_ListaPreguntas(); print "<P>Esta encuesta es anónima y su objetivo es evaluar el trabajo\n"; print "del profesor. Por favor, contesta con sinceridad. Puedes\n"; print "graduar cada respuesta desde el valor mínimo 1 hasta el\n"; print "valor máximo 5.\n"; print "<FORM ACTION=\"$YoMismo\" METHOD=\"POST\">\n"; print "<INPUT TYPE=\"HIDDEN\" NAME=\"clave\" VALUE=\"$Clave\">\n"; $Numero = 1; foreach ( $Preguntas as $Pregunta ) { $Id = $Pregunta['rowid']; $Texto = $Pregunta['texto']; print "<FIELDSET>\n"; print "<LEGEND>\n"; print "Pregunta $Numero\n"; print "</LEGEND>\n"; print "<P>$Texto\n"; print "<DIV CLASS=\"centrarad\">\n"; for ( $i=1 ; $i<=5 ; $i++ ) { print "<DIV CLASS=\"rad\">\n"; print "<INPUT TYPE=\"radio\" NAME=\"$Id\" VALUE=\"$i\" ID=\"$Id-$i\">\n"; print "<LABEL FOR=\"$Id-$i\">$i</LABEL>\n"; print "</DIV>\n"; } print "</DIV>\n"; print "</FIELDSET>\n"; $Numero++; } print "<P CLASS=\"centrado\">\n"; print "<INPUT TYPE=\"submit\" NAME=\"Enviar\" CLASS=\"orden\" " . "VALUE=\"Enviar respuestas\">\n"; print "</FORM>\n"; } //-------------------------------------------------------------- // Recoge las respuestas del usuario function ProcesaEncuesta ($Clave) { // Preparamos la lista de todas las preguntas $Preguntas = Encuesta_ListaPreguntas(); // Para cada pregunta foreach ( $Preguntas as $Pregunta ) { $Id = $Pregunta['rowid']; // Si han contestado a esta pregunta if ( isset ($_POST[$Id]) ) { // Vemos qué calificación ha puesto el usuario $Puntuacion = $_POST[$Id]; // Aumentamos el contador de esa pregunta y puntuación Encuesta_Incrementa ($Id, $Puntuacion); } } // Anulamos el código de acceso Encuesta_Anula ($Clave); // Informamos al usuario print "<P>Las respuestas han sido almacenadas. \n"; print "Gracias por tu colaboración.\n"; print "<P>Para rellenar la encuesta con otro código:\n"; print "<A CLASS=\"orden\" HREF=\".\"> Otro código </A>"; } ?>