Posielanie SMS z MySQL na vašej webovej stránke
Databázy môžete spravovať pomocou SQL príkazov. SQL príkazy môžete odosielať cez PHP. To vám umožňuje manipulovať s tabuľkami v databáze. Napríklad PHP môže pridávať záznamy tabuliek SMS správ na odoslanie, ale tiež môže čítať záznamy prijatých správ.
Stiahnuť: MySQL_PHP_Example.zip
Toto PHP riešenie je určené pre webových vývojárov so základnými znalosťami PHP a SQL. Môžete stiahnuť zdrojový kód PHP, aby ste mohli postupovať podľa tohto návodu, ktorý obsahuje základné inštrukcie, ako implementovať riešenie.
Prečo je SMS Gateway s databázou a PHP užitočná kombináciaToto je užitočné PHP riešenie pre
- pridanie SMS funkcií na vašu webovú stránku.
- pridanie SMS funkcií do vášho firemného intranetu.
- vytvorenie automatizovaných SMS notifikácií.
- zvýšenie bezpečnosti webovej stránky pridaním SMS prihlásenia.
Budete potrebovať hostiť Ozeki SMS Gateway, webový server a MySQL server. Túto funkciu môžete hostiť na rovnakom počítači alebo z dvoch strojov, ako môžete vidieť v tabuľke nižšie:
PHP hostiteľ: |
Operačný systém: Linux alebo Windows Webový server (Apache alebo IIS) PHP MySQL Server |
Hostiteľ Ozeki SMS Gateway: |
Operačný systém: Windows alebo Linux .NET framework (ak používate Windows) alebo Mono (ak používate Linux) Ozeki SMS Gateway |
![]() | Ozeki SMS Gateway môžete získať otvorením stránky na stiahnutie: Stiahnuť Ozeki SMS Gateway! |
Pred začatím používania tejto PHP aplikácie by ste mali nainštalovať Ozeki SMS Gateway a MySQL Server na svoj počítač. Môžete použiť Windows alebo Linux. Je dôležité vybrať hardvérové alebo softvérové riešenie pre SMS komunikáciu. Ako hardvérové riešenie sa odporúča mobilný telefón alebo GSM modem a ako softvérové riešenie môžete použiť svojho poskytovateľa IP SMS služieb cez internet.
PHP príklad, ktorý nájdete v tomto návode, je schopný čítať záznamy alebo vkladať nové záznamy do tabuľky. To je veľmi užitočné pri čítaní prijatých správ alebo písaní odchádzajúcich správ. Ak by ste chceli vidieť, ako riešenie funguje, pozrite sa na Obrázok 1.
V diagrame môžete vidieť 'Internetového používateľa', ktorý bude skutočne posielať a prijímať SMS správy cez prehliadač. Internetový používateľ je pripojený k webovému serveru s podporou PHP, ktorý je schopný spravovať databázy na SQL Serveri a tieto databázy patria Ozeki SMS Gateway. V záverečnom kroku Ozeki SMS Gateway odošle správu na mobilný telefón cez GSM sieť.
Internetový používateľ môže pristupovať na internet odkiaľkoľvek. Jediné, na čom záleží, je, či pozná IP adresu alebo URL počítača, na ktorom beží PHP server a či je oprávnený prihlásiť sa do MySQL databázy, aby mohol vložiť požadovaný záznam SMS správy, ktorý bude následne vybraný Ozeki SMS Gateway na odoslanie na mobilný telefón príjemcu pomocou GSM siete.
Tento pracovný postup funguje aj v opačnom smere. Kde Ozeki SMS Gateway prijíma SMS správu z GSM siete a ukladá ju do MySQL databázy, aby ju PHP server mohol prečítať a zobraziť na obrazovke internetového používateľa.
Ako vytvoriť MySQL databázu
CREATE DATABASE ozekisms; USE ozekisms; CREATE TABLE ozekimessagein ( id int(11) NOT NULL auto_increment, sender varchar(30) default NULL, receiver varchar(30) default NULL, msg varchar(1024) default NULL, senttime varchar(100) default NULL, receivedtime varchar(100) default NULL, operator varchar(100), msgtype varchar(160) default NULL, PRIMARY KEY (id) ); CREATE TABLE ozekimessageout ( id int(11) NOT NULL auto_increment, sender varchar(30) default NULL, receiver varchar(30) default NULL, msg varchar(1024) default NULL, senttime varchar(100) default NULL, receivedtime varchar(100) default NULL, status varchar(20) default NULL, msgtype varchar(160) default NULL, operator varchar(100), PRIMARY KEY (id) ); GRANT insert,update,select,delete on ozekisms.* to sqluser@localhost IDENTIFIED BY 'abc123';
Obrázok 2 - Vytvorenie tabuliek v štruktúre požadovanej Ozeki SMS Gateway
Ako vytvoriť používateľa databázy v Ozeki SMS Gateway
Krok 1: Otvorte Ozeki 10 v webovom prehliadači
Krok 2: Vyberte aplikáciu SMS Gateway z integrovaného pracovného prostredia Ozeki 10
Krok 3: Vytvorte používateľa databázy v SMS Gateway podľa inštrukcií.
Ako používať kód
Prosím, použite PHP kód, ktorý ste stiahli, a postupujte podľa týchto krokov:Krok 1: | Najprv rozbaľte stiahnutý zip súbor. |
Krok 2: | Skopírujte sqlsmshandling.php, sqlsmshandling_inoutmessages.php a sqlsmshandling_functions.php do hlavného adresára webového servera. |
Krok 3: | Prepíšte IP adresu SQL servera, používateľské meno a heslo v súbore sqlsmshandling_functions.php. |
Krok 4: | Ak Ozeki SMS Gateway nebeží, spustite ho. |
Krok 5: | Zadajte IP adresu vášho PHP servera do webového prehliadača: http://127.0.0.1/sqlsmshandling.php (Mali by ste zmeniť IP adresu PHP servera alebo ju nechať na 127.0.0.1, ak PHP server a váš webový prehliadač bežia na tom istom počítači.) |
Krok 6: | Vyplňte HTML formulár a stlačte 'Odoslať'. |
Krok 7: | Ak všetko prebehlo v poriadku, Ozeki SMS Gateway zobrazí stav správy v logu používateľa databázy. |
PHP skript
Tu nájdete viac detailov o stiahnuteľnom vzorovom skripte.
Skript musí poznať prihlasovacie údaje používateľa k vašej MySQL databáze. Hlavnou úlohou skriptu je vložiť novú správu do vašej tabuľky odchádzajúcich správ. V tomto príklade sa táto tabuľka nazýva 'ozekimessageout'.
Databázový používateľ Ozeki SMS Gateway pravidelne kontroluje tabuľku kvôli novým záznamom a ak je stav správy 'Send', pokúsi sa ju odoslať. V prípade úspechu Databázový používateľ zmení stav správy na 'Sent'.
Toto je štruktúra zdrojového kódu:
sqlsmshandling.php:
Obsahuje prvky ASP na tvorbu správ. Napríklad štítky, textové polia a tlačidlo 'Odoslať'. Tlačidlo 'Odoslať' volá funkcie 'connectToDatabase()', 'insertMessage(...)' a 'closeConnection()' zo súboru sqlsmshandling_functions.php. sqlsmshandling.php spracúva nielen SMS správy, ale aj výnimky. Napríklad prázdne polia.
sqlsmshandling_functions.php:
Tento PHP súbor obsahuje všetky interné funkcie používané 3 súbormi.
- connectToDatabase(): Pripojí sa k databáze na MySQL serveri.
- closeConnection(): Uzatvorí spojenie, ktoré bolo vytvorené v connectToDatabase().
- insertMessage(recipient, messageType, messageText):
Spustí príkaz INSERT na databáze. Tento príkaz vloží záznam správy do tabuľky odchádzajúcich správ.
- showOutgoingMessagesInTable():
Vyberá správy z tabuľky odchádzajúcich správ SQL a vytvorí z nich HTML tabuľku
vo vašom webovom prehliadači.
- showIncomingMessagesInTable():
Vyberá správy z tabuľky prichádzajúcich správ SQL a vytvorí z nich HTML tabuľku
vo vašom webovom prehliadači.
sqlsmshandling_inoutmessages.php:
Vytvára HTML tabuľky. Používa funkcie connectToDatabase(), showOutgoingMessagesInTable(), showIncomingMessagesInTable() a closeConnection() na obnovenie tabuliek. Tieto funkcie sú dostupné v sqlsmshandling_functions.php.
Podrobný popis procesu na obrázku 1 vyššie:
Krok 1: Vytvorenie vstupného formulára
sqlsmshandling.php vytvára formulár (Obrázok 3) na vyžiadanie SMS údajov od používateľa. Formulár pozostáva zo štítkov a textových polí, plus tlačidla 'Odoslať'. Internetový používateľ vyplní polia príjemcu a správy a klikne na 'Odoslať'.
sqlsmshandling.php
... <form action="" method="post"> <table border="0" align="centre"> <tr> <td colspan="2" align="centre"> <font style="font-weight: bold; font-size: 16px;">Vytvoriť správu</font> <br /><br /> </td> </tr> <tr> <td valign="top">Príjemca: </td> <td> <textarea name="textAreaRecipient" cols="40" rows="2">...</textarea> </td> </tr> <tr> <td valign="top">Text správy: </td> <td> <textarea name="textAreaMessage" cols="40" rows="10">...</textarea> </td> </tr> <tr> <td colspan="2" align="centre"> <input type="submit" value="Odoslať"> </td> </tr> <tr><td colspan='2' align='centre'> ... </td></tr> </table> </form> ...
Obrázok 3 - Vytvára HTML formulár
Ak internetový používateľ klikne na 'Odoslať', spustí sa nasledujúci skript:
... <?php if (isset($_POST["textAreaRecipient"]) && $_POST["textAreaRecipient"] == "") { echo "Pole príjemcu nesmie byť prázdne!"; } else if (isset($_POST["textAreaRecipient"]) && $_POST["textAreaRecipient"] != "") { try { connectToDatabase(); if (insertMessage($_POST["textAreaRecipient"],"SMS:TEXT",$_POST["textAreaMessage"])) { echo "Vloženie bolo úspešné!"; } closeConnection(); } catch (Exception $exc) { echo "Chyba: " . $exc->getMessage(); } } ?> ...
Obrázok 4 - Prihlási sa a vloží správu do databázovej tabuľky volaním funkcie insertMessage(...)
Krok 2: Spracovanie údajov v HTML textových poliach
Ak sú obe textové polia vyplnené, údaje budú spracované a vložené do tabuľky odchádzajúcich správ SQL databázy. Toto môže dosiahnuť funkcia insertMessage(…) (Obrázok 5).
Majte na pamäti, že záznam správy bude vložený do MySQL databázy skriptom, ktorý sa predtým prihlásil (Obrázok 4 vyššie).
sqlsmshandling_functions.php
... function insertMessage ($recipient, $messageType, $messageText) { $query = "insert into ozekimessageout (receiver,msgtype,msg,status) "; $query .= "values ('" . $recipient . "', '" . $messageType . "', '" . $messageText . "', 'send');"; $result = mysql_query($query); if (!$result) { echo (mysql_error() . "
"); return false; } return true; } ...
Obrázok 5 - funkcia insertMessage(...)
Krok 3: Vytvorenie tabuliek odchádzajúcich a prichádzajúcich správ
Ak stlačíte F5 alebo kliknete na obnovenie v prehliadači, tabuľky odchádzajúcich a prichádzajúcich správ sa aktualizujú načítaním informácií z MySQL databázy. Ako príklad môžete vidieť showOutgoingMessagesInTable() nižšie (Obrázok 6).
sqlsmshandling_functions.php
function showOutgoingMessagesInTable() { $query = "select id,sender,receiver,senttime,receivedtime,operator,status,msgtype, msg from ozekimessageout;"; $result = mysql_query($query); if (!$result) { echo (mysql_error() . "<br>"); return false; } try { echo "<table border='1'>"; echo "<tr><td>ID</td><td>Odosielateľ</td><td>Príjemca</td> <td>Čas odoslania</td><td>Čas prijatia</td><td>Operátor</td>"; echo "<td>Stav</td><td> Typ správy</td><td>Text správy</td></tr>"; while ($row = mysql_fetch_assoc($result)) { echo "<tr>"; echo "<td>" . $row["id"] . "</td>"; echo "<td>" . $row["sender"] . "</td>"; echo "<td>" . $row["receiver"] . "</td>"; echo "<td>" . $row["senttime"] . "</td>"; echo "<td>" . $row["receivedtime"] . "</td>"; echo "<td>" . $row["operator"] . "</td>"; echo "<td>" . $row["status"] . "</td>"; echo "<td>" . $row["msgtype"] . "</td>"; echo "<td>" . $row["msg"] . "</td>"; echo "</tr>"; } echo "</table>"; mysql_free_result($result); } catch (Exception $exc) { echo (mysql_error() . "<br>"); return false; } return true; } ...
Obrázok 6 - funkcia showOutgoingMessagesInTable(): Generuje HTML tabuľku z odchádzajúcich správ
Často kladené otázky
Otázka: Môžem poslať iný typ správy ako 'SMS:TEXT'?
Odpoveď: Áno. Napríklad Wap push správu pri volaní funkcie insertMessage(...) (Obrázok 7).
insertMessage ($_POST["textAreaRecipient"], "SMS:WAPPUSH", $_POST["textAreaMessage"])
Vo formulári by malo byť v textovom poli 'Text správy' napísané:
<si> <indication href="http://target_address" action="signal-high"> text popisu </indication> </si>
Obrázok 7 - SMS:TEXT zmenené na SMS:WAPPUSH
Parameter 'action' tagu 'indication' môže byť jedna z nasledujúcich hodnôt:
signal-high, signal-medium, signal-low, signal-none, signal-delete.
Otázka: Môže mať PHP povolený HTTP server bežať na inom počítači ako MySQL server a Ozeki SMS Gateway?
Odpoveď: Áno, môže. V PHP skripte nastavte IP adresu a aktuálne prihlasovacie údaje k vašej MySQL databáze.
Otázka: Môžem zobraziť príjemcovi telefónne číslo odosielateľa?
Odpoveď: Áno, môžete. Vytvorte textové pole pre telefónne číslo odosielateľa alebo upravte funkciu insertMessage(...) (Obrázok 8).
Majte na pamäti, že to funguje len v prípade, že máte pripojenie k IP SMS poskytovateľovi služieb.
function insertMessage($sender, $recipient, $messageType, $messageText) { ... $query = "insert into ozekimessageout (sender,receiver,msgtype,msg,status) "; $query .= "values ('".$sender."','".$recipient."',". "'".$messageType."','".$messageText."','send');"; $result = mysql_query($query); ... }
Tento článok je o riešení na správu SMS správ s MySQL pomocou Ozeki SMS Gateway a ako tento systém nastaviť. Ak implementujete toto riešenie podľa návodu krok za krokom, budete môcť ovládať svoj systém správ pomocou SQL príkazov cez vašu PHP aplikáciu. Okrem organizovaného a jednoduchého SMS zasielania, ktoré toto riešenie ponúka, je tu ešte jedna veľká výhoda, a to pokročilá bezpečnosť webových stránok, ktorú môžete dosiahnuť pridaním SMS prihlásenia.
Webová stránka Ozeki je plná článkov, ktoré odporúčam prečítať, využíte túto príležitosť a navštívte tieto stránky. Začnite s návodom, ako použiť svoju webovú stránku na odosielanie SMS správ.
Stiahnite si Ozeki SMS Gateway teraz a pomôžte nám dosiahnuť vaše ciele!
More information
- Send SMS from MySQL with PHP
- Send SMS from a Website using PHP and MySQL
- Send SMS from a Website using PHP and HTTP API
- PHP One-time password