Pošiljanje SMS-jev iz MySQL na vaši spletni strani

Podatkovne baze lahko upravljate s SQL stavki. SQL stavke lahko pošiljate prek PHP-ja. To vam omogoča manipulacijo s tabelami v podatkovni bazi. Na primer, PHP lahko doda zapise v tabelo SMS sporočil za pošiljanje, lahko pa tudi bere zapise o dohodnih sporočilih.

Prenos: MySQL_PHP_Example.zip

Video 1 - Kako poslati SMS iz MySQL na vaši spletni strani (Video vadnica)

PHP rešitev je namenjena spletnim razvijalcem z osnovnim znanjem PHP in SQL. Lahko prenesete izvorno kodo PHP, da lahko sledite tej vadnici korak za korakom, ki vsebuje osnovna navodila za implementacijo rešitve.

Zakaj je kombinacija SMS prehoda s podatkovno bazo in PHP uporabna

To je uporabna PHP rešitev za

  • dodajanje SMS funkcij na vašo spletno stran.
  • dodajanje SMS funkcij v vaš podjetniški intranet.
  • ustvarjanje avtomatiziranih SMS obvestil.
  • povečanje varnosti spletne strani z dodajanjem SMS prijave.

Zahteve

Potrebovali boste gostovanje Ozeki SMS prehoda, spletnega strežnika in MySQL strežnika. To funkcijo lahko gostujete na istem računalniku ali na dveh napravah, kot lahko vidite v spodnji tabeli:

PHP gostitelj: Operacijski sistem: Linux ali Windows
Spletni strežnik (Apache ali IIS)
PHP
MySQL strežnik
Gostitelj Ozeki SMS prehoda: Operacijski sistem: Windows ali Linux
.NET okvir (če uporabljate Windows) ali Mono (če uporabljate Linux)
Ozeki SMS prehod

Ozeki SMS prehod lahko pridobite z
odprtjem strani za prenos:
Prenesite Ozeki SMS prehod!
Kako deluje

Preden začnete uporabljati to PHP aplikacijo, morate namestiti Ozeki SMS prehod in MySQL strežnik na vaš računalnik. Lahko uporabljate Windows ali Linux. Pomembno je izbrati strojno ali programsko rešitev za SMS pošiljanje. Kot strojna rešitev je priporočljiv mobilni telefon ali GSM modem, za programsko rešitev pa lahko uporabite vašega ponudnika IP SMS storitev prek interneta.

PHP primer, ki ga najdete v tej vadnici, lahko bere zapise ali vstavi nove zapise v tabelo. To je zelo uporabno pri branju dohodnih sporočil ali pisanju odhodnih sporočil. Če želite videti, kako rešitev deluje, si oglejte Sliko 1.

sms pošiljanje med ozeki sms prehodom in mysql podatkovno bazo ter php
Slika 1 - SMS pošiljanje med Ozeki SMS prehodom, MySQL podatkovno bazo in PHP

V diagramu lahko vidite 'Internetnega uporabnika', ki dejansko pošilja in prejema SMS sporočila prek brskalnika. Internetni uporabnik je povezan s spletnim strežnikom, ki podpira PHP in lahko upravlja podatkovne baze na SQL strežniku, te podatkovne baze pa pripadajo Ozeki SMS prehodu. V zadnjem koraku Ozeki SMS prehod pošlje sporočilo na mobilni telefon prek GSM omrežja.

Internetni uporabnik lahko dostopa do interneta od koder koli. Pomembno je le, ali pozna IP naslov ali URL računalnika, ki teče PHP strežnik, in ali je pooblaščen za prijavo v MySQL podatkovno bazo, da lahko vstavi želeni zapis SMS sporočila, ki ga bo kasneje Ozeki SMS prehod izbral za pošiljanje na prejemnikov mobilni telefon z uporabo GSM omrežja.

Ta delovni tok deluje tudi v obratni smeri. Ko Ozeki SMS prehod prejme SMS sporočilo iz GSM omrežja in ga shrani v MySQL podatkovno bazo, ga lahko PHP strežnik prebere in prikaže na zaslonu internetnega uporabnika.

Kako ustvariti MySQL podatkovno bazo

	

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';

Slika 2 - Ustvarjanje tabel v strukturi, ki jo zahteva Ozeki SMS prehod

Kako ustvariti uporabnika podatkovne baze v Ozeki SMS prehodu

Korak 1: Odprite Ozeki 10 v spletnem brskalniku
Korak 2: Izberite aplikacijo SMS prehoda iz integriranega namizja Ozeki 10
Korak 3: Ustvarite uporabnika podatkovne baze v SMS prehodu z upoštevanjem navodil.

