Un semplice Quiz in Asp

Molti siti mettono a disposizione dei propri utenti dei Quizo dei Test valutativi per verificare delle conoscenze, oppuredei quiz generici come semplici passatempo. La soluzioneserver-side è ottimale perchè èpossibile utilizzare un codice molto più snellorispetto ad un codice client-side, in modo da far si chel'utente non sbirci le risposte esatte nel codicesorgente stesso della pagina... anche se mi fanno moriredalle risate quelli che imbrogliano al solitario :-)

Di seguito vi propongo un codice molto semplice commentatonelle sue fasi salienti:

 

<%@LANGUAGE = JScript%><html>    <head>  <title>Un semplice Quiz in Asp</title>    </head><body><h2 align="center">Quiz</h2><table width="40%" align="center"><form method="post" action="quiz.asp?r=OK">    <tr>  <td><b>1) Qual'è la capitale dell'Italia?</b><br><input type="radio" name="dom_1" value="A"> Roma<br><input type="radio" name="dom_1" value="B"> Napoli<br><input type="radio" name="dom_1" value="C"> Milano<br><b>2) Di che colore era il cavallo di Napoleone?</b><br><input type="radio" name="dom_2" value="A"> Nero<br><input type="radio" name="dom_2" value="B"> Bianco<br><input type="radio" name="dom_2" value="C"> Trasparente O_o<br><b>3) Qual'è il nome di Tasso?</b><br><input type="radio" name="dom_3" value="A"> Giuseppe<br><input type="radio" name="dom_3" value="B"> Tiberio<br><input type="radio" name="dom_3" value="C"> Torquato<br><b>4) Come viene chiamata la vecchia capitale di Malta?</b><br><input type="radio" name="dom_4" value="A"> Silent City<br><input type="radio" name="dom_4" value="B"> Dead Town<br><input type="radio" name="dom_4" value="C"> Spirits City<br><b>5) Chi è l'autore del romanzo Dracula?</b><br><input type="radio" name="dom_5" value="A"> Robert L. Stevenson<br><input type="radio" name="dom_5" value="B"> Bram Stocker<br><input type="radio" name="dom_5" value="C"> F. F. Coppola<br>  </td>    </tr>    <tr>  <td align="right"><input type="submit" value="Verifica"></td>    </tr>    <tr>  <td align="center"><%    // CONTROLLO CHE IL QUIZ VENGA VERIFICATO DALL'UTENTE    var r = new String(Request.QueryString("r"));    // CONTROLLO CHE L'UTENTE EFFETTUI IL QUIZ    if (r != "OK") Response.Write(" ");    else    {  // RECUPERO I VOTI  var dom_1 = Request.Form("dom_1");  var dom_2 = Request.Form("dom_2");  var dom_3 = Request.Form("dom_3");  var dom_4 = Request.Form("dom_4");  var dom_5 = Request.Form("dom_5");  // INCREMENTO LE RISPOSTE ESATTE  var ris = 0;  if (dom_1 == "A") ris += 1;  if (dom_2 == "B") ris += 1;  if (dom_3 == "C") ris += 1;  if (dom_4 == "A") ris += 1;  if (dom_5 == "B") ris += 1;  // STAMPO A VIDEO IL RISULTATO  Response.Write("Hai risposto esattamente a " + ris + " domande!");    }%>  </td>    </tr></form></table></body></html>

 

I radio button che compongono le varie risposte hanno, perconvenzione, un nome del tipodom_NumeroProgressivo che torna utile perampliare il Quiz, nell'esempio composto da 5 domande. Lasesta sarà identificata come dom_6.