العودة   دروس البرمجة والصيانة > دروس البرمجه > لغة بي اتش بي




ne nw

التعامل مع العميل

se sw


الرئيسية أضف درس الجديد الاكثر شهرة البحث

التعامل مع العميل
قديم 07-01-2008 03:47 PM
alwatany2010 alwatany2010 غير متواجد حالياً
مشرف
 
المشاهدات: 28
مشاركات: 0
أساليب أخري لتتبع الأخطاء
استخدام عباره echo
هو من أقدم الاساليب وكان يستخدم مثلاً في فحص بعض متغيرات نموذج فمثلاً أنت لديك نموذج يقوم بإرسال معلومات إلى النموذج وقد تستخدم في اختبار الأخطاء المنطقية التي يستصعب متابعتها في الكود
مثال :
كود PHP:
<? 
Echo “this is $name”;
Echo 
<br>;
Echo 
“this is $Email”
//كود يقوم بمعالجة معلومات المتغيرين
//طباعة المتغيرين بعد اداء عملية المعالجة ورؤية النتائج
Echo “this is after $name”;
Echo 
<br>;
Echo 
“this is after$Email”;
?>
فحص كود الـhtml
قد تستخدم كود جافا سكربت ويتم إخفاء الأخطاء وسط علامات التعليقات فعليك حينئذ فحص كود الـhtml لرؤية إن كان هناك بعض الأخطاء المخفية أم لا .
تجاهل الأخطاء
لنفترض أنك تعلم أن الدالة التي صنعتها بها أخطاء ولكنك تريد تجاهل هذه الأخطاء فكل ماعليك أن تقوم بوضع @ أمام الدالة لكي يتم تجاهل الخطأ عند حدوثه .
مثلاً نحن نعلم أن القسمة على الصفر من الأشياء الغير مقبولة في الـPHP وأنت صنعت دالة تقوم بالقسمة على صفر ولن يتم تنفيذها لأنها بالأصل خطأ ولكنك تريد أن يقوم PHP بتجاهلها فكل ما عليك أن تفعله هو وضع @ أمام الدالة .
مثال :
كود PHP:
<?
function amail ($y)
{
$y=$y/0;
return 
$y;
}
$s= @amail(44);
echo 
$s;
?>
التعامل مع العميل
كما رأينا في الدروس السابقة ، فإن الـPHP يوفر رقم عظيم من المميزات عن الـhtml لبناء مواقع الويب ، من الأشياء الأساسيه التي لم نتكلم عنها حتي الآن هي الموثوقية (أو الاستقرار ) وهو بالمعني الصحيح والصريح :

القابيلة على الاحتفاظ بالمعلومات بين صفحتين منفردتين أو مختلفيتن في المستعرض ...

بدون أي إضافات ، HTTP لايوفر أي ميكانيكيه للحفاظ على البيانات وجعلها مستقرة لمعالجة تتم بين صفحتين ، كل طلب لصفحة في الانترنت (request) ليس له أي علاقة بأي طلب آخر ... مثلاً عندما تتطلب موقع المطور العربي ومن ثم منتدي المطور العربي فان كل الطلبين ليس لهما علاقه ببعضهما ...

بمصطلح آخر يمكننا أن نقول أن الـHTTP فاقدة لحالتها (stateless) أي أنها لاتعرف أي أن أمر طلب الصفحة ينتهي عند انتهاء الطلب ، فهي عندما تقوم بنقل بيانات صفحة من السيرفر الى المستخدم فهي تعرف من هو المستخدم الذي يطلب البيانات وعلى أي نافذه سيتم نقل البيانات وعند انتهاء ذلك فان كل هذا الموضوع ينتهي وإذا عاد المستخدم فطلب صفحة أخري فإنها لاتعرف إن كان هو نفس المستخدم أو لا !


إن القدرة على الحفاظ على وجود البيانات ليست وسيلة أو ميزة او قوة مقتصرة على الـPHP فقط .

