Biến môi trường của CGI

Một phần của tài liệu Tài liệu lập trình C++ tiếng Việt (Trang 175)

Lập trình Web trong C++

Biến môi trường của CGI

quan trọng trong khi viết bất kỳ CGI Program nào:

Tên biến Miêu tả

CONTENT_TYPE Kiểu dữ liệu của nội dung. Được sử dụng khi Client gửi nội dung đính kèm tới Server. Ví dụ: file upload

CONTENT_LENGTH Độ dài của thông tin truy vấn. Nó chỉ có sẵn cho các yêu cầu POST

HTTP_COOKIE Trả về các cookie đã thiết lập trong form là cặp key/value

HTTP_USER_AGENT Trường request-header là User-Agent chứa thông tin về User Agent bắt đầu yêu cầu đó. Nó là tên của trình duyệt web

http://vietjack.com/ Trang chia sẻ các bài học online miễn phí Trang 176

PATH_INFO Là path cho CGI script

QUERY_STRING Thông tin mã hóa URL được gửi với phương thức GET

REMOTE_ADDR Địa chỉ IP của host từ xa tạo yêu cầu đó. Nó có thể là hữu ích cho mục đích log hoặc authentication

REMOTE_HOST Tên đầy đủ của host tạo yêu cầu đó. Nếu thông tin này không có sẵn, thì REMOTE_ADDR có thể được sử dụng để lấy địa chỉ IP

REQUEST_METHOD Phương thức được sử dụng để tạo yêu cầu. Các phương thức phổ biến là GET và POST

SCRIPT_FILENAME Path đầy đủ tới CGI script

SCRIPT_NAME Tên của CGI script

SERVER_NAME Hostname hoặc địa chỉ IP của Server

SERVER_SOFTWARE Tên và phiên bản của phần mềm mà Server đang chạy

Sau đây là chương trình CGI nhỏ để liệt kê tất cả biến CGI. Bạn click vào đây để xem kết quả:Get Environment

#include <iostream> #include <stdlib.h> using namespace std;

http://vietjack.com/ Trang chia sẻ các bài học online miễn phí Trang 177 "COMSPEC", "DOCUMENT_ROOT", "GATEWAY_INTERFACE",

"HTTP_ACCEPT", "HTTP_ACCEPT_ENCODING", "HTTP_ACCEPT_LANGUAGE", "HTTP_CONNECTION", "HTTP_HOST", "HTTP_USER_AGENT", "PATH", "QUERY_STRING", "REMOTE_ADDR", "REMOTE_PORT", "REQUEST_METHOD", "REQUEST_URI", "SCRIPT_FILENAME", "SCRIPT_NAME", "SERVER_ADDR", "SERVER_ADMIN", "SERVER_NAME","SERVER_PORT","SERVER_PROTOCOL", "SERVER_SIGNATURE","SERVER_SOFTWARE" }; int main () { cout << "Content-type:text/html\r\n\r\n"; cout << "<html>\n"; cout << "<head>\n";

cout << "<title>CGI Envrionment Variables</title>\n"; cout << "</head>\n";

cout << "<body>\n";

cout << "<table border = \"0\" cellspacing = \"2\">";

for ( int i = 0; i < 24; i++ ) {

cout << "<tr><td>" << ENV[ i ] << "</td><td>"; // attempt to retrieve value of environment variable char *value = getenv( ENV[ i ].c_str() );

if ( value != 0 ){

cout << value; }else{

cout << "Environment variable does not exist."; }

cout << "</td></tr>\n"; }

http://vietjack.com/ Trang chia sẻ các bài học online miễn phí Trang 178 cout << "</table><\n"; cout << "</body>\n"; cout << "</html>\n";

(adsbygoogle = window.adsbygoogle || []).push({});

Một phần của tài liệu Tài liệu lập trình C++ tiếng Việt (Trang 175)