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

Video 1 - Ako poslať SMS z MySQL na vašej webovej stránke (Video návod)

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ácia

Toto 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.

Požiadavky

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!
Ako to funguje

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.

sms komunikácia medzi ozeki sms gateway a mysql databázou a php
Obrázok 1 - SMS komunikácia medzi Ozeki SMS Gateway, MySQL databázou a PHP

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);
...
}
Obrázok 8 - Upravená funkcia insertMessage(...) Zhrnutie

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