Pošalji SMS iz MySQL-a na svojoj web stranici

Bazama podataka možete upravljati SQL naredbama. SQL naredbe možete slati putem PHP-a. To vam omogućuje manipulaciju tablicama u bazi podataka. Na primjer, PHP može dodati zapise u tablicu SMS poruka za slanje, ali također može čitati zapise o primljenim porukama.

Preuzimanje: MySQL_PHP_Example.zip

Video 1 - Kako poslati SMS iz MySQL-a na svojoj web stranici (Video tutorial)

Ovo PHP rješenje namijenjeno je web developerima s osnovnim znanjem PHP-a i SQL-a. Možete preuzeti PHP izvorni kod, kako biste mogli pratiti ovaj korak-po-korak tutorial koji sadrži osnovne upute za implementaciju rješenja.

Zašto je kombinacija SMS Gatewaya, baze podataka i PHP-a korisna

Ovo je korisno PHP rješenje za

  • dodavanje SMS funkcija na vašu web stranicu.
  • dodavanje SMS funkcija na korporativni intranet.
  • kreiranje automatiziranih SMS obavijesti.
  • povećanje sigurnosti web stranice dodavanjem SMS prijave.

Zahtjevi

Trebat će vam Ozeki SMS Gateway, web poslužitelj i MySQL poslužitelj. Ove funkcije možete hostirati na istom računalu ili na dva računala kao što možete vidjeti u tablici ispod:

PHP host: Operativni sustav: Linux ili Windows
Web poslužitelj (Apache ili IIS)
PHP
MySQL poslužitelj
Ozeki SMS Gateway host: Operativni sustav: Windows ili Linux
.NET framework (ako koristite Windows) ili Mono (ako koristite Linux)
Ozeki SMS Gateway

Ozeki SMS Gateway možete preuzeti
otvaranjem stranice za preuzimanje:
Preuzmi Ozeki SMS Gateway!

Kako to radi

Prije nego što počnete koristiti ovu PHP aplikaciju, trebate instalirati Ozeki SMS Gateway i MySQL poslužitelj na svoje računalo. Možete koristiti Windows ili Linux. Važno je odabrati hardversko ili softversko rješenje za SMS poruke. Kao hardversko rješenje preporučuje se mobilni telefon ili GSM modem, a kao softversko rješenje možete koristiti svog SMS uslugu putem interneta.

PHP primjer koji možete pronaći u ovom tutorialu može čitati zapise ili umetnuti nove zapise u tablicu. Ovo je vrlo korisno za čitanje dolaznih poruka ili pisanje odlaznih poruka. Ako želite vidjeti kako rješenje funkcionira, pogledajte Sliku 1.

sms poruke između ozeki sms gatewaya i mysql baze podataka i php-a
Slika 1 - SMS poruke između Ozeki SMS Gatewaya, MySQL baze podataka i PHP-a

Na dijagramu možete vidjeti 'Internet korisnika', koji će zapravo slati i primati SMS poruke putem preglednika. Internet korisnik je povezan s web poslužiteljem s PHP podrškom, koji može upravljati bazama podataka na SQL poslužitelju, a te baze podataka pripadaju Ozeki SMS Gatewayu. U konačnom koraku Ozeki SMS Gateway šalje poruku na mobilni telefon putem GSM mreže.

Internet korisnik može pristupiti internetu s bilo kojeg mjesta. Jedino što je bitno je da zna IP adresu ili URL računala koje pokreće PHP poslužitelj i da je ovlašten za prijavu u MySQL bazu podataka, kako bi mogao umetnuti željeni zapis SMS poruke koji će kasnije biti odabran od strane Ozeki SMS Gatewaya za slanje na mobitel primatelja putem GSM mreže.

Ovaj tijek rada također funkcionira u obrnutom smjeru. Gdje Ozeki SMS Gateway prima SMS poruku iz GSM mreže i sprema je u MySQL bazu podataka, kako bi PHP poslužitelj mogao pročitati i prikazati je na ekranu internet korisnika.

Kako kreirati MySQL bazu podataka

	

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 - Kreiranje tablica u strukturi koju zahtijeva Ozeki SMS Gateway

Kako kreirati korisnika baze podataka u Ozeki SMS Gatewayu

