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:
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.
Sono arrivato alla convinzione che un abbonamento per tutti i miei software gestionali sia il…
MerciGest è un software per la gestione del magazzino completamente gratuito. Continua a leggere→
In ufficio può capitare di doversi allontanare dal proprio posto di lavoro, ecco che allora…
In questo articolo vedremo quando è più o meno utile togliere la corrente ad un…
Dopo la pausa invernale dovuta al lavoro che devo fare per sostentarmi, eccomi di nuovo…
Vediamo come eliminare i files direttamente da Windows senza utilizzare il cestino. Continua a leggere→