فلقد رأيت كيف استطعنا ارسال معلومات من صفحة إلى صفحة بدون خسران أي معلومات وذلك عن طريق الـhtml وبالرغم من ذلك فإن المستخدم عندما يقوم بإغلاق الصفحة عند استقبالها للبيانات فان ذلك يعني فقدانها للأبد ، عن طريق استخدام الـPHP يمكننا اخبار السيرفر بأن يقوم بارجاع البيانات بطريقة تمكننا من الحفاظ عليها ، مثلما سنري في هذا الدرس ، هناك ثلاث طرق لعمل ذلك ....

التميز الحقيقي في قوة الفهم للـPHP ، يتطلب منا مفهومية جيدة في كيفيه استعمال الـPHP في التفاعل مع المستخدم والمتصفح الذي يستخدمه لكي نتغلب على نقاط الضعف التي في الـ http .

هذا هو موضوعنا لهذا اليوم والذي سنتكلم فيه عن :

1 - الـHTTP والـ html ومحدودية قدراتهم ، وكيف يستطيع الـPHP التغلب علي القصور فيهم .
2 - الاحتفاظ بالمعلومات التي نريد أن نستخدمها بين طلب لصفحتين مختلفيتن .
3 - مكنكة الحفاظ على البيانات .
4 - الكعكات (cookies) وكيفية استخدامها .
5 - PHP4 والـ native session – المكنكة الداخلية للحفاظ على وجودية البيانات .
هذا الدرس مفيد بشكل ظاهري لمن هو جديد على انشاء مواقع متفاعلة متوسطة – كبيرة الحجم بواسطة الـPHP ..
إنه يحتوي على الكثير من بعض الأمثله التي تفيدك .

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

يختار السلعة في الصفحة الأولى وبعد ذلك يقوم برؤية معلومات السلعة في الصفحة الثانية والصفحة الثالثة يقوم فيها بتعبئة معلوماته للشراء أو غير ذلك إلى أن ينتهي من كافة المعلومات وبعد ذلك تنتج له في النهاية صفحة فيها معلوماته والسلعة التي قام باختيارها وفاتورة شراء !!

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

في الواقع هذا مايسمونه بالمحافظة على الجلسة (maintain session) وأقصد بذلك دخول المستخدم إلى صفحة وانتقاله من صفحة إلى صفحة مع المحافظة على معلوماته وغير ذلك من البيانات ، لكي نستطيع متابعته أولاً بأول .

في بروتوكول الـhtml والـhttp لانستطيع معرفة إذا ما كان الشخص عندما يطلب صفحة ما هو نفسه عندما يذهب إلى الصفحة الثانية إذ أن المستخدم عندما يطلب صفحة ما (request) من السيرفر فإن السيرفر يقوم بمعرفة من أي مكان بالعالم يتكلم هذا الشخص ويقوم بارسال استجابه إليه باعطاءه الصفحة التي كان يطلبها (response) ولكن بعد ذلك فإن السيرفر لا يعرف إذا كان هذا الشخص هو نفسه الذي يقوم بطلب الصفحه الثانية أو الثالثة في السيرفر .

