Latest web development tutorials

루비 CGI 프로그래밍

루비, 웹 응용 프로그램 및 웹 도구 가장 일반적인에서뿐만 아니라 웹 개발 언어에 사용 하나,하지만 루비 개발 보편적 인 언어입니다.

뿐만 아니라 당신은 당신의 자신의 SMTP 서버, FTP 프로그램, 또는 루비 웹 서버를 작성하는 루비를 사용할 수 있지만 또한 루비 CGI 프로그램을 사용할 수 있습니다.

의 편집 루비 CGI를 배울 수있는 시간이 걸릴 수 있습니다.


웹 브라우징

더 나은 CGI 작동 방식을 이해하기 위해, 우리는 프로세스의 웹 페이지 또는 URL에 링크를 클릭 할 수 있습니다 :

  • 하나는 HTTP 웹 서버에 URL에 액세스하여 연결하는 브라우저를 사용합니다.
  • 도 2를 참조하면, 웹 서버는, 그렇지 않으면 에러 메시지를 반환 요청 메시지는 URL을 해석하고 파일의 내용을 리턴 있다면,이 경우 서버에 액세스 한 파일을보고한다 수신한다.
  • 도 3을 참조하면, 브라우저는 서버로부터 정보를 수신하고, 수신 된 파일 또는 에러 메시지를 표시한다.

CGI 프로그램은 루비 스크립트, 파이썬 스크립트, PERL 스크립트, 쉘 스크립트, C 또는 C ++ 프로그램이 될 수 있습니다.


CGI 차트

cgiarch


웹 서버 구성 및 지원

당신이 CGI 프로그래밍을 수행하기 전에 웹 서버가 CGI 및 CGI 처리기를 지원하도록 구성되어 있는지 확인하십시오.

아파치는 CGI 구성을 지원합니다 :

는 CGI 디렉토리를 설정합니다 :

ScriptAlias /cgi-bin/ /var/www/cgi-bin/

CGI 프로그램을 실행하는 모든 HTTP 서버에서 사전 구성된 디렉토리에 저장된다. 이 디렉토리는 CGI 디렉토리라고하며, 규칙에 따라, 그것은는 / var / www /에서의 cgi-bin 디렉토리 지정됩니다.

CGI 파일은 확장자가 .cgi, 루비는 .rb 확장을 사용할 수 있습니다.

기본적으로 CGI-bin 디렉토리를 실행하는 리눅스 서버 구성은 / var / www가있다.

당신이 CGI 스크립트를 실행하려면 다른 디렉토리를 지정하려면 다음과 같이 당신은 httpd.conf 구성 파일을 수정할 수 있습니다 :

<Directory "/var/www/cgi-bin">
   AllowOverride None
   Options +ExecCGI
   Order allow,deny
   Allow from all
</Directory>

우리는 루비 스크립트 파일의 .rb 끝을 액세스 할 수 있도록, .rb 접미사 AddHandler에 추가 :

AddHandler cgi-script .cgi .pl .rb

CGI 스크립트를 작성

기본 루비 CGI 코드를 다음과 같이 :

#!/usr/bin/ruby

puts "Content-type: text/html\n\n"
puts "<html><body>This is a test</body></html>"

당신은 파일 서버를 test.cgi하는 코드를 유지할 수 있습니다 마지막은 CGI 스크립트로 수행 할 수있는 권한을 부여 할 수 있습니다.

주소가 http://www.example.com/ 프로그램에 액세스하는 데 사용 http://www.example.com/test.cgi로 서있는 경우, 출력은 : "이것은 테스트입니다.".

웹 사이트에 액세스하는 브라우저는 웹 서버 사이트 디렉토리 test.cgi 파일을 찾을 것이며, 다음 HTML 문서에 액세스하여 루비 인터프리터 스크립트 코드를 해결하기.


사용는 cgi.rb

루비는 더 복잡한 CGI 스크립트를 작성하는 CGI 라이브러리를 호출 할 수 있습니다.

다음 코드는 CGI 스크립트를 생성하는 CGI 스크립트 라이브러리를 호출합니다.

#!/usr/bin/ruby

require 'cgi'

cgi = CGI.new
puts cgi.header
puts "<html><body>This is a test</body></html>"

다음 코드는 CGI 객체 및 인쇄 헤더 정보를 생성합니다.


양식 처리

