كيفية تعيين حد جلسة الاتصال على جهاز التوجيه TP-Link؟ جلسة HTTP مرة أخرى حول وظيفة session_start ()

    نص / html 10/19/2017 7:51:00 ص ناقلات BCO 0

    هناك من 13 إلى 15 عميلاً يجلسون على خادم المحطة الطرفية WS2012. المحطة الطرفية على الجهاز الظاهري تدور. على جهاز ظاهري منفصل DNS ، AD و DHCP.

    السؤال رقم 1: كيف يمكن ضبط الحد الزمني لقطع الاتصال عندما تكون الجلسة غير نشطة؟

    في تكوين الكمبيوتر gpedit.msc -> مكونات Windows -> خدمات سطح المكتب البعيد -> مضيف جلسة سطح المكتب البعيد -> تحديد الجلسات حسب الوقت. جميع المعلمات هناك - غير محدد. وأثناء الخمول في حدود 20-30 دقيقة. يرمي الجميع.

    لقد بحثت في الكثير من المعلومات في Runet ، ولم أجدها في WS2012 ، هناك فقط لـ WS2003

    السؤال رقم 2: كيف نتأكد من عدم إغلاق جميع البرامج المفتوحة للمستخدم بعد فصل الجلسة؟

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

    السؤال رقم 3: هل من الممكن تقييد حقوق إيقاف تشغيل الخادم في WS2012؟

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

    مشرف

    نص / html 10/19/2017 11:30:36 ص أفكسنتييف سيرجي 1

    1 حتى في خصائص المجموعة هناك علامة تبويب "جلسة" هناك وانظر ما تحتاج إلى تكوين .. أو لم أفهم؟

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

    3 إذا لم يكن المستخدمون لديك مشرفين ، فعندئذ .. في هذا الزر ، افتراضيًا ، ما عليك سوى تعطيل والخروج ..

  • نص / html 10/23/2017 10:51:31 ص إيفان إند كو 0

    >> كيف قمت بإعداد الخادم الطرفي؟ إذا قمت بتكوين دور RDS ، وحتى يتم إغلاق الجلسة تمامًا (مع جميع برامج المستخدم في هذه الجلسة).

    >> إذا كان لديك دور RDS تم تكوينه

    لا أعرف أين تبحث؟

    >> في تكوين المجموعة هناك دورة حياة حتى لحظة قطع الاتصال

    لا أعرف أين تبحث؟

    >> هل لديك مستخدمون على الخادم هم مشرفون؟

    نعم ، مدراء.

    >> بشكل افتراضي ، لا يمكن للمستخدمين العاديين إيقاف تشغيل الخادم. لكن يمكنك إخفاء هذا الزر في السياسة تمامًا.

  • نص / html 10/23/2017 11:00:12 ص إيفان إند كو 0

    >> لذلك في خصائص المجموعة يوجد علامة تبويب "جلسة" هناك وانظر ما تريد تكوينه .. أم لم أفهم؟

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

    كتبت في خصائص المجموعة - أين هذا؟

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

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

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

  • نص / html 10/23/2017 11:13:30 ص ناقلات BCO 0

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

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

    مرة أخرى ، لم أكن أنا من قام بالإعداد. ومنذ ذلك الحين لم أكن من فعل ذلك ، فمن الواضح أن المهارات في هذه الأماكن ليست كافية. لذا أطرح سؤالاً على المحترفين: كيف أفعل ذلك ، من فضلك قل لي؟

    >> إذا كان لديك دور RDS تم تكوينه

    لا أعرف أين تبحث؟

    >> في تكوين المجموعة هناك دورة حياة حتى لحظة قطع الاتصال

    لا أعرف أين تبحث؟

    >> هل لديك مستخدمون على الخادم هم مشرفون؟

    نعم ، مدراء.

    >> بشكل افتراضي ، لا يمكن للمستخدمين العاديين إيقاف تشغيل الخادم. لكن يمكنك إخفاء هذا الزر في السياسة تمامًا.

    كيفية إزالة حقوق المسؤول من المستخدمين؟ هل يمكن تكوينه بواسطة AD أو في مكان آخر على الخادم الطرفي؟ كيف تضع سياسة بإخفاء زر الطاقة؟

    شكرًا لك مقدمًا على تفهمك وانتظار إجاباتك ...

    لديك أداة تقدمية ضخمة على خادمك تسمى " مدير الخادم"تمت إضافة / إزالة الأدوار / الميزات فيه ، وتم تكوينها هناك. تحقق من وظيفة هذه الأداة. توجد على اليسار إعدادات لبعض الأدوار (مثبتة). إذا كان هناك عنصر RDS ، فانتقل إليه ، و ثم إلى إعدادات المجموعة. Google كيف يتم تكوين خادم المحطة الطرفية على WS 2012 r2. يمكنك البحث مثل هذا Google -> "Terminal Server 2012 r2 دليل خطوة بخطوة".

    على الخادم (وليس فقط على الخادم) توجد أيضًا أداة ضخمة تسمى إدارة الكمبيوتر(لا يجب الخلط بينه وبين Server Manager) ، يمكنك العثور عليه عن طريق النقر فوق زر الماوس الأيمن في البداية.

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

    كيفية إخفاء زر Google -> "إخفاء زر إيقاف التشغيل GPO"

    الرأي الذي عبرت عنه ليس موقفًا رسميًا لشركة Microsoft

    مشرف

    نص / html 10/25/2017 7:51:20 ص إيفان إند كو 0

    >> كان من الصعب تخمين أنك لا تعرف كيفية إدارة الخادم ، لأنه كقاعدة عامة ، أولئك الذين يأتون إلى هنا على الأقل google يسألونهم أولاً.

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

    >>يمكنك البحث مثل Google -> "Terminal Server 2012 r2 دليل خطوة بخطوة.جوجل -> "إخفاء زر الإغلاق GPO

    أعرف كيفية استخدام Google ، لكني لست بحاجة إلى تعلم كيفية استخدام محرك البحث. لماذا لم أبحث في مصادر باللغة الإنجليزية - لقد كتبت أعلاه ... إذا قيل لك إنهم لا يعرفون كيفية إعداد خادم طرفي ، فهذا لا يعني أن الشخص لا يمكنه البحث في Google. لكنك لم تفوتك الفرصة ، مثل 99٪ من محترفي تكنولوجيا المعلومات ، لتبدأ بالتوعية الأخلاقية وتعليم أي شخص استخدام Google. بالنسبة لي ، لطالما كان هذا ولا يزال يمثل مشكلة في فهم الأشخاص الذين لديهم بنيته التحتية. التباهي الجيد أغلى من المال. ولا يفوت أكثر من متخصص في تكنولوجيا المعلومات هذا ، كما تبين الممارسة ، حتى عند التواصل مع الزملاء ، إذا جاز التعبير.

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

    >> لديك أداة تقدمية ضخمة على الخادم الخاص بك تسمى "Server Manager".

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

    استمارتك هنا باللغة الروسية ، وكان السؤال باللغة الروسية ، وأود أن أتلقى الإجابة باللغة الروسية.

    بدون وعظات - لماذا لم تستخدم جوجل؟ وهناك مثل هذا الزر الرابحة جوجل ، إلخ.

    إن العمل بأسلوب أكثر إنتاجية: سؤال - إجابة.

    سؤال: كيف أقوم بإعداد واحد؟ الجواب: اذهب إلى هناك وافعل هذا.

  • نص / html 10/25/2017 8:25:04 ص ناقلات BCO 0

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

    من أجل إعطاء إجابة واضحة ، تحتاج إلى الحصول على سؤال واضح. انا سألتك ليس واعظاتمت الإجابة على السؤال في الرسالة الأولى بأسلوب " ما الذي تسألني عنه هراء ، فلا يزال مكتوبًا بوضوح أن ما يجري".

    الرأي الذي عبرت عنه ليس موقفًا رسميًا لشركة Microsoft

