إرسال رسائل SMS من MySQL على موقعك الإلكتروني
يمكنك إدارة قواعد البيانات باستخدام عبارات SQL. يمكنك إرسال عبارات SQL من خلال PHP. هذا يتيح لك إمكانية معالجة جداول قاعدة البيانات. على سبيل المثال، يمكن لـ PHP إضافة سجلات جدول لرسائل SMS المراد إرسالها، كما يمكنها أيضًا قراءة سجلات الرسائل الواردة.
تحميل: MySQL_PHP_Example.zip
هذا الحل بـ PHP مخصص لمطوري الويب الذين لديهم معرفة أساسية في PHP و SQL. يمكنك تحميل كود PHP المصدر، حتى تتمكن من اتباع هذا الشرح خطوة بخطوة الذي يحتوي على تعليمات أساسية حول كيفية تنفيذ الحل.
لماذا يعتبر بوابة SMS مع قاعدة بيانات و PHP مزيجًا مفيدًا
هذا حل مفيد بـ PHP لـ
- إضافة وظائف SMS إلى موقعك الإلكتروني.
- إضافة وظائف SMS إلى شبكة الإنترانت الخاصة بشركتك.
- إنشاء إشعارات SMS تلقائية.
- زيادة أمان الموقع عن طريق إضافة تسجيل الدخول عبر SMS.
المتطلبات
ستحتاج إلى استضافة بوابة Ozeki SMS Gateway، وخادم ويب، وخادم MySQL. يمكنك استضافة هذه الوظيفة من نفس الكمبيوتر أو من جهازين كما ترى في الجدول أدناه:
مضيف PHP: |
نظام التشغيل: Linux أو Windows خادم ويب (Apache أو IIS) PHP خادم MySQL |
مضيف Ozeki SMS Gateway: |
نظام التشغيل: Windows أو Linux إطار عمل .NET (إذا كنت تستخدم Windows) أو Mono (إذا كنت تستخدم Linux) Ozeki SMS Gateway |
![]() | يمكن الحصول على Ozeki SMS Gateway عن طريق فتح صفحة التحميل: تحميل Ozeki SMS Gateway! |
كيف يعمل
قبل أن تبدأ في استخدام هذا التطبيق بـ PHP، يجب عليك مزود خدمة SMS عبر IP عبر الإنترنت.
مثال PHP الذي ستجده في هذا الشرح قادر على قراءة السجلات أو إضافة سجلات جديدة إلى الجدول. هذا مفيد جدًا عند قراءة الرسائل الواردة أو كتابة الرسائل الصادرة. إذا كنت ترغب في رؤية كيفية عمل الحل، يرجى النظر إلى الشكل 1.
يمكنك رؤية "مستخدم الإنترنت" في الرسم البياني، الذي سيقوم فعليًا بإرسال واستقبال رسائل SMS من خلال متصفح. متصل المستخدم بخادم ويب يدعم PHP، والذي يمكنه إدارة قواعد البيانات على خادم SQL، وهذه القواعد البيانات تابعة لـ Ozeki SMS Gateway. في الخطوة الأخيرة، يرسل Ozeki SMS Gateway الرسالة إلى هاتف محمول عبر شبكة GSM.
يمكن لمستخدم الإنترنت الوصول إلى الإنترنت من أي مكان. الشيء الوحيد المهم هو ما إذا كان يعرف عنوان IP أو URL للكمبيوتر الذي يعمل عليه خادم PHP وما إذا كان مصرحًا له بتسجيل الدخول إلى قاعدة بيانات MySQL، حتى يتمكن من إدراج سجل رسالة SMS المطلوب والذي سيتم اختياره لاحقًا بواسطة Ozeki SMS Gateway ليتم إرساله إلى هاتف المستلم باستخدام شبكة GSM.
هذا التدفق يعمل أيضًا في الاتجاه المعاكس. حيث يستقبل Ozeki SMS Gateway رسالة SMS من شبكة GSM ويحفظها في قاعدة بيانات MySQL، حتى يتمكن خادم PHP من قراءتها وعرضها على شاشة مستخدم الإنترنت.
كيفية إنشاء قاعدة بيانات MySQL
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';
الشكل 2 - إنشاء جداول بالهيكل المطلوب من قبل Ozeki SMS Gateway
كيفية إنشاء مستخدم قاعدة بيانات في Ozeki SMS Gateway
الخطوة 1: يرجى فتح Ozeki 10 في متصفح الويب
الخطوة 2: حدد تطبيق SMS Gateway من سطح المكتب المدمج لـ Ozeki 10
الخطوة 3: قم بإنشاء مستخدم قاعدة بيانات في SMS Gateway باتباع التعليمات.
الخطوة 1: | قم أولاً بفك ضغط ملف zip الذي تم تحميله. |
الخطوة 2: | انسخ الملفات sqlsmshandling.php، sqlsmshandling_inoutmessages.php و sqlsmshandling_functions.php إلى الدليل الرئيسي لخادم الويب. |
الخطوة 3: | قم بإعادة كتابة عنوان IP لخادم SQL واسم المستخدم وكلمة المرور في ملف sqlsmshandling_functions.php. |
الخطوة 4: | إذا لم يكن Ozeki SMS Gateway يعمل، يرجى تشغيله. |
الخطوة 5: | أدخل عنوان IP لخادم PHP في متصفح الويب الخاص بك: http://127.0.0.1/sqlsmshandling.php (يجب عليك تغيير IP خادم PHP أو تركه على 127.0.0.1 إذا كان خادم PHP ومتصفح الويب يعملان على نفس الجهاز.) |
الخطوة 6: | يرجى ملء نموذج HTML والضغط على 'إرسال'. |
الخطوة 7: | إذا سار كل شيء على ما يرام، سيعرض Ozeki SMS Gateway حالة الرسالة في سجل مستخدم قاعدة البيانات. |
هنا يمكنك العثور على مزيد من التفاصيل حول البرنامج النصي القابل للتنزيل.
يجب أن يعرف البرنامج النصي بيانات اعتماد المستخدم لقاعدة بيانات MySQL الخاصة بك. الدور الرئيسي للبرنامج النصي هو إدراج الرسالة الجديدة في جدول الرسائل الصادرة. يسمى هذا الجدول 'ozekimessageout' في المثال الحالي.
يتحقق مستخدم قاعدة بيانات Ozeki SMS Gateway بشكل دوري من الجدول للحصول على سجلات جديدة وإذا كانت حالة الرسالة 'إرسال'، فسيحاول إرسالها. في حالة النجاح، سيغير مستخدم قاعدة بيانات حالة الرسالة إلى 'تم الإرسال'.
هذا هو هيكل الكود المصدري:
sqlsmshandling.php:
يحتوي على عناصر بناء الرسالة في ASP. على سبيل المثال، التسميات، مربعات النص وزر 'إرسال'. يستدعي زر 'إرسال' الدوال 'connectToDatabase()'، 'insertMessage(...)' و 'closeConnection()' من sqlsmshandling_functions.php. يتعامل sqlsmshandling.php ليس فقط مع رسائل SMS، ولكن أيضًا مع الاستثناءات. على سبيل المثال، الحقول الفارغة.
sqlsmshandling_functions.php:
يحتوي ملف PHP هذا على جميع الدوال الداخلية المستخدمة من قبل الملفات الثلاثة.
- connectToDatabase(): يتصل بقاعدة بيانات على خادم MySQL.
- closeConnection(): يغلق الاتصال، الذي تم إنشاؤه في connectToDatabase().
- insertMessage(recipient, messageType, messageText):
ينفذ عبارة INSERT على قاعدة البيانات. تقوم هذه العبارة بإدراج سجل الرسالة في جدول الرسائل الصادرة.
- showOutgoingMessagesInTable():
يختار الرسائل من جدول الرسائل الصادرة في SQL ويبني جدول HTML
منها في متصفح الويب الخاص بك.
- showIncomingMessagesInTable():
يختار الرسائل من جدول الرسائل الواردة في SQL ويبني جدول HTML
منها في متصفح الويب الخاص بك.
sqlsmshandling_inoutmessages.php:
يبني جداول HTML. يستخدم دوال connectToDatabase()، showOutgoingMessagesInTable()، showIncomingMessagesInTable() و closeConnection() لإعادة إنشاء الجداول. هذه الدوال متوفرة في sqlsmshandling_functions.php.
الوصف التفصيلي للعملية في الشكل 1 أعلاه:
الخطوة 1: إنشاء نموذج إدخال
يقوم sqlsmshandling.php بإنشاء نموذج (الشكل 3) لطلب بيانات SMS من المستخدم. يتكون النموذج من تسميات ومربعات نصية، بالإضافة إلى زر 'إرسال'. يقوم مستخدم الإنترنت بملء حقول المستلم والرسالة ثم ينقر على 'إرسال'.
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;">إنشاء رسالة</font> <br /><br /> </td> </tr> <tr> <td valign="top">المستلم: </td> <td> <textarea name="textAreaRecipient" cols="40" rows="2">...</textarea> </td> </tr> <tr> <td valign="top">نص الرسالة: </td> <td> <textarea name="textAreaMessage" cols="40" rows="10">...</textarea> </td> </tr> <tr> <td colspan="2" align="centre"> <input type="submit" value="إرسال"> </td> </tr> <tr><td colspan='2' align='centre'> ... </td></tr> </table> </form> ...
الشكل 3 - بناء نموذج HTML
إذا نقر مستخدم الإنترنت على 'إرسال'، يتم تشغيل البرنامج النصي التالي:
... <?php if (isset($_POST["textAreaRecipient"]) && $_POST["textAreaRecipient"] == "") { echo "يجب ألا يكون حقل المستلم فارغًا!"; } else if (isset($_POST["textAreaRecipient"]) && $_POST["textAreaRecipient"] != "") { try { connectToDatabase(); if (insertMessage($_POST["textAreaRecipient"],"SMS:TEXT",$_POST["textAreaMessage"])) { echo "تم الإدراج بنجاح!"; } closeConnection(); } catch (Exception $exc) { echo "خطأ: " . $exc->getMessage(); } } ?> ...
الشكل 4 - يقوم بتسجيل الدخول وإدراج الرسالة في جدول قاعدة البيانات عن طريق استدعاء دالة insertMessage(...)
الخطوة 2: معالجة البيانات في مربعات النص HTML
إذا تم ملء كلا مربعي النص، فسيتم معالجة البيانات وإدراجها في جدول الرسائل الصادرة في قاعدة بيانات SQL. يمكن تحقيق ذلك بواسطة دالة insertMessage(…) (الشكل 5).
ضع في اعتبارك أن سجل الرسالة سيتم إدراجه في قاعدة بيانات MySQL بواسطة البرنامج النصي الذي قام بتسجيل الدخول مسبقًا (الشكل 4 أعلاه).
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; } ...
الشكل 5 - دالة insertMessage(...)
الخطوة 3: إنشاء جداول الرسائل الصادرة والواردة
إذا ضغطت على F5 أو نقرت على تحديث في متصفحك، سيتم تحديث جداول الرسائل الصادرة والواردة عن طريق قراءة المعلومات من قاعدة بيانات MySQL. كمثال، يمكنك رؤية showOutgoingMessagesInTable() أدناه (الشكل 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>المرسل</td><td>المستلم</td> <td>وقت الإرسال</td><td>وقت الاستلام</td><td>المشغل</td>"; echo "<td>الحالة</td><td> نوع الرسالة</td><td>نص الرسالة</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; } ...
الشكل 6 - دالة showOutgoingMessagesInTable(): تقوم بإنشاء جدول HTML من الرسائل الصادرة
الأسئلة الشائعة
السؤال: هل يمكنني إرسال نوع آخر من الرسائل غير 'SMS:TEXT'؟
الجواب: نعم. على سبيل المثال، رسالة Wap push عند استدعاء دالة insertMessage(...) (الشكل 7).
insertMessage ($_POST["textAreaRecipient"], "SMS:WAPPUSH", $_POST["textAreaMessage"])
في النموذج، يجب كتابة ما يلي في مربع النص 'نص الرسالة':
<si> <indication href="http://target_address" action="signal-high"> نص الوصف </indication> </si>
الشكل 7 - تغيير SMS:TEXT إلى SMS:WAPPUSH
يمكن أن تكون معلمة 'action' في وسم 'indication' واحدة من الخيارات التالية:
signal-high, signal-medium, signal-low, signal-none, signal-delete.
السؤال: هل يمكن لخادم HTTP الذي يعمل بـ PHP أن يكون على جهاز مختلف عن خادم MySQL و Ozeki SMS Gateway؟
الجواب: نعم، يمكن. في سكريبت PHP، يرجى تعيين عنوان IP وبيانات تسجيل الدخول الفعلية لقاعدة بيانات MySQL الخاصة بك.
السؤال: هل يمكنني إظهار رقم هاتف المرسل للمستلم؟
الجواب: نعم، يمكنك ذلك. يرجى إنشاء مربع نص لرقم هاتف المرسل في النموذج أو تعديل دالة insertMessage(...) (الشكل 8).
ضع في اعتبارك أن هذا يعمل فقط إذا كان لديك اتصال بمزود خدمة SMS عبر IP.
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); ... }
ملخص
هذه المقالة تتحدث عن حل لإدارة رسائل SMS باستخدام MySQL عبر بوابة Ozeki SMS Gateway وكيفية إعداد هذا النظام. إذا قمت بتنفيذ هذا الحل باتباع البرنامج التعليمي خطوة بخطوة، ستتمكن من التحكم في نظام الرسائل الخاص بك باستخدام عبارات SQL عبر تطبيق PHP الخاص بك. بالإضافة إلى تنظيم وبساطة إرسال الرسائل القصيرة التي يوفرها هذا الحل، هناك ميزة رائعة أخرى وهي الأمان المتقدم للموقع الذي يمكن تحقيقه بإضافة تسجيل الدخول عبر SMS.
موقع Ozekي مليء بالمقالات التي أوصي بقراءتها، اغتنم الفرصة وقم بزيارة هذه المواقع. لنبدأ أولاً بالدليل حول كيفية استخدام موقعك لإرسال رسائل SMS.
قم بتنزيل بوابة Ozeki SMS Gateway الآن ودعنا نساعدك في تحقيق أهدافك!
More information
- إرسال رسائل قصيرة من MySQL باستخدام PHP
- إرسال رسائل قصيرة من موقع ويب باستخدام PHP و MySQL
- إرسال رسائل قصيرة من موقع ويب باستخدام PHP وواجهة برمجة تطبيقات HTTP
- كلمة مرور لمرة واحدة PHP