هنا تأتي ميزة الـPHP وغيره من لغات برمجة الانترنت لصناعة ميكانيكية إبقاء تفاعل مستمر بين المستخدم والسيرفر عن طريق الـsession و الـcookie ، ولكي لا نعقد الموضوع دعونا نتكلم عن ذلك عملياً فذلك أفضل لفهم الموضوع من الثرثرة التي لا فائدة منها .
استخدام الحقول المخفيه
سنقوم الآن بإنشاء ثلاث صفحات ، الصفحة الأولى تطلب من المستخدم ادخال اسمه ، والصفحة الثانية تقوم بالترحيب به واعطاءه ثلاثة أسئلة ، والصفحة الثالثة تقوم باعطاءه النتيجة .
افتح محرر نصوص لديك واكتب الكود التالي :
كود:
<p dir="rtl" align="center">ادخل اسمك الكريم </p> <form method="POST" action="quiz2.php"> <hr> <input type="text" name="name" size="20"><br> <input type="submit" value="إرسال" ></p> </form>
احفظها باسم quiz.php
Click the image to open in full size.
قم بفتح محرر النصوص واكتب الكود التالي :
كود:
<html dir ="rtl"> <? If (isset($name)) { Echo "مرحبا بك يا" . $name ; Echo ' <br> <form method="POST" action="quiz3.php" dir="rtl"> <input type="hidden" name = "thename" value = "’.$name.’">" من هو أول الخلفاء الراشدين ؟ </p> <p dir="rtl"><input type="radio" value="أبوبكر الصديق" name="khlifa">أبوبكر الصديق .</p> <p dir="rtl"><input type="radio" value="عمر بن الخطاب" checked name="khlifa">عمر بن الخطاب</p> <p dir="rtl">من هو الفاروق ؟</p> <p dir="rtl"><input type="radio" name="faroq" value="عمر بن الخطاب">عمر بن الخطاب</p> <p dir="rtl"><input type="radio" name="faroq" value="سالم" checked>سالم بن عامر</p> <input type ="submit" value = "إرسال" dir="rtl"> </form>' ; } else { echo "غير مصرح لك بدخول هذه الصفحة" ; } ?>

احفظها باسم quiz2.php
Click the image to open in full size.
قم بفتح المفكرة واكتب الكود التالي :
كود PHP:
<?
If  ((isset($thename)) && (isset($khlifa)) && (isset($faroq)))
{
echo 
'لقد انتهت المسابقه يا '$thename ;
$range=0;
$co 0;
        if (
$khlifa =="أبوبكر الصديق") {
        
$range=$range+10;
        
$co $co +1;
        }
    if (
$faroq =="عمر بن الخطاب")
             {
             
$range=$range+10;
             
$co=$co+1;
             }
          if ( 
$range 10)
          {
          echo 
"ليس هناك أي إجابة صحيحة";
          }
          else
          {
          echo 
"<br>"."عدد الاسئلة التي أجبت عليها =" $co ;
          echo 
"<br>" "الدرجة التي حصلت عليها " $range ;
          }
}
?>

احفظها باسم quiz3.php
قم بوضع الملفات الثلاثه السابقه في مجلد السيرفر ثم قم بتشغيلها
Click the image to open in full size.
الشرح
قمت في هذا المثال بمحاولة صنع مكنكة تواصل للبيانات ، بمعني أنني أحاول أن أقوم بالاختفاظ بالبيانات عبر الثلاث صفحات بشكل متواصل ، لاحظ أنني كنت اختبر في quiz2 و quiz3 باختبار المتغيرات قبل طباعة أي شي فقد يقوم المستخدم مثلاً بالاحتفاظ بالصفحة التي وصل إليها في المفضلة ثم يقوم باكمال المسابقة في وقت آخر ولكني لا اريد ذلك بل أريد ان أجعل وقتها محدوداً (طبعاً هذا الكلام سيحصل إذا كانت المسابقة طويلة) لذلك فإنني في كل عند الانتقال من صفحة إلى صفحة اقوم باختبار إن كانت جميع هذه القيم موجودة ولاحظ أنني كنت اجتفظ دوماً بقيم المتغيرات في متغيرات جديدة في حقول مخفية وكلما كان عدد المعلومات أكبر في كل مره كان عدد الحقول المخفية أكثر ، إن لهذه الطريقة أيضا مشاكلها فقد يفتح المستخدم كود الـhtml ويقوم بتفحص كيفية ملاحقته عبر المسابقة وقد يصنع هو الكود في وقت لاحق لكي يستطيع اكمال المسابقة بهذه الخدعة الماكرة ... لذلك يفضل أن لا تقوم بذلك وتقوم بجعل المسألة السابقة اكثر تعقيداً باستخدام الـregular expression بمحاولة تلغيم البيانات بواسطته ومن ثم فك هذا التلغيم في الصفحات التي تصل اليها البيانات .
ارسال بيانات بواسطة query strings
نستطيع ارسال بيانات بسيطة بواسطة الاستعلامات التي نقوم بإضافتها الى اسم الصفحة في الأعلى متبوعة بـ(؟) علامة استفهام ثم اسم متغير وقيمته وإذا كان هناك أكثر من متغير يتم الربط بينهم بعلامة & وراجع درس النماذج لمزيد من المعلومات .