نظرًا لأن HTTP هو بروتوكول خادم عميل ، فإن جلسة HTTP تتكون من ثلاث مراحل:

  1. ينشئ العميل اتصالات TCP (أو اتصال آخر إذا لم يتم استخدام نقل TCP).
  2. يرسل العميل طلبًا وينتظر الرد.
  3. يعالج الخادم الطلب ويرسل استجابة تحتوي على رمز الحالة والبيانات ذات الصلة.

منذ HTTP / 1.1 ، بعد المرحلة الثالثة ، لم يتم إغلاق الاتصال لأنه يُسمح للعميل ببدء طلب آخر. أي أنه يمكن تكرار المرحلتين الثانية والثالثة.

إنشاء اتصال

نظرًا لأن HTTP هو بروتوكول خادم عميل ، يتم دائمًا إنشاء الاتصال بواسطة العميل. فتح اتصال في HTTP يعني إنشاء اتصال من خلال النقل المناسب ، عادةً TCP.

في حالة TCP ، يتم استخدام المنفذ 80 كمنفذ خادم HTTP افتراضي على الكمبيوتر ، على الرغم من استخدام البعض الآخر غالبًا ، مثل 8000 أو 8080. يحتوي عنوان URL للصفحة المحملة على اسم المجال والمنفذ ، والذي يمكن حذفه إذا كان يطابق المنفذ الافتراضي.

