Durante le fasi dei concorsi su Internet e’ necessario estrarre i dati ed essere in possesso in qualunque momento delle informazioni dei partecipanti e dei probabili vincitori. Questo sopratutto per verificare se i vincitori hanno rispettato il regolamento e potergli spedire quanto prima i premi che hanno vinto.
E’ anche fondamentale avere a disposizione un documento che attesti le giocate con data ed ora della giocata, da presentare al legale che segue il discorso per la consegna dei premi.
Come abbiamo visto nella seconda parte, durante la realizzazione del concorso, abbiamo previsto una comunicazione via mail che viene inviata in maniera automatica all’utente per attestare la vincita non solo a monitor.
La stessa comunicazione puo’ essere inviata in CCN (Copia Carbone Nascosta) al responsabile del progetto che sara’ quindi informato quasi in tempo reale della vincita.
E’ consuetudine allegare al progetto di sviluppo anche un tool, protetto da password, che generi un Excel con i dati attualmente presenti nel Database relativo agli iscritti.
Il tool e’ solitamente localizzato in un url non pubblico e non spiderizzabile dai motori di ricerca, in modo che anche inavvertitamente nessun utente riesca ad arrivarci se non in modo fraudolento.
Supponiamo di chiamare il tool generaExcel.php ecco il codice PHP:
<?php
$psw = “0611BITuBIT”;
if ((!isset($_POST[‘psw’])) OR (addslashes($_POST[‘psw’]) != $psw))
{
?>
<p>Accesso riservato:</p>
<form method=”post”>
Password:
<input type=”password” name=”psw” maxlength=”20″ value=”” />
<input type=”submit” value=”Accedi >>” />
</form>
<?php
}
else
{
$nomeTabella = $tbl_prefix.”contatti”;
$queryexp = “SELECT * FROM $nomeTabella ORDER BY key_con DESC”;
$resdata = mysql_query($queryexp) or die(“Query Fallita: ” . mysql_error());
$data_orafile = strftime(“%d-%m-%y_%H-%M”, time());
$excelFname=”excel/contatti_”.$data_orafile;
header (“Content-Type: application/vnd.ms-excel”);
header (“Content-Disposition: inline; filename=”.$excelFname.”.xls”);
header(“Cache-Control: maxage=1”); //In seconds
header(“Pragma: public”);
echo “<html><head></heaad><body><table>”;
echo “<tr>
<td><b>Id</b></td>
<td><b>Nome</b></td>
<td><b>Cognome</b></td>
<td><b>Telefono</b></td>
<td><b>Provincia</b></td>
<td><b>Email</b></td>
<td><b>Newsletter</b></td>
<td><b>Premio</b></td>
<td><b>Data giocata</b></td>
<td><b>Ora giocata</b></td>
</tr>”;
while ($dati = mysql_fetch_array($resdata))
{
$nome = $dati[‘nome’];
$cogn = $dati[‘cognome’];
$tel = $dati[‘telefono’];
$prov = $dati[‘provincia’];
$email = $dati[‘email’];
$nl = $dati[‘newsletter’];
$premio = $dati[‘premio’];
$dataIns = $dati[‘data_giocata’];
$oraIns = $dati[‘ora_giocata’];
echo “<tr>
<td>{$dati[‘key_con’]}</td>
<td>{$nome}</td>
<td>{$cogn}</td>
<td>{$tel}</td>
<td>{$prov}</td>
<td>{$email}</td>
<td>{$nl}</td>
<td>{$premio}</td>
<td>$dataIns</td>
<td>$oraIns</td>
“;
echo “</tr>”;
}
echo “</table></body></html>”;
}
?>
Il tool necessita della cartella excel con i permessi di scrittura (775 in Linux) e mostra inizialmente un form con la richiesta password che, in questo caso e’ 0611BITuBIT.
Altri esempi possono essere generati utilizzando le classi excelwriter.inc.php o la classe PHPExcel.php. Per maggiori informazioni su come utilizzare queste classi non esitate a contattarci compilando il form dei commenti.
Per migliorare la sicurezza dei dati sensibili e’ bene mettere questo tipo di utility in sistemi con connessione sicura (HTTPS) cosi’ da limitare sguardi indiscreti dei dati che vengono mostrati a video.
Ricordiamo a tutti che, se l’articolo permette di realizzare un valido sistema per gestire i concorsi, e’ assolutamente vietato farlo, senza un regolamento valido a tutti gli effetti, onde evitare pesanti e difficili problematiche legali. E’ per questo che esistono agenzie che hanno uno staff addetto a realizzare concorsi validi a tutti gli effetti, compreso il punto di vista legale.
Salve sono Giuseppe ho letto con molta attenzione lo script Realizzare un concorso sul Web in PHP: estrazione dati. Mi piacerebbe avere il pacchetto in zip completo. è possibile?? Grazie.
Ciao Giuseppe,
nessun problema, contattami pure in privato per averlo.