사용 CGI 라이브러리는 URL :? /cgi-bin/test.cgi FIRSTNAME = 자라 & 성 = 알리와 같은 데이터 (URL에 또는 매개 변수)이 양식을 제출하는 방법에서 얻을 수있다.

당신은 [] 직접 매개 변수 이름 및 성을 얻으 CGI 번호를 사용할 수 있습니다 :

#!/usr/bin/ruby

require 'cgi'
cgi = CGI.new
cgi['FirstName'] # =>  ["Zara"]
cgi['LastName']  # =>  ["Ali"]

폼 데이터를 획득하기위한 또 다른 방법에있어서,

#!/usr/bin/ruby

require 'cgi'
cgi = CGI.new
h = cgi.params  # =>  {"FirstName"=>["Zara"],"LastName"=>["Ali"]}
h['FirstName']  # =>  ["Zara"]
h['LastName']   # =>  ["Ali"]

다음 코드는 모든 키를 검색하는 데 사용됩니다 :

#!/usr/bin/ruby

require 'cgi'
cgi = CGI.new
cgi.keys         # =>  ["FirstName", "LastName"]

양식이 동일한 이름의 여러 필드가 포함되어있는 경우, 다음 같은 필드의 값은 배열에 저장됩니다.

다음의 예는, "이름"3 개의 동일한 필드의 형태를 지정, "자라", "휴마"와 "Nuha"의 값 :

#!/usr/bin/ruby

require 'cgi'
cgi = CGI.new
cgi['name']        # => "Zara"
cgi.params['name'] # => ["Zara", "Huma", "Nuha"]
cgi.keys           # => ["name"]
cgi.params         # => {"name"=>["Zara", "Huma", "Nuha"]}

주 : 루비 자동 GET 및 POST 방법을 결정하는 것, 두 방법을 구별 할 필요가 없다.

여기에 관련 HML 코드는 다음과 같습니다

<html>
<body>
<form method="POST" action="http://www.example.com/test.cgi">
First Name :<input type="text" name="FirstName" value="" />
<br />
Last Name :<input type="text" name="LastName" value="" /> 

<input type="submit" value="Submit Data" />
</form>
</body>
</html>

작성 양식 및 HTML 양식

CGI는 HTML을 생성하는 방법은 많이, 각 HTML 태그에 대응하는 방법이 포함되어 있습니다. 이 방법을 사용하기 전에, 비는 CGI.new 객체를 생성하는 CGI해야합니다.

라벨 더 간단한 중첩을하기 위해,이 방법은 코드 블록으로 만족되며, 코드 블록은 콘텐츠 라벨 등의 문자열을 반환한다. 다음과 같습니다 :

#!/usr/bin/ruby

require "cgi"
cgi = CGI.new("html4")
cgi.out{
   cgi.html{
      cgi.head{ "\n"+cgi.title{"This Is a Test"} } +
      cgi.body{ "\n"+
         cgi.form{"\n"+
            cgi.hr +
            cgi.h1 { "A Form: " } + "\n"+
            cgi.textarea("get_text") +"\n"+
            cgi.br +
            cgi.submit
         }
      }
   }
}

문자열 탈출

(/) 슬래시 인용 부호 ( ") : 당신이 URL 또는 HTML 양식 데이터의 매개 변수를 처리 할 때, 당신은 탈출을 같은 특수 문자를 지정해야합니다.

루비 CGI 개체는 이러한 특수 문자를 이스케이프 처리하는 이는 cgi CGI.unescape 및 방법을 제공한다 :

#!/usr/bin/ruby

require 'cgi'
puts CGI.escape(Zara Ali/A Sweet & Sour Girl")

다음과 같이 위의 코드가 실행된다 :

#!/usr/bin/ruby

require 'cgi'
puts CGI.escape(Zara Ali/A Sweet & Sour Girl")

예제의 또 다른 세트 :

#!/usr/bin/ruby

require 'cgi'
puts CGI.escapeHTML('<h1>Zara Ali/A Sweet & Sour Girl</h1>')

다음과 같이 위의 코드가 실행된다 :

&lt;h1&gt;Zara Ali/A Sweet & Sour Girl&lt;/h1&gt;'

CGI 클래스 메서드는 일반적으로 사용되는

여기에 루비 CGI 클래스의 완전한 방법입니다

  • CGI 루비 - 표준 CGI 라이브러리와 관련된 방법

쿠키 및 세션