نعني:يمنع نموذج خادم العميل الخادم من إرسال البيانات إلى العميل دون طلب تلك البيانات صراحة. للتغلب على هذه المشكلة ، يستخدم مطورو الويب تقنيات مختلفة: تنفيذ الأمر ping بشكل دوري على الخادم باستخدام كائن XMLHTTPRequest Javascript أو HTML WebSockets API أو بروتوكولات مماثلة.

إرسال طلب العميل

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

  1. تحتوي الأسطر الأولى على طريقة الطلب ومعلماتها:
    • المسار إلى المستند - عنوان URL مطلق بدون تحديد البروتوكول واسم المجال
    • إصدار بروتوكول HTTP
  2. كل سطر لاحق هو رأس HTTP ويرسل إلى الخادم بعض المعلومات حول أنواع البيانات المفضلة (على سبيل المثال ، ما هي اللغة وأنواع MIME) أو الإرشادات التي تغير سلوك الخادم (على سبيل المثال ، لا ترسل استجابة إذا كانت كذلك بالفعل في ذاكرة التخزين المؤقت). تشكل رؤوس HTTP هذه كتلة تنتهي بسطر فارغ.
  3. الكتلة الأخيرة اختيارية وتحتوي على بيانات إضافية. تستخدم في الغالب بواسطة طريقة POST.

أمثلة على الطلبات

نحصل على الصفحة الرئيسية للموقع ونخبر الخادم أن وكيل المستخدم يفضل الصفحة باللغة الفرنسية ، إن أمكن:

GET / HTTP / 1.1 Host: site Accept-Language: fr

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

نرسل نتيجة إرسال النموذج:

POST /contact_form.php HTTP / 1.1 المضيف: طول محتوى الموقع: 64 نوع المحتوى: application / x-www-form-urlencoded name = Joe٪ 20User & request = أرسل٪ 20me٪ 20one٪ 20of٪ 20your٪ 20catalogue

طرق الطلب

يحدد HTTP مجموعة من طرق الطلب التي تشير إلى الإجراء المطلوب على المورد. على الرغم من أنها يمكن أن تكون أيضًا أسماء ، يُشار أحيانًا إلى طرق الطلب هذه بأوامر HTTP. أكثر طلبات GET و POST شيوعًا هي:

  • يتم استخدام GET لطلب محتوى المورد المحدد. يجب أن يتلقى الطلب باستخدام GET البيانات فقط.
  • ترسل طريقة POST البيانات إلى الخادم حتى يتمكن من تغيير حالته. غالبًا ما تستخدم هذه الطريقة لنماذج HTML.

هيكل استجابة الخادم

