$73 GRAYBYTE WORDPRESS FILE MANAGER $48

SERVER : premium201.web-hosting.com #1 SMP Wed Mar 26 12:08:09 UTC 2025
SERVER IP : 172.67.217.254 | ADMIN IP 216.73.216.23
OPTIONS : CRL = ON | WGT = ON | SDO = OFF | PKEX = OFF
DEACTIVATED : NONE

/opt/alt/ruby18/lib64/ruby/1.8/

HOME
Current File : /opt/alt/ruby18/lib64/ruby/1.8//cgi-lib.rb
warn "Warning:#{caller[0].sub(/:in `.*'\z/, '')}: cgi-lib is deprecated after Ruby 1.8.1; use cgi instead"

=begin

= simple CGI support library

= example

== get form values

	require "cgi-lib.rb"
	query = CGI.new
	query['field']   # <== value of 'field'
	query.keys       # <== array of fields

and query has Hash class methods


== get cookie values

	require "cgi-lib.rb"
	query = CGI.new
	query.cookie['name']  # <== cookie value of 'name'
	query.cookie.keys     # <== all cookie names

and query.cookie has Hash class methods


== print HTTP header and HTML string to $>

	require "cgi-lib.rb"
	CGI::print{
	  CGI::tag("HTML"){
	    CGI::tag("HEAD"){ CGI::tag("TITLE"){"TITLE"} } +
	    CGI::tag("BODY"){
	      CGI::tag("FORM", {"ACTION"=>"test.rb", "METHOD"=>"POST"}){
	        CGI::tag("INPUT", {"TYPE"=>"submit", "VALUE"=>"submit"})
	      } +
	      CGI::tag("HR")
	    }
	  }
	}


== make raw cookie string

	require "cgi-lib.rb"
	cookie1 = CGI::cookie({'name'    => 'name',
	                       'value'   => 'value',
	                       'path'    => 'path',   # optional
	                       'domain'  => 'domain', # optional
	                       'expires' => Time.now, # optional
	                       'secure'  => true      # optional
	                      })

	CGI::print("Content-Type: text/html", cookie1, cookie2){ "string" }


== print HTTP header and string to $>

	require "cgi-lib.rb"
	CGI::print{ "string" }
	  # == CGI::print("Content-Type: text/html"){ "string" }
	CGI::print("Content-Type: text/html", cookie1, cookie2){ "string" }


=== NPH (no-parse-header) mode

	require "cgi-lib.rb"
	CGI::print("nph"){ "string" }
	  # == CGI::print("nph", "Content-Type: text/html"){ "string" }
	CGI::print("nph", "Content-Type: text/html", cookie1, cookie2){ "string" }


== make HTML tag string

	require "cgi-lib.rb"
	CGI::tag("element", {"attribute_name"=>"attribute_value"}){"content"}


== make HTTP header string

	require "cgi-lib.rb"
	CGI::header # == CGI::header("Content-Type: text/html")
	CGI::header("Content-Type: text/html", cookie1, cookie2)


=== NPH (no-parse-header) mode

	CGI::header("nph") # == CGI::header("nph", "Content-Type: text/html")
	CGI::header("nph", "Content-Type: text/html", cookie1, cookie2)


== escape url encode

	require "cgi-lib.rb"
	url_encoded_string = CGI::escape("string")


== unescape url encoded

	require "cgi-lib.rb"
	string = CGI::unescape("url encoded string")


== escape HTML &"<>

	require "cgi-lib.rb"
	CGI::escapeHTML("string")


=end

require "delegate"

