ابحث في هذه المدونة

الجمعة، 2 نوفمبر 2012

انشاء نموذج الاتصال بنا


مستوى الدرس: متوسط

اللغات المستخدمة: PHP HTML 
كما أفترض ان لديك معرفة مسبقة بأساسيات لغة PHP .

البرامج المستخدمة: مخدم WAMP، برنامج Adobe Dreamweaver CS5 او اي محرر "كود" برمجي .

الصفحات التي سوف ننشئها : 
contact.php
process.php



ان من الصفحات الاساسية في كل موقع هي صفحة تمكن الزائرين من الاتصال بصاحب الموقع, او المدونة او الشركة او غيرها.حيث غالبا هذه الصفحات تتكون من نماذج اتصال مثل (نموذج دردشة, نموذج ارسال رسالة) وغيرها , كما تحتوي على معلومات اتصال اخرى.
نماذج الاتصال تستخدم صفحات ديناميكية لمعالجة طلب الاتصال فمثلا لو كان نموذج دردشة مع خدمة الزبائن فمن خلال الصفحة الديناميكية يتم التأكد ما ان كان الموظف متواجد ام لا وعلى هذا الاساس يتم تفعيل صفحة برنامج الدردشة والذي غالبا يكون بلغة JavaScript.
لنركز على نموذج الاتصال الشائع والذي من خلاله يمكنك ارسال رسالة تحتوي على اسمك وبريدك الالكتروني ومحتوى الرسالة الى بريد الشركة او الموقع بدون استخدام خدمات البريد التقليدية... فكيف يعمل؟
سنقوم في هذا الدرس بأنشاء صفحة (اتصل بنا) تحتوي على نموذج اتصال .
حيث ان صفحة النموذج تطلب من الزائر كتابة الاسم, عنوان البريد الالكتروني, والرسالة . وسيقوم النموذج بأرسال البيانات لصفحة اخرى لتتم معالجتها واستخدام دالة mailالتي سنتكلم عنها لاحقا.
في البداية قم بفتح برنامج محرر النصوص البرمجية وانشئ صفحة PHP جديدة واكتب الاسطر التالية في خانة body:

<div align="right" dir="rtl">
<form action="process.php" method="post">
<label>الاسم</label>
<input type="text" name="name" />
<br /><br />

<label>البريد الالكتروني</label>
<input type="text" name="email" />
<br /><br />


<label>الرسالة</label>
<textarea name="msg" cols="50" rows="8"></textarea>
<br /><br />


<input type="submit" value="ارسال" /> &nbsp;
<input type="reset" value="مسح" />
</form>
</div>


الاسطر اعلاه تقوم بأنشاء نموذج مبسط كما هو موضح ادناه:




كما هو ملاحظ لقد قمت مسبقا بتوجيه النموذج الى صفحة process.php لذلك سنقوم بأنشاء الصفحة لكن قبل ذلك لننقاش قليلا دالة mail :
هي دالة من دوال PHP تستخدم للتعامل مع بروتوكولات البريد الموجودة في كل سيرفر وهي مفيدة جدا من ناحية النماذج حيث تسهل على مالكي الموقع والزوار من التواصل ويمكن استخدامها كالاتي:


mail (بريد المرسل, محتوى الرسالة, الموضوع, عنوان المستلم);

- عنوان المستلم هو البريد الالكتروني الخاص بموقعك
- الموضوع هو موضوع الرسالة ويجب ان يكون بداخل علامات اقتباس
- محتوى الرسالة يكون بداخل علامات اقتباس ايضا
- بريد المرسل هو البريد الالكتروني للمستخدم او الزائر

في حالة انشاء صفحة نموذج اتصال فأن الدالة ستسقبل بيانات متغيرة في كل حالة اتصال لذلك سندمج هذه الدالة مع بارامترات الدالة $_POST التي ستسقبل البيانات من الصفحة السابقة , بالطبع يمكنك استخدام اي طريقة لارسال البيانات .
قم بأنشاء صفحة process.php واكتب الكود التالي:

<?php
session_start();
if (empty($_POST['name'])|| empty($_POST['email']) || empty($_POST['msg'])) {
echo "الرجاء ملء كافة الحقول";
} else {
date_default_timezone_set('Asia/Baghdad');
$nw_date=date("F j, Y");
$body="الاسم: ".$_POST['name']."\n الرسالة: ".$_POST['msg']."\n التاريخ: ".$nw_date;
$email=$_POST['email'];
mail("youremail@company.com", "new message",$body, "من:  <".$email.">");

echo "شكرا لك سنرد عليك بأقرب وقت";
echo "-"."<a href='contact.php'>العودة</a>";
}
?>


في البداية وضعنا دالة if مع دالة empty للتأكد من عدم خلو اي من الحقول من البيانات قبل متابعة العملية فأن كانت المعلومات موجودة سنقوم بالاجراءات التالية:

قمنا بأنشاء متغير يحمل وقت وتاريخ العمليةوقد قمنا بضبط التوقيت حسب مدينة بغداد من خلال الخاصية date_default_timezone_set
ثم قمنا بأنشاء متغير محتوى الرسالة الذي يتكون من محتوى الرسالة الفعلي واسم الزائر والتاريخ كما ان البريد الالكتروني للزائر سيكون هو بريد المرسل ووضعناه بدالة:
$email=$_POST['email'];



كخطوة اخيرة قم بتغيير البريد الالكتروني المستخدم بالمثال الى عنوانك الخاص وقم بتشغيل الصفحة على موقعك الفعلي وليس مخدم الويب المحلي وشاهد التغيير.

هناك 6 تعليقات:

Anonymuos يقول...

ممكن اتسويلي واحد

الايميليالمستقبل : sallered62@gmail.com

Saad Saad يقول...

شكرا لك تم عمل الصفحةبنجاح

Saad Saad يقول...

شكرا تم عمل الصفحة بنجاح

abdullah Ibraheem يقول...

جربت الخطوات وما وصلني رسالة على البريد

Mohamed Ahmed يقول...

انا قمت بعمل النموزج و لا يرسل لي الرسالة و كذلك يعطي لي رسالة خطاء
ارجو ان اعرف ما الخطاء

د. محمد الكريز يقول...

السلام عليكم

ممتاز جدا وكان العمل رائع

سؤال:

كيف يمكنني ان اسجل بيانات كل من يتصل بي في قاعدة بيانات SQL

وكيف استطيع استرجاعها وعرضها

ارجو ان تساعدني

شكرا لك