بعد أن يرسل الوكيل المرفق طلبه ، يقوم خادم الويب بمعالجته وإرسال استجابة. عن طريق القياس مع طلب العميل ، تكون استجابة الخادم عبارة عن توجيهات نصية مفصولة بـ CRLF ، مجمعة في ثلاث كتل مختلفة:

  1. السطر الأول - سطر الحالة ، يتكون من تأكيد لإصدار HTTP المستخدم وحالة الطلب (وقيمته في نموذج يمكن للبشر قراءته).
  2. الأسطر اللاحقة هي رؤوس HTTP التي تمنح العميل بعض المعلومات حول البيانات التي يتم إرسالها (مثل النوع والحجم وخوارزمية الضغط وتلميحات التخزين المؤقت). كما هو الحال مع طلب العميل ، تشكل رؤوس HTTP هذه كتلة تنتهي بسطر فارغ.
  3. الكتلة الأخيرة تحتوي على بيانات (إن وجدت).

استجابات عينة

استرجاع صفحات الويب بنجاح:

HTTP / 1.1 200 OK التاريخ: السبت ، 09 أكتوبر 2010 14:28:02 GMT Server: Apache Last-Modified Tue، 01 Dec 2009 20:18:22 GMT ETag: "51142bc1-7449-479b075b2891b" Accept-Ranges: bytes طول المحتوى: 29769 نوع المحتوى: نص / html(هنا ينتقل 29769 بايت من صفحة الويب المطلوبة)

الرسالة التي تفيد بأنه تم نقل المورد المطلوب:

HTTP / 1.1 301 Moved بشكل دائم الخادم: Apache / 2.2.3 (Red Hat) نوع المحتوى: text / html؛ charset = iso-8859-1 التاريخ: السبت ، 09 أكتوبر 2010 14:30:24 GMT المكان: (هذا هو العنوان الجديد للمورد المطلوب ، من المتوقع أن يطلبه العميل) Keep-Alive: timeout = 15، max = 98 Accept-Ranges: bytes Via: Moz-Cache-zlb05 الاتصال: Keep-Alive X-Cache-Info: التخزين المؤقت X-Cache-Info: التخزين المؤقت لطول المحتوى: 325 (يحتوي المحتوى على صفحة قياسية سيتم عرضها إذا كان العميل غير قادر على متابعة الرابط) 301 منقول بشكل دائم

انتقل بشكل دائم

انتقلت الوثيقة هنا.


خادم Apache / 2.2.3 (Red Hat) في موقع المنفذ 80

رسالة مفادها أن المورد المطلوب غير موجود:

الجلسات في PHP هي آلية لتخزين المعلومات حول كمبيوتر العميل على جانب الخادم. في الواقع ، الجلسات في PHP ليست موضوعًا معقدًا ، ولكن لفهمها ، تحتاج إلى معرفة كيفية عمل ملفات تعريف الارتباط في PHP. لذلك ، إذا كنت لا تعرف كيفية عمل ملفات تعريف الارتباط في PHP ، فعليك قراءة المقالة المقابلة أولاً ، ثم العودة إلى هنا.

تمت ترجمة كلمة Session من اللغة الإنجليزية كجلسة ، بحيث يصبح معنى الجلسات في PHP أكثر وضوحًا ، لكن المبرمجين اعتادوا على مصطلح "Session" ، وسنستخدمه في هذه المقالة.

تشبه الجلسات في PHP آلية ملفات تعريف الارتباط ، ونفس المفتاح => أزواج القيمة ، يتم تخزينها فقط على جانب الخادم.

دالة Session_start ()

نحتاج إلى بدء الجلسة ، لذلك توجد وظيفة session_start (). تبدأ هذه الوظيفة جلسة ، أو جلسة ، أيًا كان ما تسميه.

من المستحسن استدعاء وظيفة session_start () في بداية الصفحة ، لكنني لا أفعل ذلك في الأمثلة الخاصة بي.

مجموعة _SESSION دولار

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

من أجل ضمان تفاعل كل زائر مع بياناته من جلسته ، يتم استخدام ملف تعريف ارتباط ، وهو الأمر لإنشاء أي PHP يمنح نفسه ، فلا داعي للقلق بشأنه. يعتبر ملف تعريف الارتباط هذا مفيدًا فقط للخادم ولا يمكن استخدامه لاسترداد بيانات المستخدم.

