PDA

عرض الاصدار الكامل : برمجة فورم المراسلة لموقعك


الونه
09-12-2005, 10:13 PM
Dr.Server ("]بقلم : [/url]الملف add.html[/b] ("]مقدمة
أضمن لك بعد هذا الدرس البسيط ألا تبحث بعد اليوم عن فورم مراسلة لموقعك وأن تقوم ببرمجته بنفسك :)
لكن لا تبدأ بالقراءة وفي ذهنك إنك لن تفهم .. فقط ركز قليلاً وجرب .. وأحيطك علماً بأن سطور البرمجة التي تراها هنا ليست إلا html يمكنك عملها بالفرونت بيج .. ولن تحتاج إلا لحوالي ثلاثة أسطر فقط تكتبها بلغة php :) ..

أولاً : سنتعرف على الملفات المستخدمة في السيكربت ووظيفة كل منها :
1- add.html : هذه الصفحة تحتوي على الحقول التي يقوم الزائر بتعبئتها .. وللتبسيط سنطلب من الزائر البيانات التالية ( عنوان الرسالة – نص الرسالة ) .. وستتعلم لاحقاً كيفية إضافة حقول إضافية .. لكن الأهم أن نفهم هذه الخطوة .
2- Send.php : وهذا الملف هو الذي سيقوم باستقبال البيانات التي كتبها الزائر وسيقوم بإرسالها على بريدك .

<form method="post" action="send.php">
<input type="text" name="subject"> عنوان الرسالة : <br>
<input type="text" name="message"> الرسالة : <br>
<input type="submit" value="أرسل" >
</form>[/PHP]

شرح الكود :
- في السطر الأول قمنا بفتح form سيطلب من الزائر بيانات سيتم تحديدها في الأسطر التي بعده .. ويجب عند إنشاء فورم معين تحديد بارامترين أساسيين :

1 - method : وهي طريقة إرسال البيانات .. إما Get أو Post ، والفرق بينهما بكل بساطة هو أن Get بعد أن يقوم الزائر بتعبئة الحقول وضغط الإرسال ستقوم بعرض عنوان الصفحة بعد علامة استفهام ؟ في شريط العنوان بالمتصفح ، وستظهر البيانات التي وضعها الزائر أيضا في شريط العناوين .... وأما Post فستقوم بإرسال المعلومات دون عرضها في شريط العناوين .. ونحن هنا بالطبع لانريد عرض البيانات في شريط العنوان .. لذلك أستخدمنا Post .
2 ‌- Action : ونحدد هنا إسم الملف الذي تتجه إليه البيانات التي يضعها الزائر بعد ضغطه للإرسال .. ليقوم ذلك الملف باستقبالها ومعالجتها بحسب ما فيه من أوامر .

- السطر الثاني طالبنا الزائر بإدخال قيمة باستخدام الأمر input .. وهذا الأمر يحتاج إلى :

1 ‌- Type : وهنا نحدد نوع الإدخال من قبل الزائر .. هل هو نص text ? أو اختيار من متعدد كأزرار الراديو Radio ? أو مربعات إختيار يقوم الزائر بتحديدها أو تركها وهي ما تسمى بـالـ Checkbox ... وكما ترى بأننا هنا نريد من الزائر إدخال اسمه ، فبالتأكيد سنحدد نوع الإدخال على أنه Text .
2 ‌- Name : هنا سنضع اسم المتغير .. وهذا يعني بأن البيانات التي سيضعها الزائر في مثالنا الحالي ستحفظ في المتغير subject .

- السطر الثالث هو تكرار للسطر الثاني مع اختلاف اسم المتغير طبعاً .. وقد أعطيناه الاسم message هنا .. وطبعا الرسالة نوعها نصية text .

- السطر الرابع هو إضافة زر الإرسال .. ونوعه Submit ، سيحمل الكلمة ( أرسل ) للدلالة على طبيعة عمله .

- الوسوم <br> هي أحد وسوم html ، ويستخدم لترك سطر فارغ ..

- في النهاية يجب إقفـال الفورم عن طريق الوسم </form> .