Kako uporabiti kodo

Prosimo, uporabite PHP kodo, ki ste jo prenesli, in sledite tem korakom:
Korak 1: Najprej razpakirajte preneseno zip datoteko.
Korak 2: Kopirajte sqlsmshandling.php, sqlsmshandling_inoutmessages.php in sqlsmshandling_functions.php v glavni imenik spletnega strežnika.
Korak 3: V datoteki sqlsmshandling_functions.php prepišite IP naslov SQL strežnika, uporabniško ime in geslo.
Korak 4: Če Ozeki SMS Gateway ne teče, ga zaženite.
Korak 5: Vnesite IP naslov vašega PHP strežnika v spletni brskalnik: http://127.0.0.1/sqlsmshandling.php
(IP naslov PHP strežnika morate spremeniti ali pustiti na 127.0.0.1, če PHP strežnik in vaš spletni brskalnik tečeta na isti napravi.)
Korak 6: Izpolnite HTML obrazec in pritisnite 'Pošlji'.
Korak 7: Če je vse potekalo pravilno, bo Ozeki SMS Gateway prikazal status sporočila v dnevniku uporabnika baze podatkov.

PHP skript

Tukaj lahko izveste več podrobnosti o prenosljivem vzorčnem skriptu.

Skript mora poznati uporabniške poverilnice za vašo MySQL bazo podatkov. Glavna vloga skripta je vstavljanje novega sporočila v vašo tabelo odhodnih sporočil. V tem primeru se tabela imenuje 'ozekimessageout'.

Ozeki SMS Gatewayjev uporabnik baze podatkov periodično preverja tabelo za nove zapise in če je status sporočila 'Send', ga bo poskušal poslati. V primeru uspeha bo uporabnik baze podatkov spremenil status sporočila v 'Sent'.

To je struktura izvorne kode:

sqlsmshandling.php:

Vsebuje elemente ASP za gradnjo sporočil. Na primer, oznake, besedilna polja in gumb 'Pošlji'. Gumb 'Pošlji' kliče funkcije 'connectToDatabase()', 'insertMessage(...)' in 'closeConnection()' iz sqlsmshandling_functions.php. sqlsmshandling.php ne obravnava samo SMS sporočil, temveč tudi izjeme. Na primer, prazna polja.

sqlsmshandling_functions.php:

Ta PHP datoteka vsebuje vse notranje funkcije, ki jih uporabljajo 3 datoteke.

- connectToDatabase(): Poveže se z bazo podatkov na MySQL strežniku.
- closeConnection(): Zapre povezavo, ki je bila ustvarjena v connectToDatabase().
- insertMessage(recipient, messageType, messageText): Izvede INSERT stavek v bazi podatkov. Ta stavek vstavi zapis sporočila v tabelo odhodnih sporočil.
- showOutgoingMessagesInTable(): Izbere sporočila iz SQL tabele odhodnih sporočil in v vašem spletnem brskalniku zgradi HTML tabelo iz njih.
- showIncomingMessagesInTable(): Izbere sporočila iz SQL tabele dohodnih sporočil in v vašem spletnem brskalniku zgradi HTML tabelo iz njih.

sqlsmshandling_inoutmessages.php:

Gradi HTML tabele. Uporablja funkcije connectToDatabase(), showOutgoingMessagesInTable(), showIncomingMessagesInTable() in closeConnection() za ponovno generiranje tabel. Te funkcije so na voljo v sqlsmshandling_functions.php.

Podroben opis procesa na sliki 1 zgoraj:

Korak 1: Ustvarjanje vhodnega obrazca

sqlsmshandling.php ustvari obrazec (slika 3) za zahtevanje podatkov SMS od uporabnika. Obrazec je sestavljen iz oznak in besedilnih polj ter gumba 'Pošlji'. Internetni uporabnik izpolni polja prejemnika in sporočila ter klikne 'Pošlji'.

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;">Sestavi sporočilo</font>
            <br /><br />
        </td>
    </tr>
    <tr>
        <td valign="top">Prejemnik: </td>
        <td>
            <textarea name="textAreaRecipient" cols="40" rows="2">...</textarea>
        </td>
    </tr>
    <tr>
        <td valign="top">Besedilo sporočila: </td>
        <td>
            <textarea name="textAreaMessage" cols="40" rows="10">...</textarea>
        </td>
    </tr>
    <tr>
        <td colspan="2" align="centre">
            <input type="submit" value="Pošlji">
        </td>
    </tr>
    <tr><td colspan='2' align='centre'>
    ...
    </td></tr>
</table>
</form>
...

Slika 3 - Gradi HTML obrazec

