أنت في : الرئيسية :: PHP :: موضوع: استقبال البيانات من إستمارة

الدكتور نت

السلام عليكم

منذ العام 1999م و نحن نحاول الارتقاء بالمصمم و المطور العربي عبر إضافة دروس و مقالات و دروات لتساعده على إنشاء و تطوير موقعه . لو كنت أحد هؤلاء و أحببت مساعدتنايمكننا أن ندلك على عدد من الأمور التي يمكنك القيام بها لمساعدتنا اضغط هنا و أقرأ أكثر عن الموضوع ..

استقبال البيانات من إستمارة


بقلم: الدكتور نت /مواضيع أخرى لنفس المحرر الدكتور نت

حول الموضوع

وصف الموضوع

كيف نستقبل البيانات المرسلة من إستمارة أو نموذج و نطبع البيانات المرسلة فيها


الأوسمة :
| | | |
في التصنيفات :PHP

هنا سنشرح أساسيات التعامل مع الإستمارات و استقبال البيانات منها ..

سننشأ استمارة تتكون من 3 حقول و سنسميهم على التوالي :

  • yourname
  • youremail
  • yourcomment

هذه هي شفرة الإستمارة


<form method="POST" action="form.php" name="myform">

<p><label for="yourname">الإسم </label><input type="text" name="yourname" size="20" /></p>
<p><label for="youremail">بريدك الإلكتروني</label><input type="text" name="youremail" size="20" /></p>
<p><label for="yourcomment">رسالتك </label>
<textarea rows="5"name="yourcomment" cols="25"></textarea>
</p>
<p>
<input type="submit" value="ارسل" name="sendbuttom" /></p>

</form>

عن الضغط على زر الاستمارة سيتم التوجهة إلى الملف form.php و قد حددنا ذلك من خلال الوسم form و خاصية action .

و الآن في ملف form.php

الشفرة التالية :


<?
if($_SERVER['REQUEST_METHOD'] =='POST'){
//التأكد من أن جميع البيانات كاملة ..
if(empty($_POST['yourname']) || empty($_POST['youremail']) || empty($_POST['yourcomment'])){
echo 'بيانات ناقصة .. فضلا أكمل جميع البيانات ..';
exit;
}
// التأكد من أن البريد الإلكتروني صحيح
if(!eregi("^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*(.[a-z]{2,3})$", $_POST['youremail'])) {
echo "البريد الإلكتروني غير صحيح..";

exit;
}
// جميع البيانات صحيحة تابع

$to_email = "youremail@somewhere.com"; // البريد الذي تريد الاستقبال عليه
// موضوع الرسالة
$subject = "رسالة من الموقع ..";
$headers = 'From: '.$_POST['youremail'] . "";

mail($to_email, $subject, $_POST['yourcomment'], $headers);
echo 'شكرا لك تم إرسال الرسالة بنجاح ..';
}

?>

لو راجعت كود الاستمارة في الأعلى ستجد اننا حددنا Method و جعلناه يساوي post و هذه هي الطريقة الأفضل في حالة هذه الإستمارة .

و بالتالي في السطر الأول نتأكد من أن طريقة استدعاء ملف form.php كانت بواسطة استمارة و الطريقة post .

المتغير $_SERVER['REQUEST_METHOD'] يحتوي على طريقة الإرسال و ما نقوم به معرفة إذا كانت القيمة تساوي Post إذا طريقة الإرسال صحيحة و نستمر . و الا نتجاهل الامر .

بعدها نريد التأكد من جميع البيانات المطلوبة كاملة و ليس هناك حقول ناقصة ..


//التأكد من أن جميع البيانات كاملة ..
if(empty($_POST['yourname']) || empty($_POST['youremail']) || empty($_POST['yourcomment'])){
echo 'بيانات ناقصة .. فضلا أكمل جميع البيانات ..';
exit;
}

كل القيم المرسلة من خلالة الإستمارة تكون موجودة في المتغير $_POST

و الذي هو عبارة عن متسلسلة تحتوي على جميع البيانات المرسلة من الإستمارة مثلا لو أردنا الحصول على ما كتبه الزائر في الحقل الذي اسميناه في الإستمارة yourname

نجده بالطريقة التالية ..

$_POST['yournae'] ;

و بالتالي في برنامجنا نحن نستخدم الدالة empty للتأكد من كل حقل.

استخدمنا دالة شرطية (أو ) باستخدام || وبالتالي لو تحقق أي من الشروط الثلاث التي حددناها و هو خلو أي من الحقول سنطبع رسالة خطأ بأستخدام echo و سننهي البرنامج باستخدام exit


// التأكد من أن البريد الإلكتروني صحيح
if(!eregi("^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*(.[a-z]{2,3})$", $_POST['youremail'])) {
echo "البريد الإلكتروني غير صحيح..";
}

في الخطوة التالية نريد التأكد من صحة البريد الإلكتروني الذي زودنا به الزائر لذلك استخدام الدالة eregi . البريد الإلكتروني له تركيب معين أو طريقة معينة في الكتابة حددناها و نحن نستخدم الدالة eregi للمقارنة بين البريد الإلكتروني الذي ادخلة الزائر و التركيب الصحيح للبريد … قبل الدالة استخدمنا علامة التعجب ! و التي تعني لا اي إذا لم يتحقق الشرط و لم يظهر التوافق اظهر رسالة الخطأ و انهي البرنامج


// جميع البيانات صحيحة تابع

$to_email = "youremail@somewhere.com"; // البريد الذي تريد الاستقبال عليه
// موضوع الرسالة
$subject = "رسالة من الموقع ..";
$headers = 'From: '.$_POST['youremail'] . "";

mail($to_email, $subject, $_POST['yourcomment'], $headers);

و الآن نأتي لعملية الإرسالة الفعلية ..

المتغير to_email نحدد فيه البريد الذي سنرسل إليه اليبانات في حالة موقعك بريدك .

موضوع الرسالة نحدده من خلال المتغير subject

أما header فحددنا فيه بريد المرسل و الذي هو في حالتنا هنا الزائر ..

في header يمكنك استخدام الكثير من القيم و تحديد الكثير من الخيارات مثل cc و bcc .. الخ راجع دليل الphp لمعرفة الخيارات المتاحة لك .

و اخيرا نرسل البيانات عن طريق الدالة mail و نطبع رسالة شكر للزائر ..

تم تطوير هذا البرنامج في موضوع (إنشاء استمارة مراسلة بواسطة أجاكس و php )  . بحيث يتم إرسال الاستمارة بواسطة أجاكس .

تقييم الموضوع :
نقطة  واحدةنقطتين3 نقاط4 نقاط5 نقاط
(9 صوت)
Loading ... Loading ...
أعجبك الموضوع .. أضفه في
Del.icio.us     Digg     أرسله إلى  Stumbleupon!     Technorati     File on Furl     Blinklist    Ma.gnolia     Yahoo! My Web