Come utilizzare SMS Machine/HTTP con PHPData di pubblicazione: 17-10-2003 | Versione Italiana | (No English Version) Parole chiave: - How-To - PHP - SMS Machine - |
Un sistema completo di messaggistica SMS utilizzando PHP
La SMS Machine di Area SX consente di ricevere e trasmettere SMS tramite una semplice connessione Web, utilizzando il nostro linguaggio di programmazione preferito: PHP, ASP, PERL, Visual Basic...
In questo articolo vedremo in dettaglio come interfacciare la SMS Machine con il linguaggio PHP.
Come funziona SMS Machine
La SMS Machine (per leggere un articolo di approfondimento SMS Machine/HTTP - Gateway SMS - HTTP) consente di ricevere e trasmettere SMS semplicemente caricando una pagina da un server Web.
Ad esempio, supponendo che la nostra SMS Machine risponda all'indirizzo IP 192.168.0.101, per inviare un SMS non dovremo fare altro che richiedere il seguente indirizzo http://192.168.0.101/smssend.cgi, passando in modalità POST il numero ed il testo dell'SMS che intendiamo inviare.
Analogamente per ricevere gli SMS sarà sufficente configurare la SMS Machine perchè richiami un nostro script PHP passandogli i parametri dell'SMS ricevuto.
Quello che vogliamo realizzare qui di seguito è un sistema che riceva un SMS, lo memorizzi in un database MySql ed invii un SMS di risposta al mittente. Questo tipo di sistema può essere la base di decine di idee per offrire servizi o intrattenimento via SMS direttamente dal nostro sito Web.
Di cosa abbiamo bisogno
Per realizzare tutto questo ci servono:
- una SMS Machine/HTTP
- un Server Web Apache con modulo PHP
- MySql Server
Ricezione di un SMS
Per ricevere un SMS dobbiamo, per prima cosa, avere configurato la nostra SMS Machine per fare in modo che, alla ricezione dell'SMS stesso, richiami uno script che risiede sul nostro server Web. Nel seguito supporremo che tale server risponda all'indirizzo IP 192.168.0.50.
Apriamo quindi il configuratore della SMS Machine e scriviamo nell'apposito campo il percorso verso lo script che scriveremo per gestire i messaggi: http://192.168.0.50/ricevi.php. Scegliamo anche la modalità con cui vogliamo che ci vengano trasmessi i parametri, POST oppure GET. Nel nostro caso entrambe le modalità funzionano con lo stesso script, per la capacità dell'interprete PHP di rendere disponibili le variabili passate sia in POST che in GET nella stessa maniera.
Apriamo quindi il nostro editor favorito e inziamo a creare lo script ricevi.php.
Quando questo script verrà richiamato dalla SMS Machine, nelle variabili $sms_num, $sms_text, $sms_data saranno già memorizzati tutti i dati dell'SMS ricevuto. Più semplice di così!
Da questo punto in poi lo script si potrebbe sviluppare in moltissimi modi, secondo le nostre esigenze. Noi scegliamo di inserire il messaggio ricevuto in un database e di rispondere all'utente confermandogli che la memorizzazzione è avvenuta con successo.
Inserimento dei dati in un database
Per l'inserimento dei dati supporremo di avere creato nel nostro server MySql un database chiamato messaggi, in cui è presente una tabella sms_ricevuti. Tale tabella contiene i campi data, mumero e messaggio.
Per prima cosa quindi dovremo stabilire la connessione con il server Mysql (che per comodità supponiamo rispondere allo stesso indirizzo IP del server Web, 102.168.0.50), utilizzando una utenza ed una password che abbiano accesso al database messaggi.
Aggiungiamo quindi al nostro script ricevi.php le seguenti righe:
// Memorizza i dati in un database MySql
$mySqlHost="192.168.0.50"; // Indirizzo del nostro server MySql
$mySqlUser="root"; // E' l'utente Mysql che ha accesso al database messaggi
$mySqlPassword="password"; // E' la password per l'utente MySql
$mySqlDatabase="messaggi"; // E' il nome del database in cui memorizzeremo i messaggi
// Si connette al server MySQL
mysql_pconnect($mySqlHost,$mySqlUser,$mySqlPassword);
// Seleziona il database in cui memorizzare il messaggio
mysql_select_db($mySqlDatabase);
// Inserisce il messaggio in una tabella chiamata "sms_ricevuti"
mysql_query("INSERT INTO sms_ricevuti (numero,messaggio,data)
VALUES (\"$sms_num\",\"$sms_text\",\"sms_date\")");
A questo punto il messaggio ricevuto è stato salvato nel database: non dobbiamo fare altro che rispondere all'utente che tutto è andato bene.
Se invece abbiamo problemi di connessione al database occorrerà controllare che l'utente che abbiamo specificato sia valido per MySql e che il database sia stato correttamente creato.
Invio dell'SMS di risposta
Per l'invio dell'SMS di risposta abbiamo la necessità di richiamare una pagina che si trova sul server Web interno alla SMS Machine, inviandole in POST i parametri dell'SMS da spedire. Per tale scopo abbiamo bisogno della funzione PostIt, che effettua l'invio dei parametri che le passiamo simulando un POST. Tale funzione è definita nel file ricevi.php che si può scaricare dal link in fondo a questo articolo.
La funzione riceve come parametri un array associativo contenente i dati da inviare in POST ed una stringa che identifica l'URL verso cui fare il POST stesso.
Nel nostro script preparariamo quindi l'array associativo contenente il nostro messaggio di risposta e lo passiamo alla funzione PostIt:
// Invia un SMS di risposta
$dati["num"] = $sms_num; // Numero a cui inviare il messaggio
//(è lo stesso da cui abbiamo ricevuto)
$dati["text"] = "Il tuo messaggio è stato correttamente memorizzato";
// Testo del messaggio
$dati["Pwd"] = "SMS1234"; // Codice per la SMS Machine
$dati["mode"] = "0"; // Modo di invio 0 - normale, 1 - messaggio flash
$indirizzo_SMSMachine="http://192.168.0.101"; // Indirizzo della SMSMachine
//Questa funzione richiama lo script di invio della SMSMachine e simula il passaggio
// dei dati in POST
PostIt($dati,$indirizzo_SMSMachine."/smssend.cgi");
A questo punto il ciclo è completo e l'utente che ha inviato il messaggio vedrà arrivare la conferma direttamente sul suo telefonino.
Nel file ricevi.php che è possibile scaricare dal link in fondo a questo articolo è presente anche una porzione di codice commentata che permette di reinviare l'SMS ricevuto via E-Mail.
Sviluppi e potenzialità del sistema
Con il metodo appena visto è possibile integrare in maniera semplice ed immediata, la messaggistica SMS nel nostro sito Web o nella nostra applicazione.
Ad esempio si potrebbe creare un database che contenga informazioni rilevanti per i nostri utenti (ad esempio una rubrica telefonica) e permettere loro di interrogarlo via SMS. Per fare questo sarebbe sufficiente anallizzare il messaggio in arrivo alla ricerca di comandi di interrogazione da noi definiti, effettuare le query sul database e ritornare i dati ottenuti all'utente attraverso l'SMS di risposta.
Un'altra applicazione di semplicissima realizzazione potrebbe essere un "deposito" di SMS che l'utente possa poi accedere via Web.
Inoltre il sistema ha notevoli doti di scalabilità: è sufficiente aggiungere sulla rete nuove SMS Machine (fino ad esaurimento degli IP della rete!) per poter aggiungere nuovi numeri GSM per la ricezione, utilizzando lo stesso server per il trattamento degli SMS.
File relativi a questo articolo
Script ricevi.php di ricezione, memorizzazione nel database e reinvio di un SMS
Script di ricezione tramite GET o POST che visualizza il messaggio e lo memorizza in un file sul server Web
Invio di un SMS da una pagina Web HTML
Segnala questo articolo:
Parole chiave: - How-To - PHP - SMS Machine -
|