Categories: PHP

Come Creare un Questionario in PHP

Da qualche giorno abbiamo inserito dei questionari informatici che servono soprattutto ai nostri utenti per sapere il loro grado di conoscenza dei vari argomenti ed anche per stimolarli alla ricerca di informazioni, difatti in questo blog cerchiamo sempre di insegnare e soprattutto far amare argomenti anche difficili da digerire. Ho pensato allora di mostrare come ho implementato questo progetto con l’ausilio di PHP e MySQL.
Il fine del progetto è creare un modo dinamico per gestire delle domande su vari argomenti, poter inserire 3 risposte diverse e dare, a seconda della risposta, un punteggio, al termine poter fare la somma di questo risultato e stilare una classifica per argomento dei primi 50 punteggi più alti.
Il primo passo da compiere è creare la tabella in MySQL che andrà ad ospitare le nostre domande e che chiameremo “Domande”. Per mezzo di PhpMyAdmin possiamo creare questa struttura:

  • Argomento di tipo int di grandezza 2
  • Domanda di tipo varchar di lunghezza 200
  • Risposta1 di tipo varchar di lunghezza 150
  • Valore1 di tipo int di grandezza 2
  • Risposta2 di tipo varchar di lunghezza 150
  • Valore2 di tipo int di grandezza 2
  • Risposta3 di tipo varchar di lunghezza 150
  • Valore3 di tipo int di grandezza 2

Fatto questo dobbiamo creare una pagina ad-hoc per permettere un’inserimento veloce delle domande. Questa pagina PHP deve essere protetta da password, per evitare che altri possano inserire delle domande, il metodo migliore sarebbe quello di far fare una login e lavorare con le sessioni, ma ho evitato questo perché richiede più tempo, casomai lo vedremo in futuro come affrontare il problema. Personalmente ho optato per l’inserimento di una password all’inserimento di ogni domanda, riconosco che non è il miglior modo di affrontare il problema, ma è anche quello più veloce e semplice da costruire.

<?php

$password = $_REQUEST['pws'];
if (strlen($password) > 0)
{
  if ($password == "mia_password")
  {
     $argomento = $_REQUEST['argomento'];
     $domanda = $_REQUEST['domanda'];
     $risposta1 = $_REQUEST['risposta1'];
     $punti1 = $_REQUEST['punti1'];
     $risposta2 = $_REQUEST['risposta2'];
     $punti2 = $_REQUEST['punti2'];
     $risposta3 = $_REQUEST['risposta3'];
     $punti3 = $_REQUEST['punti3'];

     $hostname = "mio_host";
     $database = "mio_database";
     $username = "mio_utente";
     $password = "mia_password";

    $domande = mysql_connect($hostname, $username, $password)
         or trigger_error(mysql_error(),E_USER_ERROR);
     mysql_select_db($database, $domande);
     $query = "INSERT INTO Domande (Argomento, Domanda,
          Risposta1, Valore1, Risposta2, Valore2,
          Risposta3, Valore3) ";
     $query .= "VALUES(".$argomento.", '".$domanda."', '".
          $risposta1."', ".$punti1.", '".$risposta2."', ".
          $punti2.", '"
          .$risposta3."', ".$punti3.")";
      mysql_query($query, $domande) or die(mysql_error());
      mysql_close($domande);
   }
}

?>

<html>
<head><title>Inserimento Domande</title></head>
<body>

<h1 align="center">Inserisci Domanda</h1>

<div align="center">
<form action="#" method="POST" name="domande">

   <input name="pws" type="password" id="pws"
         title="Inserire la password" size="20" maxlength="20">
   <br><br>
   Scegli l'argomento:
   <select name="argomento" id="argomento">
      <option value="1" selected>Java
      <option value="2">C/C++
      <option value="3">Windows
      <option value="4">Linux
      <option value="5">.NET
      <option value="6">Access
      <option value="7">PHP
   </select>
   <br><br>
   <textarea name="domanda" type="text" title="Domanda"
      id="domanda" cols="60" rows="10"></textarea>
   <br><br>
   Risposta 1: <textarea name="risposta1" type="text"
     title="Risposta 1" id="risposta1" cols="40" rows="5">
       </textarea>
   Valore 1: <input name="punti1" type="text"
      id="punti1" title="Inserire il valore" size="5"
        maxlength="5">
   <br>
   Risposta 2: <textarea name="risposta2" type="text"
     title="Risposta 2" id="risposta2" cols="40" rows="5">
          </textarea>
   Valore 2: <input name="punti2" type="text"
      id="punti2" title="Inserire il valore" size="5"
            maxlength="5">
   <br>
   Risposta 3: <textarea name="risposta3" type="text"
      title="Risposta 3" id="risposta3" cols="40" rows="5">
         </textarea>
   Valore 3: <input name="punti3" type="text"
       id="punti2" title="Inserire il valore" size="5"
             maxlength="5">
   <br><br>
   <input type="submit" name="invia" id="invia"
      title="Inserisci Domanda" value="Inserisci Domanda">
   </form>
</div>

</body>
</html>

Come potete notare si tratta di una pagina molto semplice che consente di inserire una domanda di un determinato argomento, dare tre risposte con i rispettivi punteggi, il tutto solo se si conosce la propria password. Nel prossimo articolo del progetto vedremo come presentare le domande ad un candidato, fare la somma del punteggio ed infine inserire il risultato in un’altra tabella della classifica, il tutto usufruendo di una sola pagina PHP dinamica.

Lezione Successiva >>

Share
Giampaolo Rossi

Sviluppatore di software gestionale da oltre 28 anni.

Published by
Giampaolo Rossi
Tags: MySQLSQL

Recent Posts

Un Abbonamento per Tutti i Software

Sono arrivato alla convinzione che un abbonamento per tutti i miei software gestionali sia il…

1 anno ago

Software di Magazzino Gratuito

MerciGest è un software per la gestione del magazzino completamente gratuito. Continua a leggere→

1 anno ago

Mettere il PC in Lock Screen

In ufficio può capitare di doversi allontanare dal proprio posto di lavoro, ecco che allora…

3 anni ago

Fare il reset togliendo la corrente

In questo articolo vedremo quando è più o meno utile togliere la corrente ad un…

3 anni ago

Prossimi Aggiornamenti Software

Dopo la pausa invernale dovuta al lavoro che devo fare per sostentarmi, eccomi di nuovo…

3 anni ago

Come Eliminare i Files in Windows

Vediamo come eliminare i files direttamente da Windows senza utilizzare il cestino. Continua a leggere→

4 anni ago