Docstoc

09

Document Sample
09 Powered By Docstoc
					                                 ‫التعامل مع العميل‬
‫،‬     ‫كما رأينا في الدروس السابقة ، فإن الـ‪ PHP‬يوفر رقم عظيم من المميزات عـن الــ‪ html‬لبنـا مواقـا الويـ‬
    ‫من األشيا األساسيه التي لم نتكلم عنها حتي اآلن هي الموثوقية (أو االستقرار ) وهـو بـالميني اليـ ي‬
                                                                                              ‫واليري :‬

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

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

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


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

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

‫التميز ال قيقي في قوة الفهم للــ‪ ، PHP‬يتطلـ منـا مفهوميـة يـدة فـي كيفيـه اسـتيمال الــ‪ PHP‬فـي‬
     ‫التفاعل ما المستخدم والمتيف الذي يستخدمه لكي نتغل على نقاط الضيف التي في الـ‪. http‬‬

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

                ‫- الـ‪ HTTP‬والـ ‪ html‬وم دودية قدراتهم ، وكيف يستطيا الـ‪ PHP‬التغل علي القيور فيهم .‬      ‫1‬
                          ‫- االحتفاظ بالميلومات التي نريد أن نستخدمها بين طل ليف تين مختلفيتن .‬        ‫2‬
                                                                       ‫- مكنكة ال فاظ على البيانات .‬   ‫3‬
                                                            ‫- الكيكات (‪ )cookies‬وكيفية استخدامها .‬     ‫4‬
                          ‫- 4‪ PHP‬والـ ‪ – native session‬المكنكة الداخلية لل فاظ على و ودية البيانات .‬   ‫5‬

‫هذا الدرس مفيد بشـكل اـاهري لمـن هـو ديـد علـى انشـا مواقـا متفاعلـة متوسـطة – كبيـرة ال جـم‬
                                                                                ‫بواسطة الـ‪.. PHP‬‬
                                                ‫إنه ي توي على الكثير من بيض األمثله التي تفيدك .‬

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

‫يختار السلية في اليف ة األولى وبيد للـف يقـوم بر يـة ميلومـات السـلية فـي اليـف ة الثانيـة واليـف ة‬
‫الثالثة يقوم فيها بتيبئة ميلوماته للشرا أو غير للف إلى أن ينتهي من كافة الميلومات وبيـد للـف تنـته لـه‬
                              ‫في النهاية صف ة فيها ميلوماته والسلية التي قام باختيارها وفاتورة شرا !!‬

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

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

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

         ‫ـ‬     ‫ـ‬       ‫ـ‬
‫هن ـا ت ـأتي مي ـزة ال ــ‪ PHP‬وغيــره م ـن لغ ـات برمج ـة االنترن ـت ليــناعة ميكانيكي ـة إبق ـا تفاع ـل مس ـتمر بــين‬
                                                    ‫ـ‬                  ‫ـ‬     ‫ـ‬                      ‫ـ‬            ‫ـ‬
‫المستخدم والسيرفر عن طريق الــ‪ session‬و الــ‪ ، cookie‬ولكـي ال نيقـد الموضـوع دعونـا نـتكلم عـن للـف‬
                                             ‫عمليً فذلف أفضل لفهم الموضوع من الثرثرة التي ال فا دة منها .‬     ‫ا‬

                                                                          ‫استخدام الحقول المخفيه‬
  ‫سنقوم اآلن بإنشا ثالث صف ات ، اليف ة األولى تطل من المستخدم ادخال اسمه ، واليف ة الثانية‬
                         ‫تقوم بالترحي به واعطا ه ثالثة أسئلة ، واليف ة الثالثة تقوم باعطا ه النتيجة .‬

                                            ‫الكود التالي :‬                            ‫م رر نيوص لديف واكت‬         ‫افت‬
