Sesi CGI Ruby


CGI::Session boleh menyimpan keadaan sesi berterusan untuk pengguna dan persekitaran CGI Sesi perlu ditutup selepas digunakan Ini memastikan bahawa data ditulis ke storan perlu memadam data.

#!/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
if cgi['bgcolor'][0] =~ /[a-z]/
  sess["bgcolor"] = cgi['bgcolor']
end

cgi.out{
  cgi.html {
    cgi.body ("bgcolor" => sess["bgcolor"]){
      "The background of this page"    +
      "changes based on the 'bgcolor'" +
      "each user has in session."      +
      "Last access time: #{lastaccess}"
    }
  }
}

Mengakses "/cgi-bin/test.cgi?bgcolor=red" akan melompat ke halaman dengan warna latar belakang yang ditentukan.

Data sesi wujud dalam direktori fail sementara pelayan Parameter awalan menentukan awalan sesi, yang akan digunakan sebagai awalan fail sementara. Dengan cara ini anda boleh mengenal pasti fail sementara sesi yang berbeza pada pelayan dengan mudah.


CGI::Kelas sesi

CGI::Session mengekalkan keadaan berterusan antara pengguna dan persekitaran CGI. Sesi boleh berada dalam ingatan atau pada cakera keras.

Kaedah kelas

Kelas Ruby CGI::Session menyediakan kaedah mudah untuk mencipta sesi:

CGI::Session::new( cgi[, option])

Mulakan sesi CGI baharu dan kembalikan CGI:: objek Sesi yang sepadan . Pilihan boleh menjadi cincang pilihan dan boleh menjadi nilai berikut:

  • session_key: Nama kunci untuk menyimpan sesi Lalai kepada _session_id.

  • id_sesi: ID sesi unik. Menjana

  • new_session: Jika benar, buat id Sesi baharu untuk sesi semasa. Jika palsu, gunakan ID sesi sedia ada melalui session_id. Jika parameter ini ditinggalkan, sesi sedia ada digunakan jika tersedia, jika tidak, sesi baharu dibuat.

  • database_manager: Kelas yang digunakan untuk menyimpan sesi, yang boleh menjadi CGI::Session::FileStore atau CGI::Session::MemoryStore. Lalai ialah FileStore.

  • tmpdir: Untuk FileStore, direktori storan ralat untuk sesi.

  • awalan: Untuk FileStore, ia adalah awalan fail sesi.

Kaedah instan

Nombor siri< /th>Penerangan kaedah
1
序号方法描述
1[ ]
返回给定 key 的值。查看实例。
2[ ]=
设置给定 key 的值。 查看实例。
3delete
调用底层数据库管理的删除方法。对于  FileStore, 删除包含 session 的物理文件。 对于 MemoryStore, 从内存中移除 session 数据。
4update
调用底层数据库管理的更新方法。 对于  FileStore, 将 session 写入到磁盘中。 对于 MemoryStore则无效果。
[ ]
Kembalikan nilai kunci yang diberikan. Lihat contoh.
2<🎜>[ ]=<🎜>
Tetapkan nilai kunci yang diberikan. Lihat contoh.
3<🎜>padam<🎜>
Panggil kaedah pemadaman pengurusan pangkalan data asas. Untuk FileStore, padamkan fail fizikal yang mengandungi sesi. Untuk MemoryStore, alih keluar data sesi daripada memori.
4<🎜>kemas kini<🎜>
Panggil kaedah kemas kini pengurusan pangkalan data asas. Untuk FileStore, tulis sesi ke cakera. Ia tidak mempunyai kesan pada MemoryStore.
<🎜>