Comunidad de diseño web y desarrollo en internet online

validar una pregunta de un formulario en linea con la bd

Citar            
MensajeEscrito el 06 Jun 2010 03:36 pm
Hola a todos, necesito ayudar super urgente, es primera ves que uso el foro de php de cristalab, bueno al problema. :shock:
Necesito validar una pregunta de un formulario en linea con la bd, me explico el usuario da clik sobre una categoria (bicicleta porejemplo) le sale un formulario que le hace una pregunta esta pregunta tiene 3 opciones, a,b,c. y el usuario debe elgir una.
Ahi es mi problema como hago para comprobar que la respuesta seleccionada es la correcta, ojo que las preguntas son mostradas de forma aleatoria es decir cada ves que se abre el formulario muestra una pregunta diferente, ahora como consigo ver si la pregunta fue constestada de manera correca ??? ademas si el usuario elige una opcion incorrecta se debe bloquear su acceso es decir validar su ip y que participe porlomenos una o dos horas despues.
Todo esto es para una web de concurso en internet. por favor todos los comentario (Serios) son bien venidos.
De anemano gracias espero respuestas byeee :lol:

Por ansisweb

78 de clabLevel



 

firefox
Citar            
MensajeEscrito el 06 Jun 2010 10:43 pm
Hola.

Lo que podrias hacer es colocar las preguntas en una base de datos, colocarle junto sus respuestas y una columna en la cual guardes la respuesta correcta.

Despues compruebas mediante php y una coneccion a esta base de datos si la respuesta que ha escrito el usuario es igual a la que esta insertada en la base de datos.

Es solo de usar un poco la creatividad, hacer algunos select's y usar condicionales de php. Intentalo, si necesitas ayuda te comunicas :P

Saludos

Por Quarterback

171 de clabLevel

1 tutorial

Genero:Masculino  

Santa Marta, Colombia

msie8
Citar            
MensajeEscrito el 07 Jun 2010 03:03 pm
mil gracias por la respuesta y es exactamente lo que he hecho, como especifico en el post las preguntas son cargadas de forma aleatoria desde mi bd, ahora lo que la verdad no se es como controlar que la opcion que eligio el usuario es la correcta.
El detalle esta en que si o si tengo que usar radiobuttons para que el usuario solo pueda elegir una respuesta, ahora no se como puedo saber que la opcion que elegio el usuario (radiobutton) es la correta, te paso la estructura de lo que tengo hasta ahora para ver si me puedes ayudar :

Tabla preguntas
id, descpregunta,opcion1, opcion2, opcion3, respuesta;
descpregunta: lapregunta en si, opcion1,2,3: las 3 opciones con realacion a la pregunta y respuesta que vendria a ser la respuesta correcta, esto en cuanto a la logica de la bd, ahora te paso mi php
<html>
<body>
<?php
$link = mysql_connect("localhost", "root", "");
mysql_select_db("webprueba", $link);
$result = mysql_query("SELECT pregunta, respuesta, opciona, opcionb FROM preguntas ORDER BY RAND()", $link) or die(mysql_error());
if ($row = mysql_fetch_array($result)){
echo "<table border = '1'> \n";
{
echo "<tr>";
echo "<td colspan = '2'>&nbsp;&nbsp;&nbsp;" .$row["pregunta"]. "</td>";
echo "</tr>";
echo "<tr>";
echo "<td> <div align='right'>";
echo "<input type='radio' name='respuesta' value='opa' /> ";
echo "</td>";
echo "<td width='186'>&nbsp;&nbsp;&nbsp;" .$row["respuesta"]. "</td>";
echo "</tr>";
echo "<tr>&nbsp;&nbsp;";
echo "<td> <div align='right'>";
echo "<input type='radio' name='respuesta' value='opb' />";
echo "</td>";
echo "<td>&nbsp;&nbsp;&nbsp;" .$row["opciona"]."</td>";
echo "</tr>";
echo "<tr>";
echo "<td> <div align='right'>";
echo "<input type='radio' name='respuesta' value='opc' />";
echo "</td>";
echo "<td>&nbsp;&nbsp;&nbsp;".$row["opcionb"]. "</td>";
echo "</tr>";
echo "<tr>";
echo "<td colspan='2' align='center'>";
echo "<form id='form1' name='form1' method='post'>";
echo "<input type='submit' name='Submit' value='Comprobar'/>";
echo "</form>";
echo "</td>";
echo "</tr>";
}
echo "</table> \n";
} else {
echo "¡ La base de datos está vacia !";
}
?>
</body>
</html>

este php lo que hace es darme una tablat con ordenados con las respustas aleatorias, funciona todo bien ahora mi problema y en lo que necesito ayuda super urgente es como se que la opcion elegida desde el radio button es la correcta, como controlo eso.
Espero sus comentarios y gracias por el tiempo. :)

Por ansisweb

78 de clabLevel



 

msie8
Citar            
MensajeEscrito el 08 Jun 2010 01:19 am
hola.


tienes que arreglar algunas cosas de ese codigo:

1ro. la etiqueta <form> la debe colocar exactamente antes de donde empieza el primer radio buttons.
2do. a esta etiqueta <form> debes asignarle un valor al action:

Código HTML :

<form action='procesar_datos.php' id='form1' name='form1' method='post'>


.. en este ejemplo, el archivo procesar_datos.php seria el que recibiria los datos que la persona ha puesto en el formulario. este archivo debe constar de variables $_POST, lo cual si te toca averiguar.

3ro. en este archivo de procesar_datos.php tambien debes tener en cuenta hacer varias consultas sql a la tabla en donde estan las preguntas y respuestas, y mediante algunas condicionales debes verificar si la respuesta ingresada por el usuario es la correcta.

ya eso seria usar tus habilidades con php y el uso de mysql o la base de datos que uses..

si necesitas ayuda puesdes averiguar mas aqui en Clab, usa el buscador de la parte superior derecha :P

saludos.

Por Quarterback

171 de clabLevel

1 tutorial

Genero:Masculino  

Santa Marta, Colombia

msie7
Citar            
MensajeEscrito el 08 Jun 2010 03:11 pm
Perdon por ese codigo lo que pasa es solo hice algo rapido para que tengas una idea de lo que estaba haciendo, pero bueno despues de leer ya solucione el tema de ver que respuesta selecciono el usuario y compararla con la bd ahora una pregunta puntual.
Como hago para controlar que el usuario participe 3 veces nada mas es decir si responde mal 3 veces que le diga que participe mañana, pero con ejemplos o link de URL, si recurro al foro es precisamente para ver ejemplos no para que me digan la logica que ya conosco necesito ejemplos con codigo.
De todas forma gracias Quarterback espero otros comentarios

Por ansisweb

78 de clabLevel



 

msie8

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.