Če internetni uporabnik klikne 'Pošlji', se izvede naslednji skript:

...

<?php

    if (isset($_POST["textAreaRecipient"]) && $_POST["textAreaRecipient"] == "")
    {
        echo "Polje prejemnika ne sme biti prazno!";
    }
    else if (isset($_POST["textAreaRecipient"]) && $_POST["textAreaRecipient"] != "")
    {
    try
    {
        connectToDatabase();
        if (insertMessage($_POST["textAreaRecipient"],"SMS:TEXT",$_POST["textAreaMessage"]))
        {
            echo "Vstavljanje je bilo uspešno!";
        }
        closeConnection();
    }
    catch (Exception $exc)
    {
        echo "Napaka: " . $exc->getMessage();
    }
}
?>
...

Slika 4 - Prijavi se in vstavi sporočilo v tabelo baze podatkov s klicem funkcije insertMessage(...)

Korak 2: Obdelava podatkov v HTML besedilnih poljih

Če sta oba besedilna polja izpolnjena, se podatki obdelajo in vstavijo v tabelo odhodnih sporočil SQL baze podatkov. To lahko doseže funkcija insertMessage(…) (slika 5).

Ne pozabite, da bo zapis sporočila v MySQL bazo podatkov vstavil skript, ki se je pred tem prijavil (slika 4 zgoraj).

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; } ...

Slika 5 - funkcija insertMessage(...)

Korak 3: Ustvarjanje tabel odhodnih in dohodnih sporočil

Če pritisnete F5 ali kliknite osveži v vašem brskalniku, se bodo tabele odhodnih in dohodnih sporočil posodobile z branjem informacij iz MySQL baze podatkov. Kot primer si lahko ogledate showOutgoingMessagesInTable() spodaj (slika 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>Pošiljatelj</td><td>Prejemnik</td>
        <td>Čas pošiljanja</td><td>Čas prejema</td><td>Operater</td>";
        echo "<td>Status</td><td>
        Vrsta sporočila</td><td>Besedilo sporočila</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;
}
...

Slika 6 - funkcija showOutgoingMessagesInTable(): Generira HTML tabelo iz odhodnih sporočil

Pogosto zastavljena vprašanja

Vprašanje: Ali lahko pošljem drugačno vrsto sporočila kot 'SMS:TEXT'?
Odgovor: Da. Na primer, Wap push sporočilo pri klicu funkcije insertMessage(...) (Slika 7).

insertMessage ($_POST["textAreaRecipient"], "SMS:WAPPUSH", $_POST["textAreaMessage"])

V obrazcu je treba v polje 'Besedilo sporočila' vpisati naslednje:

<si>
<indication href="http://target_address" action="signal-high">
besedilo opisa
</indication>
</si>

Slika 7 - SMS:TEXT spremenjen v SMS:WAPPUSH

Parameter 'action' oznake 'indication' je lahko eden od naslednjih:
signal-high, signal-medium, signal-low, signal-none, signal-delete.

Vprašanje: Ali lahko PHP z omogočenim HTTP strežnikom teče na drugem računalniku kot MySQL strežnik in Ozeki SMS Gateway?
Odgovor: Da, lahko. V PHP skriptu nastavite IP naslov in dejanske prijavne podatke za vašo MySQL bazo podatkov.

Vprašanje: Ali lahko prejemniku prikažem telefonsko številko pošiljatelja?
Odgovor: Da, lahko. Ustvarite polje za vpis telefonske številke pošiljatelja ali spremenite funkcijo insertMessage(...) (Slika 8). Upoštevajte, da to deluje le, če imate povezavo s ponudnikom IP SMS storitev.

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);
...
}
Slika 8 - Spremenjena funkcija insertMessage(...) Povzetek

Ta članek opisuje rešitev za upravljanje SMS sporočil z MySQL z uporabo Ozeki SMS Gateway in kako nastaviti ta sistem. Če to rešitev implementirate po korakih iz vadnice, boste lahko upravljali svoj sistem za sporočanje s SQL stavki prek vaše PHP aplikacije. Poleg organiziranega in preprostega SMS sporočanja, ki ga ta rešitev ponuja, obstaja še ena velika prednost, in to je varna spletna stran, ki jo lahko dosežete z dodajanjem SMS prijave.

Spletna stran Ozeki je polna člankov, ki jih priporočam za branje, izkoristite priložnost in obiščite te strani. Najprej si oglejte vadnico o tem, kako uporabiti svojo spletno stran za pošiljanje SMS sporočil.

Prenesite Ozeki SMS Gateway zdaj in nam dovolite, da vam pomagamo doseči vaše cilje!

More information