Korak 1: Otvorite Ozeki 10 u web pregledniku
Korak 2: Odaberite SMS Gateway aplikaciju iz integriranog radnog prostora Ozeki 10
Korak 3: Kreirajte korisnika baze podataka u SMS Gatewayu slijedeći upute.

Kako koristiti kod Molimo koristite PHP kod koji ste preuzeli i slijedite ove korake:
Korak 1: Prvo raspakirajte preuzetu zip datoteku.
Korak 2: Kopirajte sqlsmshandling.php, sqlsmshandling_inoutmessages.php i sqlsmshandling_functions.php u glavni direktorij web poslužitelja.
Korak 3: Prepišite IP adresu SQL poslužitelja, korisničko ime i lozinku u sqlsmshandling_functions.php.
Korak 4: Ako Ozeki SMS Gateway ne radi, pokrenite ga.
Korak 5: Unesite IP adresu vašeg PHP poslužitelja u web pregledniku: http://127.0.0.1/sqlsmshandling.php
(IP adresu PHP poslužitelja trebate promijeniti ili ostaviti na 127.0.0.1 ako PHP poslužitelj i vaš web preglednik rade na istoj mašini.)
Korak 6: Molimo ispunite HTML obrazac i pritisnite 'Pošalji'.
Korak 7: Ako je sve prošlo u redu, Ozeki SMS Gateway će prikazati status poruke u dnevniku korisnika baze podataka.
PHP skripta

Ovdje možete saznati više detalja o skripti koja se može preuzeti.

Skripta mora znati korisničke vjerodajnice za vašu MySQL bazu podataka. Glavna uloga skripte je umetanje nove poruke u vašu tablicu odlaznih poruka. U ovom primjeru ta se tablica zove 'ozekimessageout'.

Korisnik baze podataka Ozeki SMS Gatewaya periodično provjerava tablicu za nove zapise i ako je status poruke 'Send', pokušat će je poslati. U slučaju uspjeha, korisnik baze podataka promijenit će status poruke u 'Sent'.

Ovo je struktura izvornog koda:

sqlsmshandling.php:

Sadrži ASP elemente za izgradnju poruka. Na primjer, oznake, tekstualna polja i gumb 'Pošalji'. Gumb 'Pošalji' poziva funkcije 'connectToDatabase()', 'insertMessage(...)' i 'closeConnection()' iz sqlsmshandling_functions.php. sqlsmshandling.php ne rukuje samo SMS porukama, već i iznimkama. Na primjer, prazna polja.

sqlsmshandling_functions.php:

Ova PHP datoteka sadrži sve interne funkcije koje koriste 3 datoteke.

- connectToDatabase(): Povezuje se s bazom podataka MySQL poslužitelja.
- closeConnection(): Zatvara vezu koja je stvorena u connectToDatabase().
- insertMessage(recipient, messageType, messageText): Izvršava INSERT naredbu u bazi podataka. Ova naredba umeće zapis poruke u tablicu odlaznih poruka.
- showOutgoingMessagesInTable(): Odabire poruke iz SQL tablice odlaznih poruka i gradi HTML tablicu od njih u vašem web pregledniku.
- showIncomingMessagesInTable(): Odabire poruke iz SQL tablice dolaznih poruka i gradi HTML tablicu od njih u vašem web pregledniku.

sqlsmshandling_inoutmessages.php:

Gradi HTML tablice. Koristi funkcije connectToDatabase(), showOutgoingMessagesInTable(), showIncomingMessagesInTable() i closeConnection() za ponovno generiranje tablica. Ove funkcije dostupne su u sqlsmshandling_functions.php.

Detaljan opis procesa na slici 1 iznad:

Korak 1: Izrada obrasca za unos

sqlsmshandling.php kreira obrazac (Slika 3) za traženje SMS podataka od korisnika. Obrazac se sastoji od oznaka i tekstualnih polja, plus gumba 'Pošalji'. Internet korisnik popunjava polja za primatelja i poruku te klikne 'Pošalji'.

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;">Sastavi poruku</font>
            <br /><br />
        </td>
    </tr>
    <tr>
        <td valign="top">Primatelj: </td>
        <td>
            <textarea name="textAreaRecipient" cols="40" rows="2">...</textarea>
        </td>
    </tr>
    <tr>
        <td valign="top">Tekst poruke: </td>
        <td>
            <textarea name="textAreaMessage" cols="40" rows="10">...</textarea>
        </td>
    </tr>
    <tr>
        <td colspan="2" align="centre">
            <input type="submit" value="Pošalji">
        </td>
    </tr>
    <tr><td colspan='2' align='centre'>
    ...
    </td></tr>