class CGI < SimpleDelegator

  CR  = "\015"
  LF  = "\012"
  EOL = CR + LF

  RFC822_DAYS = %w[ Sun Mon Tue Wed Thu Fri Sat ]
  RFC822_MONTHS = %w[ Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec ]

  # make rfc1123 date string
  def CGI::rfc1123_date(time)
    t = time.clone.gmtime
    return format("%s, %.2d %s %d %.2d:%.2d:%.2d GMT",
                RFC822_DAYS[t.wday], t.day, RFC822_MONTHS[t.month-1], t.year,
                t.hour, t.min, t.sec)
  end

  # escape url encode
  def CGI::escape(str)
    str.gsub(/[^a-zA-Z0-9_\-.]/n){ sprintf("%%%02X", $&.unpack("C")[0]) }
  end

  # unescape url encoded
  def CGI::unescape(str)
    str.gsub(/\+/, ' ').gsub(/%([0-9a-fA-F]{2})/){ [$1.hex].pack("c") }
  end

  # escape HTML
  def CGI::escapeHTML(str)
    str.gsub(/&/, "&amp;").gsub(/\"/, "&quot;").gsub(/>/, "&gt;").gsub(/</, "&lt;")
  end

  # offline mode. read name=value pairs on standard input.
  def read_from_cmdline
    require "shellwords.rb"
    words = Shellwords.shellwords(
              if not ARGV.empty?
                ARGV.join(' ')
              else
                STDERR.print "(offline mode: enter name=value pairs on standard input)\n" if STDIN.tty?
                readlines.join(' ').gsub(/\n/, '')
              end.gsub(/\\=/, '%3D').gsub(/\\&/, '%26'))

    if words.find{|x| x =~ /=/} then words.join('&') else words.join('+') end
  end

  def initialize(input = $stdin)

    @inputs = {}
    @cookie = {}

    case ENV['REQUEST_METHOD']
    when "GET"
      ENV['QUERY_STRING'] or ""
    when "POST"
      input.read(Integer(ENV['CONTENT_LENGTH'])) or ""
    else
      read_from_cmdline
    end.split(/[&;]/).each do |x|
      key, val = x.split(/=/,2).collect{|x|CGI::unescape(x)}
      if @inputs.include?(key)
        @inputs[key] += "\0" + (val or "")
      else
        @inputs[key] = (val or "")
      end
    end

    super(@inputs)

    if ENV.has_key?('HTTP_COOKIE') or ENV.has_key?('COOKIE')
      (ENV['HTTP_COOKIE'] or ENV['COOKIE']).split(/; /).each do |x|
        key, val = x.split(/=/,2)
        key = CGI::unescape(key)
        val = val.split(/&/).collect{|x|CGI::unescape(x)}.join("\0")
        if @cookie.include?(key)
          @cookie[key] += "\0" + val
        else
          @cookie[key] = val
        end
      end
    end
  end

  attr("inputs")
  attr("cookie")

  # make HTML tag string
  def CGI::tag(element, attributes = {})
    "<" + escapeHTML(element) + attributes.collect{|name, value|
      " " + escapeHTML(name) + '="' + escapeHTML(value) + '"'
    }.to_s + ">" +
    (iterator? ? yield.to_s + "</" + escapeHTML(element) + ">" : "")
  end

  # make raw cookie string
  def CGI::cookie(options)
    "Set-Cookie: " + options['name'] + '=' + escape(options['value']) +
    (options['domain']  ? '; domain='  + options['domain'] : '') +
    (options['path']    ? '; path='    + options['path']   : '') +
    (options['expires'] ? '; expires=' + rfc1123_date(options['expires']) : '') +
    (options['secure']  ? '; secure' : '')
  end

  # make HTTP header string
  def CGI::header(*options)
    if defined?(MOD_RUBY)
      options.each{|option|
        option.sub(/(.*?): (.*)/){
          Apache::request.headers_out[$1] = $2
        }
      }
      Apache::request.send_http_header
      ''
    else
      if options.delete("nph") or (ENV['SERVER_SOFTWARE'] =~ /IIS/)
        [(ENV['SERVER_PROTOCOL'] or "HTTP/1.0") + " 200 OK",
         "Date: " + rfc1123_date(Time.now),
         "Server: " + (ENV['SERVER_SOFTWARE'] or ""),
         "Connection: close"] +
        (options.empty? ? ["Content-Type: text/html"] : options)
      else
        options.empty? ? ["Content-Type: text/html"] : options
      end.join(EOL) + EOL + EOL
    end
  end

  # print HTTP header and string to $>
  def CGI::print(*options)
    $>.print CGI::header(*options) + yield.to_s
  end

  # print message to $>
  def CGI::message(message, title = "", header = ["Content-Type: text/html"])
    if message.kind_of?(Hash)
      title   = message['title']
      header  = message['header']
      message = message['body']
    end
    CGI::print(*header){
      CGI::tag("HTML"){
        CGI::tag("HEAD"){ CGI.tag("TITLE"){ title } } +
        CGI::tag("BODY"){ message }
      }
    }
    true
  end

  # print error message to $> and exit
  def CGI::error
    CGI::message({'title'=>'ERROR', 'body'=>
      CGI::tag("PRE"){
        "ERROR: " + CGI::tag("STRONG"){ escapeHTML($!.to_s) } + "\n" + escapeHTML([email protected]("\n"))
      }
    })
    exit
  end
end


Current_dir [ NOT WRITEABLE ] Document_root [ NOT WRITEABLE ]


[ Back ]
NAME
SIZE
LAST TOUCH
USER
CAN-I?
FUNCTIONS
..
--
3 Mar 2024 10.50 PM
root / root
0755
bigdecimal
--
3 Mar 2024 10.48 PM
root / linksafe
0755
cgi
--
3 Mar 2024 10.48 PM
root / linksafe
0755
date
--
3 Mar 2024 10.48 PM
root / linksafe
0755
digest
--
3 Mar 2024 10.48 PM
root / linksafe
0755
dl
--
3 Mar 2024 10.48 PM
root / linksafe
0755
drb
--
3 Mar 2024 10.48 PM
root / linksafe
0755
io
--
3 Mar 2024 10.48 PM
root / linksafe
0755
irb
--
3 Mar 2024 10.48 PM
root / linksafe
0755
net
--
3 Mar 2024 10.48 PM
root / linksafe
0755
openssl
--
3 Mar 2024 10.48 PM
root / linksafe
0755
optparse
--
3 Mar 2024 10.48 PM
root / linksafe
0755
racc
--
3 Mar 2024 10.48 PM
root / linksafe
0755
rdoc
--
3 Mar 2024 10.48 PM
root / linksafe
0755
rexml
--
3 Mar 2024 10.48 PM
root / linksafe
0755
rinda
--
3 Mar 2024 10.48 PM
root / linksafe
0755
rss
--
3 Mar 2024 10.48 PM
root / linksafe
0755
runit
--
3 Mar 2024 10.48 PM
root / linksafe
0755
shell
--
3 Mar 2024 10.48 PM
root / linksafe
0755
soap
--
3 Mar 2024 10.48 PM
root / linksafe
0755
test
--
3 Mar 2024 10.48 PM
root / linksafe
0755
uri
--
3 Mar 2024 10.48 PM
root / linksafe
0755
webrick
--
3 Mar 2024 10.48 PM
root / linksafe
0755
wsdl
--
3 Mar 2024 10.48 PM
root / linksafe
0755
x86_64-linux
--
3 Mar 2024 10.50 PM
root / root
0755
xmlrpc
--
3 Mar 2024 10.48 PM
root / linksafe
0755
xsd
--
3 Mar 2024 10.48 PM
root / linksafe
0755
yaml
--
3 Mar 2024 10.48 PM
root / linksafe
0755
English.rb
5.598 KB
12 Feb 2007 11.01 PM
root / linksafe
0644
Env.rb
0.268 KB
12 Feb 2007 11.01 PM
root / linksafe
0644
abbrev.rb
2.503 KB
12 Feb 2007 11.01 PM
root / linksafe
0644
base64.rb
3.37 KB
16 Jul 2007 3.47 PM
root / linksafe
0644
benchmark.rb
17.729 KB
10 Feb 2008 3.24 PM
root / linksafe
0644
cgi-lib.rb
6.891 KB
12 Feb 2007 11.01 PM
root / linksafe
0644
cgi.rb
73.737 KB
14 Dec 2009 2.40 AM
root / linksafe
0644
complex.rb
12.839 KB
3 Aug 2009 5.59 AM
root / linksafe
0644
csv.rb
24.459 KB
12 Feb 2007 11.01 PM
root / linksafe
0644
date.rb
53.024 KB
8 Jun 2010 4.45 AM
root / linksafe
0644
date2.rb
0.125 KB
12 Feb 2007 11.01 PM
root / linksafe
0644
debug.rb
20.609 KB
12 Feb 2007 11.01 PM
root / linksafe
0644
delegate.rb
8.808 KB
16 Jul 2009 12.35 AM
root / linksafe
0644
digest.rb
1.118 KB
28 Jul 2007 12.40 AM
root / linksafe
0644
drb.rb
0.019 KB
12 Feb 2007 11.01 PM
root / linksafe
0644
e2mmap.rb
4.037 KB
12 Feb 2007 11.01 PM
root / linksafe
0644
erb.rb
21.38 KB
23 Feb 2009 5.44 PM
root / linksafe
0644
eregex.rb
0.476 KB
12 Feb 2007 11.01 PM
root / linksafe
0644
expect.rb
0.618 KB
18 Feb 2008 1.17 AM
root / linksafe
0644
fileutils.rb
42.229 KB
20 May 2011 10.29 PM
root / linksafe
0644
finalize.rb
5.376 KB
12 Feb 2007 11.01 PM
root / linksafe
0644
find.rb
1.836 KB
12 Feb 2007 11.01 PM
root / linksafe
0644
forwardable.rb
6.163 KB
6 Jun 2008 8.05 AM
root / linksafe
0644
ftools.rb
6.168 KB
12 Feb 2007 11.01 PM
root / linksafe
0644
generator.rb
8.1 KB
10 Apr 2008 10.52 AM
root / linksafe
0644
getoptlong.rb
14.877 KB
12 Feb 2007 11.01 PM
root / linksafe
0644
getopts.rb
2.252 KB
12 Feb 2007 11.01 PM
root / linksafe
0644
gserver.rb
6.431 KB
12 Feb 2007 11.01 PM
root / linksafe
0644
importenv.rb
0.576 KB
12 Feb 2007 11.01 PM
root / linksafe
0644
ipaddr.rb
21.957 KB
12 Jul 2008 3.08 PM
root / linksafe
0644
irb.rb
7.43 KB
9 Aug 2009 8.44 AM
root / linksafe
0644
jcode.rb
4.297 KB
12 Feb 2007 11.01 PM
root / linksafe
0644
kconv.rb
8.124 KB
12 Feb 2007 11.01 PM
root / linksafe
0644
logger.rb
17.588 KB
30 May 2011 2.08 AM
root / linksafe
0644
mailread.rb
1.284 KB
12 Feb 2007 11.01 PM
root / linksafe
0644
mathn.rb
5.419 KB
12 Feb 2007 11.01 PM
root / linksafe
0644
matrix.rb
27.208 KB
24 Jan 2009 3.02 PM
root / linksafe
0644
md5.rb
0.401 KB
6 Mar 2007 10.09 AM
root / linksafe
0644
mkmf.rb
50.646 KB
4 Dec 2010 6.34 AM
root / linksafe
0644
monitor.rb
7.926 KB
25 Nov 2009 7.45 AM
root / linksafe
0644
mutex_m.rb
2.072 KB
12 Feb 2007 11.01 PM
root / linksafe
0644
observer.rb
5.154 KB
12 Feb 2007 11.01 PM
root / linksafe
0644
open-uri.rb
20.49 KB
8 Oct 2007 11.16 AM
root / linksafe
0644
open3.rb
2.098 KB
14 Dec 2009 4.28 AM
root / linksafe
0644
openssl.rb
0.562 KB
22 Nov 2010 7.21 AM
root / linksafe
0644
optparse.rb
47.121 KB
20 Feb 2009 11.43 AM
root / linksafe
0644
ostruct.rb
3.354 KB
26 May 2009 12.06 PM
root / linksafe
0644
parsearg.rb
1.554 KB
12 Feb 2007 11.01 PM
root / linksafe
0644
parsedate.rb
1.327 KB
12 Feb 2007 11.01 PM
root / linksafe
0644
pathname.rb
29.386 KB
23 Nov 2010 8.21 AM
root / linksafe
0644
ping.rb
1.481 KB
12 Feb 2007 11.01 PM
root / linksafe
0644
pp.rb
15.966 KB
7 Jun 2007 10.06 AM
root / linksafe
0644
prettyprint.rb
18.335 KB
16 Feb 2007 7.53 PM
root / linksafe
0644
profile.rb
0.088 KB
12 Feb 2007 11.01 PM
root / linksafe
0644
profiler.rb
1.589 KB
12 Feb 2007 11.01 PM
root / linksafe
0644
pstore.rb
11.149 KB
6 Jun 2008 8.05 AM
root / linksafe
0644
rational.rb
12.05 KB
8 Jun 2010 5.02 AM
root / linksafe
0644
readbytes.rb
0.815 KB
12 Feb 2007 11.01 PM
root / linksafe
0644
resolv-replace.rb
1.553 KB
8 Aug 2008 1.58 AM
root / linksafe
0644
resolv.rb
56.831 KB
23 Dec 2010 3.22 AM
root / linksafe
0644
rss.rb
0.492 KB
21 Oct 2007 12.19 PM
root / linksafe
0644
rubyunit.rb
0.176 KB
12 Feb 2007 11.01 PM
root / linksafe
0644
scanf.rb
20.633 KB
20 Jan 2009 3.23 AM
root / linksafe
0644
securerandom.rb
4.267 KB
10 Dec 2011 12.17 PM
root / linksafe
0644
set.rb
27.076 KB
9 Jun 2008 9.20 AM
root / linksafe
0644
sha1.rb
0.408 KB
6 Mar 2007 10.09 AM
root / linksafe
0644
shell.rb
4.655 KB
12 Feb 2007 11.01 PM
root / linksafe
0644
shellwords.rb
3.99 KB
21 Mar 2008 12.16 PM
root / linksafe
0644
singleton.rb
8.077 KB
3 Jul 2008 11.14 AM
root / linksafe
0644
sync.rb
6.086 KB
19 Feb 2009 4.41 PM
root / linksafe
0644
tempfile.rb
4.861 KB
21 Apr 2008 9.43 AM
root / linksafe
0644
thread.rb
0.102 KB
13 Feb 2007 7.39 PM
root / linksafe
0644
thwait.rb
4.316 KB
8 Jun 2010 7.08 AM
root / linksafe
0644
time.rb
31.58 KB
6 Jun 2008 8.05 AM
root / linksafe
0644
timeout.rb
3.005 KB
8 Jun 2010 6.24 AM
root / linksafe
0644
tmpdir.rb
3.694 KB
26 Jan 2009 2.12 AM
root / linksafe
0644
tracer.rb
2.727 KB
12 Feb 2007 11.01 PM
root / linksafe
0644
tsort.rb
7.993 KB
12 Feb 2007 11.01 PM
root / linksafe
0644
un.rb
4.537 KB
12 Feb 2007 11.01 PM
root / linksafe
0644
uri.rb
0.693 KB
15 Apr 2008 9.41 AM
root / linksafe
0644
weakref.rb
2.684 KB
12 Feb 2007 11.01 PM
root / linksafe
0644
webrick.rb
0.792 KB
12 Feb 2007 11.01 PM
root / linksafe
0644
yaml.rb
12.355 KB
19 Apr 2008 11.45 AM
root / linksafe
0644

GRAYBYTE WORDPRESS FILE MANAGER @ 2025 CONTACT ME
Static GIF