English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

الجلسات في CGI في Ruby

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::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، لا يحدث أي تأثير.