Magari vi sara’ capitato di andare in fiera e dover allestire tutto lo stand con giochi, gadget e brochure da distribuire ai visitatori ma come catturare l’attenzione dell’utente di turno che passa da uno stand ad un’altro che potrebbe essere un vostro possibile cliente o comunque una persona interessata al prodotto che state proponendo ? I gadget sono sicuramente uno strumento importante, magari dei prodotti tipici, esperienze reali di persone all’interno dello stand che hanno provato il prodotto aiutano di sicuro; ma quando si forma una folla, come gestirla se il personale specializzato e ridotto al minimo ? Di sicuro la classica PPT o Case History che girano in monitor a 52” non guasta ma e’ una cosa solitamente piuttosto fredda e distaccata che, per ora, non permette l’interazione con l’utente! Visto che siamo in piena epoca di Web 2.0 cerchiamo di far interagire l’utente con lo stand, ma come ? Regalandogli un ricordo fatto dai lui stesso, una foto magari!
Gli strumenti necessari sono un blocco note dove riportare il codice, le classi phpmailer per l’invio delle mail, dorgem per l’istantane della foto ed un portatile con una connessione attiva con installata una webcam.
Se abbiamo a disposizione tutti questi strumenti siamo gia’ a buon punto!
Supponendo di utilizzare Windows con a bordo EasyPHP 1.8 e non aver cambiato le impostazioni di installazione andiamo a creare la seguente cartella: c:\Programmi\EasyPHP1.8\www\fotoPHP\. All’interno inseriamo tutti i files che ci servono per il corretto avvio del programma:
– class.phpmailer.php
– class.smtp.php
– Dorgem.exe
Configuriamo Dorgem per fare in modo che ogni 5 secondi salvi una istantanea chiamata foto.jpg all’interno della nostra cartella di lavoro. L’interfaccia e’ molto intuitiva, l’uso e’ davvero semplice ma nel caso incontraste difficolta’ utilizzate le numerose guide in linea presenti.
Configuriamo un Database ove ospitare gli utenti che si faranno una foto.
Colleghiamoci quindi con il nostro Browser preferito all’indirizzo: http://127.0.0.1/mysql/ e dopo aver creato un nuovo database (Es.: fiera) carichiamo il seguente SQL:
CREATE TABLE `fotografi` (
`key_ft` int(11) NOT NULL auto_increment,
`nome` varchar(60) NOT NULL default ”,
`cognome` varchar(60) NOT NULL default ”,
`tel` varchar(80) NOT NULL default ”,
`mail` varchar(40) NOT NULL default ”,
`loc` varchar(120) NOT NULL default ”,
`dataIns` date NOT NULL default ‘0000-00-00’,
PRIMARY KEY (`key_ft`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ;
A questo punto apriamo un blocco note ed andiamo a sviluppare il codice PHP che verra’ compilato dall’utente affinche’ il sistema gli invii la sua foto ricordo dallo Stand che sta visitando.
Nel seguito il codice PHP:
<?php
ob_implicit_flush(true);
// Form per Fiera 2008
include ‘config/db.php’;
require(“class.phpmailer.php”);
isset($_POST[‘nome’]) ? $nomeAgri = addslashes($_POST[‘nome’]) : $nomeAgri = “”;
if (strlen($nomeAgri) != 0)
{
$nomeTabella = “fotografi”;
$cognome = addslashes($_POST[‘cognome’]);
$email = addslashes($_POST[‘email’]);
isset($_POST[‘tel’]) ? $tel = addslashes($_POST[‘tel’]) : $tel = “”;
$loc = addslashes($_POST[‘loc’]);
$query = “INSERT INTO $nomeTabella (key_ft, nome, cognome, tel, mail, loc, dataIns) VALUES (”, ‘$nomeAgri’, ‘$cognome’, ‘$tel’, ‘$email’, ‘$loc’, NOW());”;
$sql = mysql_query($query);
echo(“Preparati….Tra 5 secondi scatterò la foto….”);
sleep(5);
echo(“Click…
Sto elaborando i dati e ti mostro la foto che ti sto inviando…”);
sleep(5);
echo(“<img height=’200′ widht=’200′ src=’foto.jpg’><br />”);
// Invio la foto tramite mail…
$mail = new PHPMailer();
$mail->From = “fiera@freescriptphp.com”; // indirizzo da cui proviene la mail
$mail->FromName = “Free Script PHP”;
$mail->AddAddress($email);
>
$mail->AddAttachment(“foto.jpg”);
$mail->AddEmbeddedImage(‘foto.jpg’, ‘foto.jpg’, ‘foto.jpg’, ‘base64’, ‘image/jpg’);
$mail->WordWrap = 50;
$mail->IsHTML(true);
$mail->Subject = “Foto dalla fiera”;
$corpoTesto = “Ecco la foto: <img border=”0″ src=”cid:foto.jpg” ALT=”Foto dalla Fiera”>”;
$mail->Body = $corpoTesto;
$mail->AltBody = “Ecco la foto in allegato.”;
if (!$mail->Send())
echo(“Errore nell’invio…riprovare”);
else
echo(“Invio completati correttamente…”);
echo(“<meta http-equiv=’refresh’ content=’10;url=formFoto.php’>”);
die();
}
include(“include/com_contatti.php”);
?>
All’interno della cartella config dovra’ essere presente il file db.php per la connessione al database cosi’ fatto:
<?php
$dbhost = ‘localhost’;
$dbusername = ‘root’;
$dbpasswd = ”;
$database_name = ‘fiera’;
$connection = mysql_pconnect(“$dbhost”,”$dbusername”,”$dbpasswd”) or die (“Impossibile collegarsi al server.”);
$db = mysql_select_db(“$database_name”, $connection) or die(“Impossibile selezionare il database.”);
?>
All’interno della cartella include sara’ presente il form com_contatti.php:
<SCRIPT>
Filtro = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-]{2,})+\.)+([a-zA-Z0-9]{2,4})$/;
function inviamodulo()
{
var name = document.modulo.nome.value;
var cognome = document.modulo.cognome.value;
var email = document.modulo.email.value;
var loc = document.modulo.loc.value;
var trattamentoDati = document.modulo.checkbox[0].checked;
if ((name == “”) || (name == “undefined”)) {
alert(“Inserisci il tuo nome.”);
document.modulo.nome.focus();
return false;
}
else if ((cognome == “”) || (cognome == “undefined”)) {
alert(“Devi inserire il Cognome.”);
document.modulo.cognome.focus();
return false;
}
else if (!Filtro.test(email)) {
alert(“Indirizzo mail vuoto o non valido.”);
document.modulo.email.focus();
return false;
}
else if ((loc == “”) || (loc == “undefined”)) {
alert(“Devi inserire la Localita’.”);
document.modulo.loc.focus();
return false;
}
else if (!(trattamentoDati==true)) {
alert (‘Devi acconsentire al trattamento dei dati personali’);
document.modulo.nome.focus();
return false;
}
//INVIA
else {
document.modulo.action = “formFoto.php”;
document.modulo.submit();
}
}
</SCRIPT>
<form method=”post” name=”modulo” onsubmit=”inviamodulo(); return false;”>
<table width=”283″ align=”left” cellpadding=”1″ cellspacing=”1″>
<tr>
<td width=”134″ align=”right” valign=”middle” >
<div align=”right”>Nome*:</div>
</td>
<td width=”140″>
<div align=”left”>
<input maxlength=”60″ name=”nome” type=”text” size=”20″>
</div>
</td>
</tr>
<tr>
<td align=”right” valign=”middle” >Cognome*: </td>
<td>
<div align=”left”>
<input maxlength=”60″ name=”cognome” type=”text” size=”20″>
</div>
</td>
</tr><br />
<tr>
<td align=”right” valign=”middle” >E-mail*: </td>
<td>
<div align=”left”>
<input name=”email” type=”text” size=”20″ id=”email” maxLength=”40″>
</div>
</td>
</tr>
<tr>
<td align=”right” valign=”middle” >Telefono: </td>
<td>
<div align=”left”>
<input name=”telefono” type=”text” size=”20″ maxLength=”80″>
</div>
</td>
</tr>
<tr>
<td align=”right” valign=”middle” >Località*: </td>
<td>
<div align=”left”>
<input name=”loc” type=”text” size=”20″ maxLength=”120″>
</div>
</td>
</tr>
<tr>
<td colspan=”2″>
<div align=”center”><span ><strong>Informativa ai sensi art. 13 D.Lgs.196/2003</strong></span></div>
</td>
</tr>
<tr>
<td >
<input name=”checkbox” id=”checkbox” type=”radio” value=”1″>
Acconsento</td>
<td >
<input name=”checkbox” id=”checkbox” type=”radio” value=”0″>
Non Acconsento </td>
</tr>
<tr>
<td colspan=”2″ align=”center” valign=”top” style=”cursor: pointer;” onclick=”inviamodulo(); return false;”><strong>
<input type=”submit” value=”Invia >>”>
</strong></td>
</tr>
</table>
</form>
Ovviamente piazzare un form senza alcuna spiegazione non ha assolutamente senso; magari impostare una breve frase esplicativa con un layout gradevole ed una preview della webcam live e’ piu’ che partecipativo. Inserire una foto ironica prima della reale foto da inviare potrebbe essere divertente (magari a seconda del sesso dell’utente che si registra…) ma queste son tutte migliorie che lascio fare a voi…
Adesso avete tutto il materiale per far interagire gli utenti con lo stand per almeno 30 secondi regalandogli un sorriso mentre voi state gestendo il vostro attuale interlocutore per poter chiedere un parere sul gioco e se magari sono interessati al vostro prodotto .-) …Buona fiera a tutti!