‫>‪ </p‬ادخل امسك الكرمي>"‪<p dir="rtl" align="center‬‬
‫>"‪<form method="POST" action="quiz2.php‬‬
‫>‪<hr‬‬
‫>‪<input type="text" name="name" size="20"><br‬‬
‫>‪" ></p‬إرسال"=‪<input type="submit" value‬‬
‫>‪</form‬‬
                                                                                          ‫احفظها باسم ‪quiz.php‬‬

                                           ‫م رر النيوص واكت الكود التالي :‬                                   ‫قم بفت‬
‫>"‪<html dir ="rtl‬‬
‫?<‬
‫{ ))‪If (isset($name‬‬
‫; ‪" . $name‬مرحبا بك يا" ‪Echo‬‬
 ‫' ‪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‬الصديق‬
   ‫‪" checked‬عمر بن اخلطاب"=‪<p dir="rtl"><input type="radio" value‬‬
‫عمر>"‪name="khlifa‬‬
   ‫>‪</p‬بن اخلطاب‬
   ‫>‪</p‬من هو الفاروق ؟>"‪<p dir="rtl‬‬
   ‫عمر بن "=‪<p dir="rtl"><input type="radio" name="faroq" value‬‬
‫اخلطاب">عمر بن‬
   ‫>‪</p‬اخلطاب‬
   ‫"سامل"=‪<p dir="rtl"><input type="radio" name="faroq" value‬‬
‫سامل بن>‪checked‬‬
   ‫>‪</p‬عامر‬
‫>"‪" dir="rtl‬إرسال" = ‪<input type ="submit" value‬‬
‫; '>‪</form‬‬
‫}‬
‫‪else‬‬
‫{‬
‫; "غري مصرح لك بدخول هذه الصفحة" ‪echo‬‬
‫}‬
‫>?‬
                                                        ‫احفظها باسم ‪quiz2.php‬‬

                                                      ‫قم بفت المفكرة واكت الكود التالي :‬
‫?<‬
‫)))‪If ((isset($thename)) && (isset($khlifa)) && (isset($faroq‬‬
‫{‬
‫; ‪ '. $thename‬لقد انتهت املسابقه يا' ‪echo‬‬
‫;0=‪$range‬‬
‫;0 = ‪$co‬‬
         ‫{ )"أبوبكر الصديق"== ‪if ($khlifa‬‬
         ‫;01+‪$range=$range‬‬
         ‫;1+ ‪$co = $co‬‬
         ‫}‬
         ‫)"عمر بن اخلطاب"== ‪if ($faroq‬‬
              ‫{‬
              ‫;01+‪$range=$range‬‬
              ‫;1+‪$co=$co‬‬
              ‫}‬
           ‫)01 < ‪if ( $range‬‬
           ‫{‬
           ‫;"ليس هناك أي إجابة صحيحة" ‪echo‬‬
           ‫}‬
           ‫‪else‬‬
           ‫{‬
           ‫; ‪ =" . $co‬عدد االسئلة اليت أجبت عليها".">‪echo "<br‬‬
           ‫; ‪ " . $range‬الدرجة اليت حصلت عليها" . ">‪echo "<br‬‬
           ‫}‬
‫}‬
‫>?‬
                           ‫قم بوضا الملفات الثالثه السابقه في مجلد السيرفر ثم قم بتشغيلها‬

                                                                                          ‫الشرح‬
‫قمت في هذا المثال بم اولة صنا مكنكة تواصل للبيانات ، بميني أنني أحاول أن أقـوم باالختفـاظ بالبيانـات‬
‫عبر الثالث صف ات بشـكل متواصـل ، الحـ أننـي كنـت اختبـر فـي 2‪ quiz‬و 3‪ quiz‬باختبـار المتغيـرات قبـل‬
                                                                ‫ال‬
‫طباعة أي شي فقد يقوم المستخدم مث ً باالحتفاظ باليف ة التي وصل إليها في المفضلة ثم يقوم باكمال‬
                            ‫ا‬     ‫ا‬
‫المسابقة في وقت آخر ولكني ال اريد للف بل أريد ان أ يل وقتهـا م ـدودً (طبيـً هـذا الكـالم سي يـل إلا‬
‫كانت المسابقة طويلة) لذلف فإنني في كل عند االنتقال من صف ة إلى صف ة اقوم باختبار إن كانت ميا‬
                                                          ‫ا‬
‫هذه القيم مو ودة والح أنني كنت ا تف دومً بقيم المتغيـرات فـي متغيـرات ديـدة فـي حقـول مخفيـة‬
‫وكلما كان عدد الميلومات أكبر في كل مره كان عدد ال قول المخفية أكثر ، إن لهذه الطريقة أيضا مشـاكلها‬
‫فقد يفت المستخدم كود الـ‪ html‬ويقوم بتف ص كيفية مالحقته عبر المسابقة وقد يينا هو الكود في وقت‬
‫الحق لكي يستطيا اكمال المسابقة بهذه الخدعة المـاكرة ... لـذلف يفضـل أن ال تقـوم بـذلف وتقـوم بجيـل‬
                                                                            ‫ا‬
‫المسألة السابقة اكثر تيقيدً باستخدام الـ‪ regular expression‬بم اولة تلغـيم البيانـات بواسـطته ومـن ثـم‬
                                                  ‫فف هذا التلغيم في اليف ات التي تيل اليها البيانات .‬

                                                 ‫ارسال بيانات بواسطة ‪query strings‬‬
‫نستطيا ارسال بيانات بسيطة بواسطة االستيالمات التي نقوم بإضافتها الـى اسـم اليـف ة فـي األعلـى‬
‫متبوعة بـ(؟) عالمة استفهام ثم اسم متغير وقيمته وإلا كان هناك أكثر من متغير يتم الربط بينهم بيالمـة &‬
                                                               ‫ورا ا درس النمال لمزيد من الميلومات .‬

                                          ‫قم بيمل صف ة وسمها ‪ ask.php‬وقم بكتابة الكود التالى فيها :‬

‫?<‬
‫{ ))‪If (isset($ask‬‬
  ‫{ )‪If ($ask == login‬‬
    ‫;"مت تسجيل الدخول إىل الصفحة" ‪Echo‬‬
  ‫}‬
‫}‬
‫{ ))‪if (!isset($ask‬‬
‫;”>‪" . “<br‬مل يتم تسجيل الدخول إىل الصفحة" ‪echo‬‬
‫;">‪ </a><br‬اضغط هنا ليتم تسجيل دخولك>‪Echo "<A HREF=$PHP_SELF?ask=login‬‬
‫}‬
‫>?‬
‫قم بتجربة هذا المثال على موقا يدعم ‪ PHP‬على نظام تشغيل لينـوكس إلا لـم ييمـل بشـكل يـد علـى‬
                                                                                    ‫الوندوز‬

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

                                                           ‫الكوكيز أو الكعكعات (‪(cookies‬‬
                                                                                                  ‫ا‬
‫إلً ماهي الكوكيز ، الكوكيز هي عبارة عن بيض الميلومات أو القطا اليغيرة من البيانات يـتم االحتفـاظ بهـا‬
‫في هاز اليميل لكي يتم االحتفاظ بها عند الزيارات المختلفة للمستخدم (اليميل) ، أنت ال تقوم باالحتفاظ‬
                                               ‫فيها بقيم ضخمة لكنف تستفيد منها في أشيا أخري مثل :‬

         ‫ال‬
‫1 - يل لكل مستخدم األلوان الخاصة التي يري فيهـا صـف تف ( أي أن تجيـل للمسـتخدم مـث ً إعـدادات‬
                                                                        ‫األلوان الخاصة لر ية موقيف ) .‬
‫2 - يل مفتاح للمستخدم لكي يستطيا به الـت كم فـي بياناتـه الخاصـة عنـد زياراتـه لموقيـف فـي مـرات‬
                                                                                               ‫اخري.‬

‫الكوكيز مفيد لالستخدام في األشيا البسـيطة والغيـر خطيـرة ، لكنـه اآلن يسـتخدم بشـكل سـ، ، مثـل‬
                                                                                           ‫ال‬
‫استخدامه مث ً في ميرفة ميلومات عن المستخدم بدون علم منه ، أو تخـزين كميـات كبيـرة مـن البيانـات‬
                                                ‫فيه والتي من األ در أن يتم حفظها في ملف على السيرفر .‬
                     ‫ـ‬                   ‫ـ‬                           ‫ـ‬            ‫ـ‬                  ‫ـ‬
‫ويك ـون اســتخدامه مفي ـدا عنــدما تض ـمن أن ميــا زوار موقيــف تس ـم متيــف اتهم ب ـالكوكيز (مثــل طلب ـة‬
                                                                           ‫المدارس أو شبكات انترانت ) .‬
                        ‫عندما يكون فقط ألشيا بسيطة الضرر منها عند عدم السماح بالكوكيز بجهاز اليميل .‬
                                                                                ‫بدايتك مع الكيوكيز‬
                                               ‫قبل أن نبدأ علينا ميرفة بيض األساسيات عن الكيوكيز‬
‫الكوكيز عبارة عن قطية صغيرة من البيانات التي تستخدم لتخزين اسـم متغيـر وقيمتـه مـا ميلومـات حـول‬
                                                              ‫الموقا التي أتت منه وتاريخ انتها ها .‬

‫الكوكيز عباره عن تقنية للتخزين من هة اليميل (‪ )client-side storage‬تتخزن في ملفات في هاز اليميل‬

                                      ‫يتم اليبور إلى هذه الكوكيز ومس ها من المكان التي ارسلت منه .‬

‫عندما يطل المستيرض صف ة من السيرفر وهذه اليف ة تقوم بتتخزين كوكيز فـإن السـيرفر يقـوم باخبـار‬
                                                  ‫المستيرض بأنه سيقوم بوضا كوكيز لالستيمال الحقا .‬

     ‫ا‬
‫اليف ة في مرة آخري يقوم المسـتيرض بارسـال البيانـات التـي تـم إنشـا ها سـابقً عنـد‬      ‫عندما يتم طل‬
                                                                                      ‫طل اليف ه .‬
            ‫ا‬
‫يتم انتها مده الكوكيز بإنتها وقت صالحيتها االم ـدد مـن قبـل السـيرفر ويـتم مسـ ها فوريـً عنـد اغـالق‬
                                                                   ‫ا‬
                                                      ‫اليف ة إلا كان وقت صالحيتها صفرً من الثواني .‬

‫بإختيار عندما ييطي السيرفر الكوكيز للمستيرض فإنه يقول لف هذا شي اتذكرك به في وقـت الحـق (قـد‬
                  ‫يكون هذا الوقت من ضغط رابط آخر في اليف ة التى زرتها حتي بيد أسبوع أو أكثر ) .‬

  ‫يقوم السيرفر بإرسال الكوكيز عبر الـ‪ HTTP Headers‬الذي يتم إرساله قبل أي مخر من مخر ات الـ‪html‬‬
‫والمستيرض أيضا يقوم بإرسال الكوكيز عبر الـ‪ HTTP Header‬باإلضافه إلى أن المستيرض يتيرف على مـن‬
                                                      ‫ال‬
‫سيقوم بإرسال الكوكيز فلو كانت الكوكيز مث ً مرسلة من قبل الموقا ‪ www.php.net‬فإنه لن يقوم بإرسالها‬
                                                               ‫إلى موقا ‪. www.phpbuilder.com‬‬

‫باستطاعتف عند إنشا الكوكيز ت ديد مسار يتم ارسال الكوكيز لكي يتم اقتيار عملية اليبـور إلـى الكـوكيز‬
                                                                                      ‫إلى أماكن ميينة .‬
                      ‫قبل أن نقوم بوضا كود بسيط سنقوم اآلن بتيريف كيفية تخزين الكوكيز وكيفية قرا تها :‬
‫كون الـ‪ PHP‬لغة حديثه ليمل سكربتات وي فإنهـا تـأتي بـدعم كامـل للكـوكيز بواسـطة الدالـة )(‪setcookie‬‬
                                 ‫باستثنا أنف عند استيمالها يج استيمالها قبل طباعة أي مخر ات ‪. html‬‬

      ‫:‬               ‫ا‬
          ‫تاخذ الدالة )(‪ setcookie‬ثالث ميامالت ، الثالثة األولى هي األهم واألمثل استخدامً وهي بالترتي‬

                                                           ‫‪ ‬قيمة حرفية يتم تخزينها كاسم للمتغير‬
                                                     ‫‪ ‬قيمة حرفية يتم تخزينها كقيمة لذلف المتغير‬
                                    ‫‪ Unix timestamp ‬الذي يقوم باإلشارة إلى تاريخ إنتها الكوكيز‬
‫‪ Unix timestamp‬عبارة عن رقـم صـ ي ال ي تـوي علـى فواصـل عشـرية يقـوم ب سـاا الثـواني مـن‬
                                                        ‫ال‬
‫منتيف ليلة 0791/10/10 . وإلا كنا نريد مث ً أن نقوم بمس الكوكيز بيد ساعة من تخزينـه فإننـا نقـوم‬
‫باستيمال الدالة )(‪ time‬التي تقوم ب ساا الـ‪ timestamp‬ثم نضيف عليه الوقت الذي نريده وفي حالتنا‬
  ‫الساعه تساوي 0033 ثانية وعلى للف سنقوم بإضـافة نـاته الدالـة ‪ time‬علـى 0033 لكـي يـتم مسـ‬
                                                                          ‫الكوكيز بيد ساعة واحدة !‬

‫الثالث اليوامل األخري التي يتم ستخدامها أ يضا فـي الكـوكيز ولكنهـا نـادرة االسـتخدام ولـن نناقشـها فـي‬
                                                                                    ‫موضوعنا هذا هي :‬
‫‪ ‬المسار الذي يتم إرسال الكوكيز إليه فلو تم فت نفس اليف ة مـن نفـس الموقـا ولكـن مـن مسـار‬
   ‫ـ‬    ‫ـ‬       ‫ـ‬         ‫ـ‬
‫اخـر ( مـث ً المسـار كـان ‪ pag\url\one‬وتـم تغييـره إلـى ‪ page\url\two‬فـان المسـتيرض لـن يقـوم‬
                                            ‫ـ‬    ‫ـ‬     ‫ـ‬                 ‫ـ ـ‬         ‫ـ ال‬   ‫ـ‬
               ‫بارسال البيانات إلي اليف ة ألنه تم ت ديد المسار الذي سيتم ارسال الكوكيز اليه )‬
‫‪ ‬الدومين الذي سيتم إرسال البيانات إليه وهو مفيد في حالة ما إلا كان هناك أكثـر مـن دومـين تريـد‬
                                                                             ‫ارسال الكوكيز اليه‬
   ‫‪ ‬متغير من نوع ‪ integer‬يتم اإلشارة إليه بـ ‪ secure‬يتم في حالة استخدام عمليات تشفير بالـ ‪SSL‬‬
                                                                         ‫ا‬
‫اليبور الى الكوكيز بسيط دً فالمتغير الذي يتم ارساله يتم تخزينه ضمن المتغيرات اليامة (‪ )global‬وعند ذ‬
             ‫فإنه لو كان لدينا كوكيز اسمه ‪ ahmed‬فإن قيمته توضا مباشرة في متغير اسمه ‪!! $ahmed‬‬

‫يمكننا مس الكوكيز بأكثر من طريقة ، بـالطبا فـإن المسـتخدم يسـتطيا مسـ الكـوكيز وتغييـر م توياتهـا‬
   ‫بنفسه ولكن في حالة ما إلا أردنا أن نجيل السيرفر يقوم بمس ها فإننا نستخدم إحدي هاتين الطريقتين‬

                                                                  ‫إما أن نقوم بإخبار السيرفر بوقت قديم :‬
‫?<‬
‫;)999-)(‪Set cookie (“ahmed” , “0”, time‬‬
‫>?‬

                                                             ‫الكوكيز بكتابة اسمه فقط :‬    ‫وإما القيام بمس‬
‫?<‬
‫;)”‪Setcookie (“ahmed‬‬
‫>?‬

                                                                            ‫مثال لتخزين وقراءة كوكيز‬
                                                                    ‫قم بفت المفكرة واكت الكود التالي :‬
‫?<‬
‫;)0063+)(‪If ($thename) setcookie ("rname", $thename, time‬‬
‫>"‪Echo '<form method="post‬‬
‫>"‪<input type ="text" name="thename‬‬
‫>"تسجيل"=‪<input type="submit" value‬‬
‫;'>‪</form‬‬
‫;">‪". " ". $thename ."<br><br‬قيمه املتغري الذي لديك" ‪echo‬‬
‫; ‪ =" . $rname‬قيمة الكوكيز" ‪echo‬‬
‫>?‬

                                                                                                   ‫الشرح‬
                                                                            ‫عند تشغيل اليف ه الول مره‬
‫عند تشغيلف لليف ة سيتم اختبار ما إلا كان هناك متغير باالسم ‪ $thename‬فإلا تم ال يول عليه فسيتم‬
   ‫وضا قيمته في كوكيز باسم (‪( )rname‬وطبيا لن يتم ال يول عليه في أول مرة ألننا لم نقم بارسال أي‬
                             ‫بيناات بيد) وبيد للف طباعة نمول من مربا نص واحد وزر إلرسال الميلومات .‬
    ‫ويتم طباعة قيمة المتغير إلا كان هناك أي متغير تم ارساله باسم ‪ $thename‬ويتم ف ص قيمة الكوكيز‬
                                                    ‫‪ $rname‬وطباعتها وبالطبا ال يو د حتي اآلن أي كوكيز .‬
                                                                                           ‫المرحلة الثانية‬
                                                 ‫ال‬
  ‫اآلن قم بكتابة أي شي في مربا النص (اكت اسمف مث ً) ثم قم بضغط زر االرسال سيتم ارسال البيانات‬
 ‫الى نفس اليف ة ولكن هذه المرة سيتم تسجيل قيمة المتغير الذي ي مل البيانات في الكوكيز (‪)rname‬‬
  ‫وبيد للف سيتم طباعة النمول بشكل عادي وسيتم طباعة قيمة المتغير ‪ $thename‬ولكن لن يتم طباعة‬
       ‫قيمة المتغير ‪ $rname‬ألننا فقط قمنا بتسجيله ولم يتم ارساله عند طل اليف ة (ألننا نيرف أنه يتم‬
                  ‫ا‬
      ‫ارسال الكوكيز عند طل اليف ة وهذه المرة عندما طلبنا اليف ة لم يكن الكوكيز مو ودً باألصل فلم‬
                                                             ‫ا‬
                                        ‫يرسله السيرفر وقمنا ن ن بتسجيله استيدادً للمرحلة القادمة ) .‬
                                                                                           ‫المرحلة الثالثة‬
                                                                     ‫ا‬
        ‫في هذه المرة سيكون الكوكيز مو ودً فسيتم ارساله على هيئة متغير ويتم ارساله ومن ثم طباعة‬
                                    ‫النمول وقيمه المتغير ‪ $thename‬وقيمة الكوكيز الذي يو د بجهازك !‬

				
DOCUMENT INFO
Shared By:
Stats:
views:5
posted:2/3/2013
language:
pages:6
Description: book prigram and adsens and borsah