منتديات القناص ابوهاجوس لهكرالنيمبوز وبرامج الاختراق
مرحبا بكم في منتدىات القناص ابوهاجوس لهكر النيمبوز وبرامج الاختراق
aboohagos@nimbuzz.com
منتديات القناص ابوهاجوس لهكرالنيمبوز وبرامج الاختراق
مرحبا بكم في منتدىات القناص ابوهاجوس لهكر النيمبوز وبرامج الاختراق
aboohagos@nimbuzz.com
منتديات القناص ابوهاجوس لهكرالنيمبوز وبرامج الاختراق
هل تريد التفاعل مع هذه المساهمة؟ كل ما عليك هو إنشاء حساب جديد ببضع خطوات أو تسجيل الدخول للمتابعة.

منتديات القناص ابوهاجوس لهكرالنيمبوز وبرامج الاختراق

(aboohagos@nimbuzz.com)على من سجل ولم يستطيع الدخول ان ينتظر لين اقوم بتنشيط حسابه(aboohagos@nimbuzz.com)
 
الرئيسيةأحدث الصورالتسجيلدخول
بحـث
 
 

نتائج البحث
 
Rechercher بحث متقدم
سحابة الكلمات الدلالية
code source Facebook mini تخمين
المواضيع الأخيرة
» مشروع بوت يحتوي على فيسات النيم الاصليه Source code bot aboohagos@nimbuzz.com
 الدرس التاسع في لغة php  Emptyالخميس فبراير 11, 2021 9:49 am من طرف ابوهاجوس

» مشروع بان بوت مع الرسايل التلقايى+التحدث مع مضافينك لغة Visual Basic 2010
 الدرس التاسع في لغة php  Emptyالخميس فبراير 11, 2021 9:48 am من طرف ابوهاجوس

» Compression(Visual Basic 2008)
 الدرس التاسع في لغة php  Emptyالخميس فبراير 11, 2021 9:47 am من طرف ابوهاجوس

» مشروع بان بوت ترحيب
 الدرس التاسع في لغة php  Emptyالخميس فبراير 11, 2021 9:46 am من طرف ابوهاجوس

» مشروع مخمن الباس بلغة Visual Basic 2010
 الدرس التاسع في لغة php  Emptyالأحد نوفمبر 08, 2020 7:59 am من طرف kimo.herolove1

» مشروع فلود اضافات ب نكات بلغة Visual C# 2010
 الدرس التاسع في لغة php  Emptyالأحد نوفمبر 08, 2020 7:03 am من طرف kimo.herolove1

» Reflector لفك البرامج المصنوعه بالفجول بيسك دوت نت
 الدرس التاسع في لغة php  Emptyالأحد نوفمبر 08, 2020 6:54 am من طرف kimo.herolove1

» Source Code DrawingAttributes (abohagooss)( Visual Basic 2008)
 الدرس التاسع في لغة php  Emptyالأربعاء سبتمبر 02, 2020 2:28 pm من طرف kimo.herolove1

» مشروع التحكم في الديسك توب
 الدرس التاسع في لغة php  Emptyالأربعاء سبتمبر 02, 2020 2:27 pm من طرف kimo.herolove1

نوفمبر 2024
الأحدالإثنينالثلاثاءالأربعاءالخميسالجمعةالسبت
     12
3456789
10111213141516
17181920212223
24252627282930
اليوميةاليومية
كل ماتطلبوه موجود
كل جديد وحصريا موجود لدينا
اي استفسار ضيف اميلاتي
aboohagos@nimbuzz.com
aboohagos@nimbuzz.com
أفضل 10 أعضاء في هذا المنتدى
Admin
 الدرس التاسع في لغة php  I_vote_rcap الدرس التاسع في لغة php  Empty الدرس التاسع في لغة php  Empty 
ابوهاجوس
 الدرس التاسع في لغة php  I_vote_rcap الدرس التاسع في لغة php  Empty الدرس التاسع في لغة php  Empty 
هكراووي
 الدرس التاسع في لغة php  I_vote_rcap الدرس التاسع في لغة php  Empty الدرس التاسع في لغة php  Empty 
صدام الشرعبي
 الدرس التاسع في لغة php  I_vote_rcap الدرس التاسع في لغة php  Empty الدرس التاسع في لغة php  Empty 