قم بعمل صفحة وسمها ask.php وقم بكتابة الكود التالى فيها :
كود PHP:
<?
If (isset($ask)) {
 If (
$ask == login) {
  Echo 
"تم تسجيل الدخول إلى الصفحة";
 }
}
if (!isset(
$ask)) {
echo 
"لم يتم تسجيل الدخول إلى الصفحة" <br>;
Echo 
"<A HREF=$PHP_SELF?ask=login>اضغط هنا ليتم تسجيل دخولك </a><br>";
}
?>
Click the image to open in full size.
قم بتجربة هذا المثال على موقع يدعم PHP على نظام تشغيل لينوكس إذا لم يعمل بشكل جيد على الوندوز

لاحظ أننا في أول الولوج الى الصفحة لم نستخدم أي استعلامات وعند الضغط على الرابط قام الرابط بارسال قيمه المتغير الذي يقوم الPHP باختبارها فاذا وجد انه قد تم ارسالها (بواسطه الرابط الذي تم الضغط عليه) قام بطباعة (تم تسجيل الدخول) واذا لم يجدها قام بطباعة (لم يتم تسجيل الدخول ) بالإضافة إلى طباعة الرابط الذي يحتوي على المتغير في طياته

الكلمات الدليلية: لا يوجد
أرسل الصفحة لصديق

تقييم الدرس:



 

درس - دروس - شرح - دورة - تعليميه - درس

ne nw
arabic movies comfrog e65 hamachi اغانى اطفال اغاني اطفال الدجاج الدكتور محمد الهاشمي العناية بالشعر الوطنية برامج نوكيا n73 برنامج لفتح المواقع المحجوبة برنامج نت قط تم الدعس تهنئة رمضان ثيمات ثيمات 3250 ثيمات e65 ثيمات n70 ثيمات n73 ثيمات سكس ثيمات نوكيا جنس بنات جنس صور حلويات حلويات عالم حواء خداع بصري دجاج دعاء رمضان دعاء لرمضان رسائل موبايل جامدة رسائل موبايل جامده سفن سكس سكس بنات سكس صور سكس عربى سكس عربي شمس المعارف شمس المعارف الكبرى شموع صور اسماك صور اطفال صور براويز صور بنات صور بنات جنس صور بنات سكس صور جميلة صور جميله صور جنس صور ساعات صور ساكس صور سفن صور سكس صور سكس بنات صور سكس عربى صور سكس عربي صور سكس عربية صور سكس عربيه صور شموع صور ورد صور ورود صور ورود وقلوب عالم حواء فلسفة فيديو شات قصص مضحكة قصص مضحكه قوقل ارث كتاب شمس المعارف كتاب شمس المعارف الكبرى كلية التجارة جامعة الاسكندرية لعبة القرية مقاطع بلوتوث مضحكة مقاطع رقص مقالب صوتيه نت قط نكت نوكيا n73 ويفات
se sw


جديد على الموقع؟ تريد مساعدة؟

الساعة الآن 10:16 AM.


شبكة الوطنية الثقافية
تنويرية - تعليمية - ترفيهية - حوارية - اسلامية - عربية
جميع الحقوق محفوظة © 2005-2008


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34