بسم الله الرحمن الرحيم
الدرس الثاني من سلسلة دروس موقع ثك بوك :
عنوان المقالة الاصلي :Sending Form Data in E-Mail
ملاحظة : ستحتاج الى معرفة قليلة في : html .
سنقوم في هذا الدرس بإنشاء نموذج مراسلة ، و سيكون التركيز على استخدام
الدالة mail ، هذه الدالة تأخذ اربع متغيرات :
1- بريدك الذي تريد ان تستقبل الرسائل عليه .
2- عنوان الرسالة مثلا : (( اقتراحات على الموقع )).
3- نص الرسالة .
4- اي هيدرز اضافية .
____
البداية : انشيء ملف و اسمه : "show_form.html",
سنكون في هذا الصفحة فراغين احداهما لاسم المرسل و الاخر لبريده ثم سنضع فراغ كبير لاضافة نص الرسالة و لن نحتاج هنا الا الى
اوامر html لا غير ..
<HTML>
<HEAD>
<TITLE>E-Mail Form</TITLE>
</HEAD>
<BODY>
<FORM method="POST" action="do_sendform.php">
<P>اسمك :<br>
<INPUT type="text" name="sender_name" size=30></p>
<P>بريدك :<br>
<INPUT type="text" name="sender_email" size=30></p>
<P>محتوى الرسالة :<br>
<textarea name="message" cols=30 rows=5></textarea></p>
<P><INPUT type="submit" value="Send This Form"></p>
</FORM>
</BODY>
</HTML>
لا يوجد شيء جديد للذين يعرفون الاتش تي ام ال مجرد فورمة و طريقة ارساله للمتغيرات هي طريقة post . حسنا الان عندما يقوم احد زوار موقعك بملء الفورمة
سيتم ارسال ثلاثة متغيرات الى صفحة البي اتش بي هم : $sender_name, $sender_email $message.
ثانيــــــــــا :
بعدما ارسلنا المتغيرات الى صفحة do_sendform.php الان عليك ان تنشيء صفحة بي اتش بي و تسميها بهذا الاسم .
حسنا ... الان اكتب هذا الكود ..:
<?php
$msg = "اسم المرسل :\t$sender_name\n";
لقد انشأنا متغير يتكون من جملة تتكون من ثابت الاو هو اسم المرسل : ثم فاصلة ثم المتغير سيندر نيم و الذي ستتغير قيمته من شخص لاخر
ثم الكود الاخير و هو كود اتش تي ام ال يستخدم لانزال المؤشر سطر الى الاسفل \n .
الان اطبع هذا الكود :
$msg .= "بريد المرسل\t$sender_email\n";
$msg .= "محتوى الرسالة :\t$message\n\n";
لم نقم بشيء جديد فقط اخبرنا البي اتش بي بان يكمل المتغير msg و يطبع الثابت بريد المرسل : ثم فاصلة ثم متغير عنوان بريد المرسل ثم في النهاية نفس الكود للبدء في سطر جديد .
ثم في القسم الثاني من الكود قلنا له ان يطبع الثابت محتوى الرسالة : ثم فاصلة ثم متغير محتوى الرسالة ثم استخدمنا كود الانزال مرتين على التوالي .
لا حظ انه كان بالامكان كتابة المتغير msg بهذه الطريقة المتواصلة :
$msg = "Sender Name:\t$sender_name\nSender E-Mail:\t$sender_email\nMessage:\t$messsage\n\n";
و لكن الطريقة الاولى اكثر احترافا فهي ستسهل عليك عملية تعديل الكود اذا كان فيه اخطاء و كل و ذوقه .!
الان ننشيء المتغيرين الاخيرين :
$recipient = "you@sourcer.com";
$subject = "رأي على الموقع";
ضع بريدك امام المتغير الاول و هو متغير بريد المستقبل . و في المتغير الثاني ضع عنوان الرسالة التي تحب ان تظهر بها الرسالة في صندوق بريدك .
و في النهاية يمكنك اضافة اي هيدرز ترغب بها و من اكثر الهيدرز شهرة هي :
$mailheaders = "From: My Web Site <> \n";
$mailheaders .= "Reply-To: $sender_email\n\n";
الاول : فروم و هو الاسم الذي سيظهر مقابل عنوان الرسالة في بريدك ضع اي اسم تريد و يفضل ان يكون اسم موقعك .
الثاني : ريبلا تو اي عنوان البريد الذي سيتم الرد عليه او بعبارة اخرى بريد الذي ارسل لك البريد .
لاحظ : يمكنك كتابة متغير mailheaders بطريقة اخرى هل استنتجتها ؟....
حسنـــــــــــــــا انتهينا لقد انشأت الاربع متغيرات الان . ضعها في الدالة mail بهذا الشكل .........
mail($recipient, $subject, $msg, $mailheaders);
و لكن الم ننسى شيئا مهما ؟؟! نعم لقد نسينا ان نضع رسالة ... (( تم ارسال رسالتك بنجاح شكرا لتفضلك بالارسال )) ...
و ذلك لانه اذا نسيت ان تضع هذه الرسالة فسوف يقوم زوارك بالنقر على زر ارسال ملايين المرات و سيمتلء بريدك بالرسائل و زوارك يحسبون انهم لم يرسلوا الرسالة بعد .!! ;(
حسنا ثلاث اكواد html و المشكلة محلولة .. :
echo "<HTML><HEAD><TITLE>Form Sent!</TITLE></HEAD><BODY>";
echo "<H1 align=center>Thank You, $sender_name</H1>";
echo "<P align=center>Your feedback has been sent.</P>";
echo "</BODY></HTML>";
اعتقد انه اوامر اتش تي ام ال المستخدمة سهلا جدا و لا تحتاج الى شرح اضافي مني ..
و الى هنا نصل الى نهاية الدرس الثاني من سلسلة الدروس .... قم بتغير الخيارات في المثال و اكتب العبارات الخاصة بموقعك و اضف و احذف الهيدرز ،، للتدريب على استخدام هذه الدالة . بالتوفيق
و هذا هو الكود كاملا :
<?php
$msg = "Sender Name:\t$sender_name\n";
$msg .= "Sender E-Mail:\t$sender_email\n";
$msg .= "Message:\t$message\n\n";
$recipient = "you@youremail.com";
$subject = "Web Site Feedback";
$mailheaders = "From: My Web Site <> \n";
$mailheaders .= "Reply-To: $sender_email\n\n";
mail($recipient, $subject, $msg, $mailheaders);
echo "<HTML><HEAD><TITLE>Form Sent!</TITLE></HEAD><BODY>";
echo "<H1 align=center>Thank You, $sender_name</H1>";
echo "<P align=center>Your feedback has been sent.</P>";
echo "</BODY></HTML>";
?>
^SOURCER^