kimo.herolove
 الدرس التاسع في لغة php  I_vote_rcap الدرس التاسع في لغة php  Empty الدرس التاسع في لغة php  Empty 
majed5160
 الدرس التاسع في لغة php  I_vote_rcap الدرس التاسع في لغة php  Empty الدرس التاسع في لغة php  Empty 
jemlove
 الدرس التاسع في لغة php  I_vote_rcap الدرس التاسع في لغة php  Empty الدرس التاسع في لغة php  Empty 
brainiac123
 الدرس التاسع في لغة php  I_vote_rcap الدرس التاسع في لغة php  Empty الدرس التاسع في لغة php  Empty 
zezozezoalhlo
 الدرس التاسع في لغة php  I_vote_rcap الدرس التاسع في لغة php  Empty الدرس التاسع في لغة php  Empty 
kimo.herolove1
 الدرس التاسع في لغة php  I_vote_rcap الدرس التاسع في لغة php  Empty الدرس التاسع في لغة php  Empty 
أفضل 10 فاتحي مواضيع
Admin
 الدرس التاسع في لغة php  I_vote_rcap الدرس التاسع في لغة php  Empty الدرس التاسع في لغة php  Empty 
ابوهاجوس
 الدرس التاسع في لغة php  I_vote_rcap الدرس التاسع في لغة php  Empty الدرس التاسع في لغة php  Empty 
هكراووي
 الدرس التاسع في لغة php  I_vote_rcap الدرس التاسع في لغة php  Empty الدرس التاسع في لغة php  Empty 
صدام الشرعبي
 الدرس التاسع في لغة php  I_vote_rcap الدرس التاسع في لغة php  Empty الدرس التاسع في لغة php  Empty 
المتنبي
 الدرس التاسع في لغة php  I_vote_rcap الدرس التاسع في لغة php  Empty الدرس التاسع في لغة php  Empty 
عآزف$اوتار$الحزن
 الدرس التاسع في لغة php  I_vote_rcap الدرس التاسع في لغة php  Empty الدرس التاسع في لغة php  Empty 
ghazi
 الدرس التاسع في لغة php  I_vote_rcap الدرس التاسع في لغة php  Empty الدرس التاسع في لغة php  Empty 
حسينم
 الدرس التاسع في لغة php  I_vote_rcap الدرس التاسع في لغة php  Empty الدرس التاسع في لغة php  Empty 
وليدالعراقي
 الدرس التاسع في لغة php  I_vote_rcap الدرس التاسع في لغة php  Empty الدرس التاسع في لغة php  Empty 
alzeer-libya
 الدرس التاسع في لغة php  I_vote_rcap الدرس التاسع في لغة php  Empty الدرس التاسع في لغة php  Empty 
ازرار التصفُّح
 البوابة
 الرئيسية
 قائمة الاعضاء
 البيانات الشخصية
 س .و .ج
 بحـث
المواضيع الأكثر نشاطاً
الاصدار الرابع من برنامج التخمين بتاريخ11-5-2013
مشروع مخمن الباس بلغة Visual Basic 2010
Source Code Flood Room_aboohagos@nimbuzz.com.rar تم التعديل على مشروع فلود روم يقوم بفصل المستخدمين لغة (Visual Basic 2008)
تم تحديث صانع النكات واضافة قسم لتغير كلمة المرور بتاريخ31-5-2013
مشروع صانع نكات الفلود Source Code-ID Maker -
مشروع بان بوت مع الرسايل التلقايى+التحدث مع مضافينك لغة Visual Basic 2010
Source Code Bot contest for Roman-aboohagos@nimbuzz.com مشروع بوت ابوهاجوس المتكامل
مشروع تخمين النكات شغال Source Code Cracker_ abohagooss@nimbuzz.com
استرجاع النكات المسروقة+والمحروقه بتاريخ5-6-2013
اخطر برنامج فلود في تاريخ النيمبوز فلود روم+خاص+اضافات بتاريخ26-4-2013

 

  الدرس التاسع في لغة php

اذهب الى الأسفل 
كاتب الموضوعرسالة
Admin
Admin
Admin


عدد المساهمات : 2035
نقاط : 5633
السٌّمعَة : 11
تاريخ التسجيل : 16/05/2012
العمر : 38

 الدرس التاسع في لغة php  Empty