</table>
</form>
...

Slika 3 - Gradi HTML obrazac

Ako internet korisnik klikne 'Pošalji', pokreće se sljedeći skript:

...

<?php

    if (isset($_POST["textAreaRecipient"]) && $_POST["textAreaRecipient"] == "")
    {
        echo "Polje primatelja ne smije biti prazno!";
    }
    else if (isset($_POST["textAreaRecipient"]) && $_POST["textAreaRecipient"] != "")
    {
    try
    {
        connectToDatabase();
        if (insertMessage($_POST["textAreaRecipient"],"SMS:TEXT",$_POST["textAreaMessage"]))
        {
            echo "Umetanje je uspjelo!";
        }
        closeConnection();
    }
    catch (Exception $exc)
    {
        echo "Greška: " . $exc->getMessage();
    }
}
?>
...

Slika 4 - Prijavljuje se i umeće poruku u tablicu baze podataka pozivom funkcije insertMessage(...)

Korak 2: Obrada podataka u HTML tekstualnim poljima

Ako su oba tekstualna polja popunjena, podaci će se obraditi i umetnuti u tablicu odlaznih poruka SQL baze podataka. To može postići funkcija insertMessage(…) (Slika 5).

Imajte na umu da će zapis poruke biti umetnut u MySQL bazu podataka pomoću skripte koja se prethodno prijavila (Slika 4 iznad).

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: Izrada tablica odlaznih i dolaznih poruka

Ako pritisnete F5 ili kliknite osvježi u svom pregledniku, tablice odlaznih i dolaznih poruka bit će ažurirane čitanjem informacija iz MySQL baze podataka. Kao primjer možete vidjeti showOutgoingMessagesInTable() u nastavku (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>Primatelj</td>
        <td>Vrijeme slanja</td><td>Vrijeme primitka</td><td>Operater</td>";
        echo "<td>Status</td><td>
        Tip poruke</td><td>Tekst poruke</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 tablicu od odlaznih poruka

Često postavljana pitanja

Pitanje: Mogu li poslati drugu vrstu poruke osim 'SMS:TEXT'?
Odgovor: Da. Na primjer, Wap push poruku prilikom poziva funkcije insertMessage(...) (Slika 7).

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

U obrascu treba napisati sljedeće u tekstualnom okviru 'Tekst poruke':

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

Slika 7 - SMS:TEXT promijenjeno u SMS:WAPPUSH

Parametar 'action' oznake 'indication' može biti jedan od sljedećih:
signal-high, signal-medium, signal-low, signal-none, signal-delete.

Pitanje: Može li PHP s omogućenim HTTP poslužiteljem raditi na drugom računalu od MySQL poslužitelja i Ozeki SMS Gatewaya?
Odgovor: Da, može. U PHP skripti postavite IP adresu i stvarne podatke za prijavu u vašu MySQL bazu podataka.

Pitanje: Mogu li primatelju prikazati telefonski broj pošiljatelja?
Odgovor: Da, možete. Molimo stvorite tekstualni okvir za telefonski broj pošiljatelja ili izmijenite funkciju insertMessage(...) (Slika 8). Imajte na umu da ovo funkcionira samo ako imate vezu s IP SMS pružateljem usluga.

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 - Izmijenjena funkcija insertMessage(...)

Sažetak

Ovaj članak govori o rješenju za upravljanje SMS porukama s MySQL pomoću Ozeki SMS Gatewaya i kako postaviti ovaj sustav. Ako implementirate ovo rješenje slijedeći korak po korak vodič, moći ćete upravljati svojim sustavom za slanje poruka putem SQL naredbi kroz vašu PHP aplikaciju. Osim organiziranog i jednostavnog slanja SMS poruka koje ovaj dodatak nudi, postoji još jedna velika prednost, a to je napredna sigurnost web stranice koju možete postići dodavanjem SMS prijave.

Web stranica Ozeki puna je članaka koje preporučujem za čitanje, iskoristite priliku i posjetite te stranice. Prvo pogledajte vodič o tome kako koristiti svoju web stranicu za slanje SMS poruka.

Preuzmite Ozeki SMS Gateway sada i dopustite nam da vam pomognemo postići svoje ciljeve!

More information