على الخادم ، يتم تخزين بيانات الجلسة في ملف نصي ومتاحة في برنامج PHP في مصفوفة $ _SESSION. لحفظ متغير في جلسة ما ، تحتاج إلى تعيين قيمة له في هذه المصفوفة.

لنبدأ أخيرًا في استخدام الأمثلة. كل شيء بسيط للغاية.

الجلسات في PHP القيمة. "؛؟>

لنحاول الآن الحصول على القيمة من المصفوفة $ _SESSION في مثال آخر.

الجلسات في PHP

يرجى ملاحظة أنه إذا قمنا في المثال الثاني بإزالة وظيفة session_start () ، فلن نتمكن من الوصول إلى بيانات مصفوفة $ _SESSION.

دالة Session_id ()

بعد إنشاء الجلسة ، يمكنك الوصول تلقائيًا إلى معرف الجلسة الفريد باستخدام وظيفة session_id (). تسمح لك هذه الوظيفة بتعيين والحصول على قيمة معرّف الجلسة.

الجلسات في PHP

يمكنك البحث في شريط الأدوات عن مطوري متصفحك (في Chrome لهذا ، اضغط على Ctrl + Shift + I ، ثم الموارد ، وهناك ستجد ملف تعريف ارتباط) ، وضع هذا المجال ملف تعريف ارتباط لمتصفحك باسم PHPSESSID وشيء ما مثل هذا: "7g5df9rkd1hhvr33lq1k6c72p7".

من خلال قيمة PHPSESSID ، سيحدد الخادم متصفحك ويعمل مع مجموعة المتغيرات المناسبة التي ستكون متاحة للبرنامج النصي من خلال مصفوفة $ _SESSION ، كما ذكرنا سابقًا.

دالة Session_name ()

إذا كانت الوظيفة session_id () تسمح لك بالحصول على قيمة معرّف الجلسة ، فإن الوظيفة session_name () تسمح لك بالحصول على اسم الجلسة.

الجلسات في PHP

مرة أخرى حول وظيفة session_start ()

الآن نحن نعرف المزيد عن مزيج الجلسات في PHP ونحتاج إلى العودة إلى وظيفة session_start () مرة أخرى. تعمل هذه الوظيفة على تهيئة آلية الجلسة للمستخدم الحالي. كيف يحدث هذا بالضبط:

  • إذا قام المستخدم بتشغيل الموقع لأول مرة ، فإن session_start () تعين ملف تعريف ارتباط على العميل وتنشئ تخزينًا مؤقتًا على الخادم المرتبط بمعرف المستخدم.
  • يحدد المخزن المرتبط بالمعرف الحالي الذي تم تمريره.
  • إذا كانت هناك بيانات مخزنة على الخادم ، فسيتم وضعها في مصفوفة $ _SESSION.
  • إذا كان register_globals من ملف php.ini قيد التشغيل ، فإن جميع عناصر المصفوفة $ _SESSION تصبح متغيرات عامة.

مثال على استخدام الجلسة

الآن سنلقي نظرة على مثال يسمح لك بإجراء بعض التجارب مع الجلسات.

الجلسات في PHP

يعداد

في الجلسة الحالية ، قمت بفتح الصفحةذات مرة.

افتح المثال في "> علامة التبويب هذه.

تستند جميع أعمال الجلسات إلى مصفوفة $ _SESSION ، ويتضح هذا بوضوح في هذا المثال.

إذا أغلقت نافذة المتصفح ، فستنتهي الجلسة ، وستتم إعادة تعيين العداد إلى الصفر. يمكن تغيير سلوك الجلسات في PHP ، وسنعود إلى هذه المشكلة قليلاً في المقالة.

نهاية الجلسة

لإنهاء الجلسة ، نحتاج إلى:

  1. امسح المصفوفة $ _SESSION.
  2. حذف التخزين المؤقت على الخادم.
  3. حذف ملف تعريف ارتباط الجلسة.

يمكنك مسح المصفوفة $ _SESSION باستخدام الدالة session_unset ().

تزيل وظيفة session_destroy () التخزين المؤقت على الخادم. بالمناسبة ، هي لا تفعل أي شيء آخر.

تحتاج إلى إزالة ملف تعريف ارتباط الجلسة باستخدام وظيفة setcookie () ، التي تعلمناها في درس العمل مع ملفات تعريف الارتباط في PHP.

مثال على إنهاء الجلسة:

نهاية الجلسة

انتهت الجلسة.

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

يمكن حذف ملف تعريف الارتباط على النحو التالي:

setcookie (session_name ()، "" ، الوقت () - 60 * 60 * 24 * 32، "/")

مرة أخرى حول وظائف session_name () و session_id ()

نادرًا ما يتم استخدام الدالتين session_name () و session_id () عمليًا ، لكنني أكتب عنهما ، لأن المقالة تحتاج إلى الكشف عن آلية الجلسات ذاتها في PHP.

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

الجلسات في PHP

باستخدام هذا المثال ، سيتم تعيين نفس معرف الجلسة لجميع المستخدمين.

دعنا نتوقف هنا بمزيد من التفصيل ، إذا قمت بتشغيل المثال من القسم الخاص بوظيفة session_name () (هنا الرابط) في متصفحات مختلفة (على سبيل المثال ، في Chrome وفي Internet Explorer) ، فسيكون لكل متصفح فريد خاص به معرف الجلسة. تقوم المتصفحات بتخزين ملفات تعريف الارتباط في كل مجلد خاص بها ، وبالتالي فإن وظيفة session_start () ستمنح كل متصفح معرفًا فريدًا خاصًا به ، وبالتالي ، سيتم إنشاء تخزين فريد لكل متصفح على الخادم. لذلك ، سيعمل مثال العداد (هذا المثال) بشكل مستقل عن بعضه البعض في كل متصفح.

إذا قمت بتعيين نفس معرف الجلسة لجميع المستخدمين ، فسيعملون مع نفس المستودع على الخادم. فيما يلي مثال على عداد يقوم بحساب الزيارات من متصفحات مختلفة:

100) (session_unset () ؛ session_destroy () ؛)؟> الجلسات في PHP

رقم العداد 2

فتح الصفحة في متصفحات مختلفةذات مرة.

افتح المثال في "> علامة التبويب هذه.

إذا قمت بتشغيل هذا المثال ، فليس من الحقيقة أنك سترى وحدة هناك. قد يكون الزائرون الآخرون قد قاموا بالفعل بتغيير القيم الموجودة في مخزن الجلسة على الخادم. لا أعرف متى يحذف الخادم التخزين في هذه الحالة ، لذلك إذا تجاوز العداد 100 ، فسوف أنهي الجلسة.

ضبط وقت الانتظار

بشكل افتراضي ، "تبقى" الجلسة "سارية" حتى يغلق الزائر نافذة المتصفح. ويرجع ذلك إلى حقيقة أن وظيفة session_start () تعيّن ملف تعريف الارتباط هذا للعميل.

يمكن تغيير مدة الجلسة باستخدام وظيفة session_set_cookie_params () ، وهنا صيغتها.

Session_set_cookie_params (int lifetime [، string path [، string domain [، bool secure]]])

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

تنطبق وظيفة session_set_cookie_params () فقط على مدة البرنامج النصي.

فيما يلي مثال باستخدام هذه الوظيفة:

الجلسات في PHP

عداد رقم 3

قيمة العداد:.

افتح العداد في "> علامة التبويب هذه.

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

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

كيف ترتبط الجلسة بـ HTTP و COOKIES

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

ما هي الجلسات؟

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

مراحل الجلسة

يمكن تقسيم الجلسة بأكملها إلى ثلاث مراحل:

  • فتح جلسة (عندما يبدأ المستخدم العمل مع موقع معين) ،
  • حساب متغيرات الجلسة (عند الانتقال إلى صفحات مختلفة) ،
  • نهاية الجلسة.

نظرًا لحقيقة أنه يتم تخزين بيانات الجلسة على خادم جهة خارجية ، فمن الأفضل عدم تخزين كميات كبيرة من المعلومات فيها ، ولكن استخدام ملفات تعريف الارتباط.