مُساهمةموضوع: الدرس التاسع في لغة php     الدرس التاسع في لغة php  Emptyالسبت يونيو 30, 2012 1:21 pm


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




كما رأينا في الدروس السابقة ، فإن الـ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 ، ولكي لا نعقد الموضوع دعونا نتكلم عن ذلك عملياً فذلك أفضل لفهم الموضوع من الثرثرة التي لا فائدة منها .



استخدام الحقول المخفيه




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




افتح محرر نصوص لديك واكتب الكود التالي :



كود HTML:
<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





قم بفتح محرر النصوص واكتب الكود التالي :

كود PHP:

<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



قم بفتح المفكرة واكتب الكود التالي :


كود 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 ;
}
}
?>

قم بوضع الملفات الثلاثه السابقه في مجلد السيرفر ثم قم بتشغيلها



الشرح




قمت في هذا المثال بمحاولة صنع مكنكة تواصل للبيانات ، بمعني أنني أحاول أن أقوم بالاختفاظ بالبيانات عبر الثلاث صفحات بشكل متواصل ، لاحظ أنني كنت اختبر في 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>";
}
?>

قم بتجربة هذا المثال على موقع يدعم PHP على نظام تشغيل لينوكس إذا لم يعمل بشكل جيد على الوندوز



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