الدالة Mail ("]الملف send.php

الصفحة الثانية هي الصفحة send.php وهي التي ستقوم باستلام البيانات التي سيضعها الزائر للمتغيرين السابقين ( subject$ و message$ ) .

سنستخدم للقيام بعملية الإرسال الدالة ()mail .. وسأوضحها باختصار ..

لكي تقوم الدالة بعملية الإرسال فإنها تحتاج إلى ثلاث باراميترات رئيسية هي :
1- to : بريد الشخص المرسل إليه .
2- Subject : عنوان أو موضوع الرسالة .
3- Message : نص الرسالة .

ويتم كتابة الدالة بالشكل التالي :

<?
Mail($to,$subject,$message)
?>

يعني تقوم بالإرسال للبريد to$ ، رسالة عنوانها subject$ وموضوعها message$ .. أعتقد واضحة ؟ :)

لمزيد من المعلومات راجع قسم الدوال ، [url="[Only registered and activated users can see links]) .

طيب .. تتفقون معي بأن صاحب الموقع يريد من الزائر الإرسال لبريده .. بمعنى أن البريد المرسل إليه ثابت بعنوان واحد لايتغير .. إذاً ستكو قيمة المتغير $to هي قيمة ثابتة هذه القيمة هي بريد صاحب الموقع .. لنفرض أن هذه القيمة هي [Only registered and activated users can see links] ([Only registered and activated users can see links]) ، سنكتب السطر التالي :

<?
$to="[Only registered and activated users can see links]";
?>

هذا المتغير to$ قمنا بتعريفه للدالة ، وبقي متغيرين أو بارميترين لكي تعمل الدالة بشكل صحيح .. هما عنوان الرسالة والموضوع .. وهو ما قمنا به قبل قليل في فورم الـ HTML ، ذكرنا أن عنوان الرسالة سيضعه الزائر في الحقل الذي أسميناه بالمتغير subject$ والرسالة سيكتبها في الحقل الذي اسمه message$ .

هنا نكون قد انتهينا من توضيح جميع احتياجات الدالة ()mail لتقوم بالإرسال ولم يبقى سوى سطر واحد إضافى على السطر السابق .. وهو ما يلي :

<?
Mail($to,$subject,$message);
?>


يعني أن الملف send.php كاملاً سيكون على الشكل :

<?
$to="[Only registered and activated users can see links]";
Mail($to,$subject,$message);
?>


لو قمت برفع الملفين على موقعك واختبرتهم ستجد بأن العملية ناجحة وتمت عملية الإرسال فعلاً .. وهذا هو الأساس في عمل فورم المراسلة بشكل بسيط ، لكن قد تحتاج لبعض الإضافات مثل :
1- إضافة أمر للتأكد من تعبئة الزائر للحقول حتى لايتم الإرسال للحقول إذا لم تحتوي على أي إدخالات .. وتستطيع عمل ذلك باستخدام جملة الشرك if .. else .
2- بعد الإرسال يتم طباعة عبارة ( شكرا لك .. لقد تم إرسال رسالتك ) .. وتستطيع القيام بذلك عن طريق إضافة السطر التالي لملف send.php :

<?
Echo "شكرا لك .. لقد تم إرسال رسالتك";
?>

- السماح باستخدام html .
4- تغيير مصدر الرسالة from .. حيث سيكون في المثال السابق nobody .
5- وضع الملف add.html في الفرونت بيج والتعديل عليه من ناحية الشكل والمظهر ليناسب ذوقك .

لم يبق إلا أن تتقن الطريقة بالتدرب على استخدام الفورم واستخدام الدالة ()mail ، وإضافة شيء جديد كل فترة وستجد أنك تتعلم بالتدريج كتابة php ، ومن يدري قد تكون بدايتك الفعلية لتعلم هذه اللغة ...

تحياتي للجميع :)

Anoo
09-12-2005, 10:40 PM
سلمت اخوي الونه على نقلك لهذا الدرس الممتع ..

وجزاء الله كاتبه بكل الخير

تحيتي لك ..

الونه
15-12-2005, 09:47 PM
welcome :) and thanks for the post

mahmoudbash
16-12-2005, 01:05 AM
مشكورةةةةةةةةةةة

mmazen
17-12-2005, 10:44 AM
أخي الكريم ألف شكر لك

She
17-12-2005, 02:42 PM
جزا الله الكاتب كل خير

والف شكر لك على نقل الموضوع المفيد جدا