English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
CGI::Session يمكنها حفظ حالة الجلسة المستمرة بين المستخدم بيئة CGI، وعند اكتمال الجلسة يجب إغلاقها، مما يضمن أن يتم كتابة البيانات إلى التخزين، وعند اكتمال الجلسة يجب حذف البيانات.
#!/usr/bin/ruby require 'cgi' require 'cgi/session' cgi = CGI.new("html4") sess = CGI::Session.new(cgi, "session_key" => "a_test", "prefix" => "rubysess.") lastaccess = sess["lastaccess"].to_s sess["lastaccess"] = Time.now إذا كان cgi['bgcolor'][0] =~ /[a-z]/ sess["bgcolor"] = cgi['bgcolor'] end cgi.out{ cgi.html { cgi.body ("bgcolor" => sess["bgcolor"]){ "خلفية هذه الصفحة" + "التغييرات بناءً على 'bgcolor'" + "كل مستخدم لديه جلسة." + "وقت الوصول الأخير: #{lastaccess}" } } }
الوصول إلى "/cgi-bin/test.cgi?bgcolor=red" سيقوم بالانتقال إلى صفحة مع لون خلفية معين.
تخزن بيانات الجلسة في مجلد الملفات المؤقتة على الخادم، ويحدد معامل prefix بدء اسم ملف الجلسة، ويستخدم كبدء اسم الملف المؤقت. بهذه الطريقة، يمكنك بسهولة التعرف على ملفات الجلسة المؤقتة المختلفة على الخادم.
تقوم CGI::Session بحفظ الحالة الثابتة بين المستخدم والبيئة CGI. يمكن أن تكون الجلسة في ذاكرة النظام أو على القرص الصلب.
يقدم فئة Class CGI::Session طرقًا بسيطة لإنشاء session:
CGI::Session::new( cgi[, option])
يُمكن تشغيل جلسة CGI جديدة ويعود لها CGI::Session Object. يمكن أن يكون الخيار اختياريًا، وهو يمكن أن يكون من القيم التالية:
session_key: اسم المفتاح لحفظ الجلسة، افتراضيًا هو _session_id.
session_id: معرف الجلسة الفريد. يتم إنشاؤه تلقائيًا
new_session: إذا كان صحيحًا، سيتم إنشاء Session id جديد للجلسة الحالية. إذا كان خطأ، سيتم استخدام session_id لتحديد session الموجودة مسبقًا. إذا تم تمرير هذا المعامل، سيتم استخدام الجلسة الحالية إذا كانت متاحة، وإلا سيتم إنشاء جلسة جديدة.
database_manager: فئة تستخدم لحفظ الجلسات، يمكن أن تكون CGI::Session::FileStore أو CGI::Session::MemoryStore. افتراضيًا هو FileStore.
tmpdir: بالنسبة لـ FileStore، هو مجلد التخزين الفاشل للجلسة.
prefix: بالنسبة لـ FileStore، هو امتداد ملفات الجلسة.
الرقم | وصف الأسلوب |
---|---|
1 | [ ] إرجاع قيمة المفتاح المحدد. راجع الأمثلة. |
2 | [ ]= تعيين قيمة المفتاح المحدد. راجع الأمثلة. |
3 | حذف الاستدعاء لأساليب إزالة الإدارة الأساسية لقاعدة البيانات. بالنسبة لـ FileStore، يتم حذف الملفات المادية التي تحتوي على الجلسة. بالنسبة لـ MemoryStore، يتم إزالة بيانات الجلسة من الذاكرة. |
4 | تحديث الاستدعاء لتحديث الأساليب الخاصة بالإدارة الأساسية لقاعدة البيانات. بالنسبة لـ FileStore، يتم كتابة الجلسة إلى القرص. بالنسبة لـ MemoryStore، لا يحدث أي تأثير. |