الكوكيز أو الكعكعات ((cookies



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



1 - جعل لكل مستخدم الألوان الخاصة التي يري فيها صفحتك ( أي أن تجعل للمستخدم مثلاً إعدادات الألوان الخاصة لرؤية موقعك ) .

2 - جعل مفتاح للمستخدم لكي يستطيع به التحكم في بياناته الخاصة عند زياراته لموقعك في مرات اخري.



الكوكيز مفيد للاستخدام في الأشياء البسيطة والغير خطيرة ، لكنه الآن يستخدم بشكل سئ ، مثل استخدامه مثلاً في معرفة معلومات عن المستخدم بدون علم منه ، أو تخزين كميات كبيرة من البيانات فيه والتي من الأجدر أن يتم حفظها في ملف على السيرفر .

ويكون استخدامه مفيدا عندما تضمن أن جميع زوار موقعك تسمح متصفحاتهم بالكوكيز (مثل طلبة المدارس أو شبكات انترانت ) .

عندما يكون فقط لأشياء بسيطة لاضرر منها عند عدم السماح بالكوكيز بجهاز العميل .





بدايتك مع الكيوكيز




قبل أن نبدأ علينا معرفة بعض الأساسيات عن الكيوكيز

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



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



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



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



عندما يتم طلب الصفحة في مرة آخري يقوم المستعرض بارسال البيانات التي تم إنشاؤها سابقاً عند طلب الصفحه .

يتم انتهاء مده الكوكيز بإنتهاء وقت صلاحيتها االمحدد من قبل السيرفر ويتم مسحها فورياً عند اغلاق الصفحة إذا كان وقت صلاحيتها صفراً من الثواني .



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



يقوم السيرفر بإرسال الكوكيز عبر الـHTTP Headers الذي يتم إرساله قبل أي مخرج من مخرجات الـhtml

والمستعرض أيضا يقوم بإرسال الكوكيز عبر الـHTTP Header بالإضافه إلى أن المستعرض يتعرف على من سيقوم بإرسال الكوكيز فلو كانت الكوكيز مثلاً مرسلة من قبل الموقع [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] فإنه لن يقوم بإرسالها إلى موقع [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] .



باستطاعتك عند إنشاء الكوكيز تحديد مسار يتم ارسال الكوكيز لكي يتم اقتصار عملية العبور إلى الكوكيز إلى أماكن معينة .

قبل أن نقوم بوضع كود بسيط سنقوم الآن بتعريف كيفية تخزين الكوكيز وكيفية قراءتها :

كون الـPHP لغة حديثه لعمل سكربتات ويب فإنها تأتي بدعم كامل للكوكيز بواسطة الدالة setcookie() باستثناء أنك عند استعمالها يجب استعمالها قبل طباعة أي مخرجات html .



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



v قيمة حرفية يتم تخزينها كاسم للمتغير

v قيمة حرفية يتم تخزينها كقيمة لذلك المتغير

v Unix timestamp الذي يقوم بالإشارة إلى تاريخ إنتهاء الكوكيز

Unix timestamp عبارة عن رقم صحيح لا يحتوي على فواصل عشرية يقوم بحساب الثواني من منتصف ليلة 01/01/1970 . وإذا كنا نريد مثلاً أن نقوم بمسح الكوكيز بعد ساعة من تخزينه فإننا نقوم باستعمال الدالة time() التي تقوم بحساب الـtimestamp ثم نضيف عليه الوقت الذي نريده وفي حالتنا الساعه تساوي 3600 ثانية وعلى ذلك سنقوم بإضافة ناتج الدالة time على 3600 لكي يتم مسح الكوكيز بعد ساعة واحدة !



الثلاث العوامل الأخري التي يتم ستخدامها أيضا في الكوكيز ولكنها نادرة الاستخدام ولن نناقشها في موضوعنا هذا هي :

ü المسار الذي يتم إرسال الكوكيز إليه فلو تم فتح نفس الصفحة من نفس الموقع ولكن من مسار اخر ( مثلاً المسار كان pag\url\one وتم تغييره إلى page\url\two فان المستعرض لن يقوم بارسال البيانات إلي الصفحة لأنه تم تحديد المسار الذي سيتم ارسال الكوكيز اليه )

ü الدومين الذي سيتم إرسال البيانات إليه وهو مفيد في حالة ما إذا كان هناك أكثر من دومين تريد ارسال الكوكيز اليه

ü متغير من نوع integer يتم الإشارة إليه بـ secure يتم في حالة استخدام عمليات تشفير بالـ SSL



العبور الى الكوكيز بسيط جداً فالمتغير الذي يتم ارساله يتم تخزينه ضمن المتغيرات العامة (global) وعندئذ فإنه لو كان لدينا كوكيز اسمه ahmed فإن قيمته توضع مباشرة في متغير اسمه $ahmed !!



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






إما أن نقوم بإخبار السيرفر بوقت قديم :



كود PHP:
<?

Set cookie (“ahmed” , “0”, time()-999);
?>




وإما القيام بمسح الكوكيز بكتابة اسمه فقط :



كود PHP:
<?

Setcookie (“ahmed”);
?>



مثال لتخزين وقراءة كوكيز


قم بفتح المفكرة واكتب الكود التالي :



كود PHP:
<?

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




الشرح




عند تشغيل الصفحه لاول مره

عند تشغيلك للصفحة سيتم اختبار ما إذا كان هناك متغير بالاسم $thename فإذا تم الحصول عليه فسيتم وضع قيمته في كوكيز باسم (rname) (وطبعا لن يتم الحصول عليه في أول مرة لأننا لم نقم بارسال أي بيناات بعد) وبعد ذلك طباعة نموذج من مربع نص واحد وزر لإرسال المعلومات .

ويتم طباعة قيمة المتغير إذا كان هناك أي متغير تم ارساله باسم $thename ويتم فحص قيمة الكوكيز $rname وطباعتها وبالطبع لا يوجد حتي الآن أي كوكيز .


المرحلة الثانية

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

المرحلة الثالثة

في هذه المرة سيكون الكوكيز موجوداً فسيتم ارساله على هيئة متغير ويتم ارساله ومن ثم طباعة النموذج وقيمه المتغير $thename وقيمة الكوكيز الذي يوجد بجهازك !



الرجوع الى أعلى الصفحة اذهب الى الأسفل
https://alqhas.yoo7.com
 
الدرس التاسع في لغة php
الرجوع الى أعلى الصفحة 
صفحة 1 من اصل 1
 مواضيع مماثلة
-
»  الدرس التاسع عشر " : شرح كشف النو اي بي عبر برنامج NetSnifferCs
»  الدرس الثالث في لغة php
»  الدرس الرابع في لغة php
»  الدرس الحادي عشر في لغة php
»  الدرس الرابع عشر في لغة php

صلاحيات هذا المنتدى:لاتستطيع الرد على المواضيع في هذا المنتدى
منتديات القناص ابوهاجوس لهكرالنيمبوز وبرامج الاختراق :: منتدى لغات البرمجه :: قسم مختص بالمواضيع المتعلقة بلغات برمجة المواقع مثل ال PHP و ASP و Perl الخ...-
انتقل الى: