Lập trình CGI bằng Perl trên Linux

69 1.4K 8
Lập trình CGI bằng Perl trên Linux

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Nghiên cứu lập trình với ngôn ngữ Perl. Khái niệm về biến, mảng . . . trong Perl được đưa ra xem xét ở đâ

Lập trình CGI bằng Perl trên Linux 1 Lời cảm ơn Lời đầu tiên, tôi xin bày tỏ lòng biết ơn các thầy, các cô Khoa công nghệ thông tin cùng toàn thể các thầy giáo, cô giáo trờng Đại học kỹ thuật, những ngời đã trao cho tôi nhiều kiến thức quý báu để tôi có đợc ngày hôm nay. Xin trân thành cảm ơn thầy Đặng Bá L, thầy Nguyễn Tấn Khôi những ngời đã trực tiếp hớng dẫn tôi trong suốt thời gian làm đồ án. Đặc biệt xin chân thành cảm ơn các thầy Võ Ngọc Anh, thầy Nguyễn Tấn Khôi, những ngời đã cho tôi những ý tởng mang tính chiến lợc để tôi có thể hoàn thành đồ án này. Xin đợc gửi lời cảm ơn bạn bè, những ngời đã giúp đỡ, động viên tôi về tinh thần cũng nh vật chất trong xuốt thời gian qua. Cuối cùng, tôi xin bày tỏ lòng biết ơn gia đình, cha mẹ, anh chị, những ngời đã nuôi nấng, dạy dỗ tôi để tôi có đợc nh ngày hôm nay. Đà Nẵng Ngày 20 Tháng 6 năm 2000 Sinh viên thực hiện Nguyễn Hoàng Việt Nguyễn Hoàng Việt Khoa Công nghệ thông tin-Điện tử viễn thông Lập trình CGI bằng Perl trên Linux 2 Tóm tắt nội dung đồ án Đồ án này đợc chia làm 6 chơng: - Chơng I: Tổng quan về đề tài, giới thiệu các vấn đề sẽ đa ra nghiên cứu trong đề tài. Giới thiệu hệ điều hành Linux, công nghệ CGI ứng dung trên Linux, và ngôn ngữ Perl cùng với bài toán sẽ đa ra giải quyết. - Chơng II: Công nghệ CGI: gồm khái niệm, các thành phần của CGI và cách thức lập trình với CGI trong môi trờng Linux. Trong chơng này có đa ra một số ví dụ về các CGI scrips đợc viết bằng ngôn ngữ Perl và C để làm nổi bật tính không phụ thuộc ngôn ngữ lập trình của CGI - Chơng III: Nghiên cứu lập trình với ngôn ngữ Perl. Khái niệm về biến, mảng . . . trong Perl đợc đa ra xem xét ở đây. Đặc biệt là mảng liên hợp (assosiative array - hash ) và một số hàm chuển của Perl trong thao tác với mảng liên hợp. . . - Chơng IV: Phân tích bài toán quản lý sinh viên tại trờng Đậi học kỹ thuật Đà nẵng. Khảo sát các thành phần của hệ thống, các nguyên tắc quản lý, các đối tợng khai thác hệ thống. Mô hình hoá và giải quyết bài toán bằng ngôn ngữ Perl theo công nghệ CGI trên môi trờng Linux. - Chơng V: Kết quả thực hiện chơng trình. - Chơng VI: Kết luận, nêu những kết quả đạt đợc về lý thuyết, thực tiễn, những hạn chế, tính khả thi và hớng phát triển của đề tài . Nguyễn Hoàng Việt Khoa Công nghệ thông tin-Điện tử viễn thông Lập trình CGI bằng Perl trên Linux 3 mục lục mục lục .3 Tổng quan về đề tài 5 .I Tình hình sử dụng Linux 5 .II CGILinux .5 .III Ngôn ngữ Perl .6 .IV Mục tiêu đồ án 6 Công nghệ CGI 7 I. Tổng quan về CGI 7 I.1. CGI là gì ? 9 I.1.1 Khái niệm Gateway .9 I.1.2 Common Gateway Interface .10 I.2 Tại sao dùng CGI ? .11 II Lập trình với CGI 12 II.1 Lựa chọn ngôn ngữ 12 II.1.1 C/C++(Unix, Linux, Windows, Macintosh) 12 II.1.2 Perl (Unix, Linux, Windows, Macintosh) .12 II.1.3 Visual Basic (chỉ dùng trên môi trờng Windows) .13 II.2 Những vấn đề cơ bản trong lập trình CGI 13 II.2.1 Chơng trình ví dụ .13 II.2.2 Outputting CGI 15 II.2.2 Sơ lợc về HTML Forms .17 II.2.2.1 Thẻ FORM 18 II.2.2.2 Trờng text và Password .18 II.2.2.3 Nút Reset và Submit 19 II.2.2.4 Tham chiếu một số tags .19 II.2.3 Input CGI .19 Tóm lại 26 III. Cài đặt và chạy chơng trình CGI .27 III.1 Cấu hình Server để chạy CGI 28 III.2 Cài đặt CGI trên server UNIX 28 III.3 Chạy chơng trình CGI 29 Ngôn ngữ Perl 30 .I Giới thiệu 30 .II Biến trong Perl .31 II.1 Biến vô hớng(Scalar variables) .32 II.2 Khối lệnh và các cấu trúc điều khiển 32 II.3 Phạm vi của biến 34 II.4 Luật trích dẫn .35 .III Mảng và mảng liên hợp 37 III.1 Mảng .37 Nguyễn Hoàng Việt Khoa Công nghệ thông tin-Điện tử viễn thông Lập trình CGI bằng Perl trên Linux 4 III.2 Mảng liên hợp ( associative array - hashes ) .40 Phân tích và thiết kế hệ thống .42 .I Đặt vấn đề 42 I.1 Dẫn nhập .42 I.2 Yêu cầu 42 I.3 Các đối tợng khai thác hệ thống .42 I.3.1 Phòng đào tạo và công tác chính trị .42 I.3.2 Các vị giáo vụ khoa 43 I.3.3 Sinh viên, gia đình sinh viên ( ngời dùng trên mạng) .43 I.3.4 Những thuận lợi và khó khăn .43 )a Thuận lợi 43 )b Khó khăn .43 .II Phân tích hệ thống .43 II.1 Khảo sát hệ thống 43 II.2 Sơ đồ dòng dữ liệu .45 II.3 Từ điển dữ liệu 48 II.4 Mô hình thực thể kết hợp .49 II.5 Mô hình nhị nguyên 50 .III Xây dựng chơng trình .51 III.1 Chọn công cụ 51 III.2 Xây dựng mô hình Logic dữ liệu 52 III.3 Các thủ tục xử lý trong chơng trình 53 1. Module nhập danh sách lớp mới ( nhapds.cgi ) .53 2. Module tìm kiếm sinh viên ( timkiem.cgi ) 53 3. Module xem danh sách ( xem_danh_sach1.cgi ) .53 4. Module xem điểm ( xem_diem.cgi ) 53 kết quả thực hiện chơng trình .54 .I Xây dựng môi trờng hệ thống .54 .II Chạy chơng trình .55 Kết luận .58 .I Những kết quả đạt đợc 58 I.1 Lý thuyết 58 I.2 Thực tiễn 59 .II Tính khả thi 59 .III Hạn chế .59 .IV Hớng phát triển .59 Tài liệu tham khảo .60 Phụ lục 61 .I Module nhapds.cgi 61 .II Module xemdanhsach.cgi 63 .III Module xemdiem.cgi .65 .IV Module timkiem.cgi 67 Nguyễn Hoàng Việt Khoa Công nghệ thông tin-Điện tử viễn thông Lập trình CGI bằng Perl trên Linux 5 Chơng I Tổng quan về đề tài .I Tình hình sử dụng Linux Linux đợc xem là một hiện tợng trong lĩnh vực hệ điều hành vài năm gần đây. Báo chí, các diễn đàn, các phòng nói chuyên trực tuyến trên mạng, chơng trình "Tìm kiếm t- ơng lai" của VTV3 Đài truyền hình Việt nam . . .Thậm chí cả chơng trình "Khoa học vui" cho trẻ em của VTV1 cũng đều đã có bài đăng tải về Linux. Vậy thì Linux là gì vậy ? Linux là một hệ điều hành giống nh bao hệ điều hành khác. Nhng nó có nhiều tính năng mạnh mà không có ở một số hệ khác. Chúng ta, chắc ai cũng đã biết về một hệ điều hành tiền bối - UNIX. Khác với các hệ điều hành của Microsoft, UNIX không rễ sử dụng với những ngời mới làm quen, không đợc thân thiện cho lắm, nh- ng bù vào đó Unix là một hệ điều hành đa nhiệm thực sự, đợc viết ra để hỗ trợ cho nhiều ngời sử dụng, nó tận dụng đợc tối đa nguồn lực khần cứng của máy tính chính vì vậy Unix có thể chạy tốt trên một số máy tính với cấu hình rất hạn chế. Khả năng kết nối và điều hành mạng rất tốt, có thể đóng vai trò phục vụ trong hầu hết các ứng dụng Internet hiện nay. Unix là một môi trờng lập trình lý tởng cho các nhà lập trình viên chuyên nghiệp. Linux mang dòng máu của Unix, đợc phát triển bởi Sun MicroSystem. Linux có đầy đủ các tính năng vốn có của Unix và Linux đã thân thiện và dễ sử dụng hơn thông qua hệ thống X-Window. ở các nớc Châu Âu, đặc biệt là Pháp, Linux đợc đặc biệt yêu mến và sử dụng rộng rãi. Điều này cũng dễ giải thích do những tính năng tiến bộ của Linux: tính bảo mật cao, hệ thống kết nối mở, tích hợp nhiều công nghệ mới, nhiều ngôn ngữ lập trình đợc bao hàm trong hệ thống . . . ở nớc ta, Linux đợc biết đến trong vòng khoảng 3 năm trở lại đây. Chúng ta đã biết, máy tính đợc sử dụng thực sự rộng rãi ở nớc ta trong khoảng 10 năm nay, thời điểm mà các hệ điều hành của Microsoft đang thống trị - DOS, Windows 3.x. Theo truyền thống thì việc thay đổi một hệ điều hành là chuyện tơng đối khó ở nớc ta, phải đào tạo lại lớp ngời sử dụng, phải thay đổi hệ thống phần mềm . . .Hơn nữa Linux không phải dễ sử dụng cũng nh quảnt rị hệ thống. Chính vì vậy, hiện nay ở nớc ta Linux chỉ đợc sử dụng ở trong các môi trờng xí nghiệp mang tính chuyên môn cao, còn với ngời dùng máy tính PC thì Linux mới chỉ mang tính khái niệm, "có biết nhng cha dùng". .II CGILinux Sự phát triển của Internet đã giúp chúng ta gần nhau hơn trong mọi lĩnh vực, bất kể khoảng cách và ngày đêm. Nhng những Web server trên Internet đa số chỉ phục vụ các Nguyễn Hoàng Việt Khoa Công nghệ thông tin-Điện tử viễn thông Lập trình CGI bằng Perl trên Linux 6 dịch vụ mang tính truyền thông ở mức vĩ mô. Các ứng dụng để khai thác cơ sở dữ liệu để phục vụ trong các bài toán quản lý, quảng cáo, diễn đàn, nói chuyện trực tuyến trên mạng, các dịch vụ tìm kiếm nhanh . . . đều đòi hỏi ngời dùng phải viết chơng trình. CGI (Common Gateway Interface) là một công nghệ giúp mở rộng khả năng của Web server để giải quyết các bài toán mang tính đặc thù và có thể vận hành trên mạng. Việc chọn ngôn ngữ cho lập trình CGI ít bị hạn chế do tính mềm dẻo của nó và chỉ cần tuân thủ vài nguyên tắc, chúng ta có thể viết một chơng trình CGI. Chúng ta có thể sử dụng công nghệ CGI để áp dụng cho lập trình trong mọi hệ điều hành, miễn là hệ điều hành đó có thể kết nối mạng và có một phần mềm Web server chạy trên đó. Linux là một hệ điều hành mạng, có thể đóng vai trò phục vụ trong nhiều dịch vụ đang có hiện nay (WWW, FTP, Telnet, Wais. . .). Hơn nữa, Linux cung cấp một Web server nổi tiếng mang tên Apache Server, phiên bản mới nhất 1.1.5. Web server này hỗ trợ lập trình CGI rất mạnh. .III Ngôn ngữ Perl Perl (Practical Extraction and Reporting Language) có nhiều u điểm của một ngôn ngữ lập trình có cấu trúc giống nh C , Pascal . . . Song trên thực tế Perl là một ngôn ngữ diễn dịch (Interpreted language) có nhiều u điểm trong lập trình CGI. Thao tác xử lý chuỗi mạnh, có khả năng làm việc tốt với các biến môi trờng, dễ lập trình, dễ gỡ rối . . . Hơn nữa Perl đợc tích hợp bên trong Linux. .IV Mục tiêu đồ án Cùng với sự gợi ý của giáo viên hớng dẫn và nhận thức của bản thân về khả năng và tầm quan trọng của các lĩnh vực đã trình bày ở trên, tôi quyết định chọn hớng nghiên cứu cho đồ án tốt nghiệp nh sau: - Hiện thực và cài đặt hệ điều hành Linux - Nghiên cứu công nghệ CGI - Lập trình CGI với ngôn ngữ Perl Cuối cùng để minh họa cho kết quả nghiên cứu, tôi chọn và giải quyết bài toán: "Quản lý điểm sinh viên trờng Đại học kỹ thuật Đà Nẵng" với ý tởng nh sau: - Giúp phòng đào tạo quản lý điểm sinh viên của trờng Đại học kỹ thuật - Giúp cha mẹ sinh viên có thể biết đợc những thông tin về con mình kỳ nào, học môn gì, mấy điểm thông qua mạng Internet. Góp phần gắn kết mối liên lạc giữa gia đình và nhà trờng. - Đơn giản hoá việc liên lạc giữa các giáo vụ khoa và phòng đào tạo trong việc nộp điểm và cập nhật điểm cho sinh viên qua mỗi học kỳ. Nguyễn Hoàng Việt Khoa Công nghệ thông tin-Điện tử viễn thông Lập trình CGI bằng Perl trên Linux 7 Chơng II Công nghệ CGI (Common Gateway Interface) I. Tổng quan về CGI Hiện nay, hầu hết mọi ngời trên thế giới đều có thể gởi và nhận các thông tin trên mạng Internet. Nhờ có World Wide Web, những thông tin này đợc phân bố rộng rãi và dễ dàng tìm kiếm. Chắc hẳn trong chúng ta ai cũng đã biết về Web và bạn cũng nh tôi có thể đã hơn một lần truy cập vào các site của ngời khác nên giờ đây chúng ta có thể nhận ra rằng những từ viết tắt thoạt nhìn có vẻ đáng ngại nh HTTP, HTML . . . đơn giản chỉ là những mẫu tự viết tắt của Web hoặc là một phơng thức truyền thông nào đó trên Web. Web đã đợc thừa nhận là phơng tiện thông tin lý tởng qua sự phổ biến rộng rãi trên toàn cầu và sự không ngừng lớn mạnh của nó. Mặc dù đã có một số ý kiến thắc mắc về những tiện ích và những thuộc tính của Web và cũng có một số ý kiến cho rằng việc Web lớn mạnh và trở nên phổ biến nh vậy chủ yếu nhờ vào sự phát triển của các phơng tiện "siêu truyền thông" (media hyper), nhng không thể nghi ngờ gì nữa-Web rõ ràng là một phơng tiện quan trọng trong việc truyền thông tin các loại. Không chỉ các loại dịch vụ thông tin tức thời ( nh tin tức, tin thời tiết, thể thao. . . ) các tài liệu tham khảo có sẵn đợc điện tử hoá mà cả một khối lợng khổng lồ các loại dữ liệu khác cũng tồn tại trong Web. Web thực sự đã trở thành một công cụ hữu dụng về thông tin đại chúng cho hàng vạn thậm chí hàng triệu ngời trên khắp thế giới. Tại sao Web lại trở nên duy nhất và đáng giá nh vậy ? Trớc hết, Web là một giao diện siêu truyền thông cho các loại dữ liệu. Hãy xét việc lu trữ thông tin trên một ổ đĩa cứng trong một máy tính PC. Rõ ràng là dữ liệu đợc lu trữ và truyền đạt một cách tuyến tính giống nh một hệ thống hồ sơ vậy. Ví dụ nh chúng ta có một hệ thống các th mục, trong mỗi th mục chứa các tài liệu hoặc các th mục con (Xem hình 1.1). Web sử dụng một dạng khác biệt để truyền thông tin - đợc gọi là siêu truyền thông. Một giao diện siêu văn bản bao gồm một tài liệu và các links. Links là các từ mà chúng ta có thể kích chuột vào để xem các thông tin khác (Xem hình 1.2). Web mở rộng khái niệm siêu văn bản. Nó bao gồm các loại thông tin khác nữa nh các bảng biểu, âm thanh, hình ảnh, video . . . Nguyễn Hoàng Việt Khoa Công nghệ thông tin-Điện tử viễn thông Lập trình CGI bằng Perl trên Linux 8 Hầu hết mọi ngời đều cảm thấy tiện lợi khi sử dụng kiểu truyền và phân bổ thông tin dễ dàng và duy nhất này. Từ các vị giáo s ở các trờng đại học muốn truyền dữ liệu đến các đồng nghiệp cho đến các thơng gia những ngời muốn cung cấp thông tin về công ty của mình cho những ai muốn biết. Tuy nhiên, trong nhiều năm qua mọi ngời đã nhận ra rằng việc nhận thông tin cũng quan trọng không kém việc truyền thông tin Mặc dù Web cung cấp cho chúng ta một giao diện siêu truyền thông duy nhất, nhng ngoài Web ra còn có nhiều phơng thức khác mà hiệu quả cũng không kém. Đó là các dịch vụ mạng nh File Transfer Protocol (FTP) và Gopher xuất hiện khá lâu trớc Web. Th điện tử là phơng tiện truyền thông đầu tiên trong việc liên lạc và trao đổi thông tin trên mạng Internet và hầu hết các mạng khác từ khi chúng xuất hiện. Tại sao Web trở nên phổ biến nh vậy ? Rõ ràng là tính năng siêu truyền thông của Web đã tạo nên sự thành công lớn lao ấy, nhng để làm cho Web trở nên có hiệu quả ta phải chú ý đến tính năng tơng tác của nó. Nếu không có khả năng nhận thông tin đầu vào từ ngời sử dụng cũng nh khả năng cung cấp thông tin thì Web chỉ là một phơng tiện truyền thông hoàn toàn tĩnh. Ngời sử Nguyễn Hoàng Việt Khoa Công nghệ thông tin-Điện tử viễn thông Hình 1.1 Hình 1.1 Hình 1.2 Lập trình CGI bằng Perl trên Linux 9 dụng có thể tự do truy cập dữ liệu mà không phải phụ thuộc vào cấu trúc " cứng nhắc" đã đợc định sẵn. Cụm từ Web server có thể gấy nhầm lẫn vì nó hoặc đề cập đến một máy phục vụ Web hoặc đề cập đến phần mềm đang chạy trong máy đó - để nối kết nó với các Web browses. Khi Web browse yêu cầu truy cập một địa chỉ Web đã cho sẵn, việc đầu tiên là Web browse liên lạc với máy tính mang địa chỉ kia trên Internet, rồi gửi yêu cầu đến phần mềm chạy trong máy chủ. Phần mền này sẽ chạy tức thì và tơng ứng với mỗi yêu cầu nó sẽ gởi những trả lời thích hợp. Mặc dù các Web Server có thể truyền và nhận dữ liệu nhng chức năng của nó cũng hạn chế. Server thờng không hiểu các thông tin đầu vào bổ sung và nó thờng bỏ qua các thông tin này, trừ khi các nhà thiết kế ra nó đã cài đặt sẵn chơng trình để xử lý đối với các thông tin này. Để Server có thể giải quyết đợc nhiều thông tin cao cấp hơn là việc chỉ đơn thuần nhận và gửi các file đến các browse, chúng ta phải biết cách mở rộng chức năng của Web Server. Ví dụ, Web server không thể tìm ra cơ sở dữ liệu trên cơ sở một từ khoá mà ngời sử dụng nhập vào, nó chỉ có thể có đợc khả năng đó khi chúng ta lập trình cho nó. I.1. CGI là gì ? I.1.1 Khái niệm Gateway Các Web browser có thể truy cập trực tiếp đợc rất nhiều kiểu thông tin và dịc vụ thông tin nhng không có nghĩa là tất cả. Chẳng hạn nh Archie và Finger là hai dịch vụ không đợc hỗ trự trên môi trờng Web, hơn thế nữa không phải tất cả các nguồn thông tin đều tích hợp với Web, ví dụ nh các tài liệu động hoặc các cơ sở dữ liệu. Để giải quyết nh- ợc điểm này, hầu hết các Web server đều cung cấp phơng thức để tạo ra các trang Web động theo yêu cầu của ngời sử dụng thông qua các cổng giao tiếp (gateway). Các gateway giải quyết các vấn đề này bằng cách cung cấp một cơ cấu mở cho Web server. Một gateway có thể truy nhập đợc các nguồn thông tin không theo dạng chuẩn của Web (HTML), hoặc là các thông tin nằm bên ngoài Web server. Trên thực tế một gateway đơn giản chỉ là một kịch bản (Script) đợc ngời lập trình tạo ra, thực chất là một chơng trình đợc gọi thực hiện bởi Web server khi cần thiết. Thông thờng chúng đợc lu trữ tại một th mục đặc biệt và vị trí của th mục này đợc Web server biết đến và quản lý. Các gateway này phải có thuộc tính khả thi, và tuỳ theo từng hệ điều hành mà thuộc tính này có thể khác nhau. Chẳng hạn, dới Windows thì chúng phải đợc biết đến nh là các file . COM, . EXE hay . BAT; hoặc trong UNIX hay LINUX thì cờ khả thi đối với file đó phải đợc thiết lập. Mỗi khi Web server gọi một URL mà trỏ đến một kịch bản gateway, thì kịch bản đó lập tức đợc thực hiện. Sau đó, Web server sẽ đợi kịch bản kết thúc và lấy các kết quả trả về cho ngời sử dụng. Các gateway có thể lấy các thông tin đầu vào từ ngời sử dụng và trả về các tài liệu dới dạng các form HTML, các URL khác hay là các dạng dữ liệu khác. Nguyễn Hoàng Việt Khoa Công nghệ thông tin-Điện tử viễn thông Lập trình CGI bằng Perl trên Linux 10 I.1.2 Common Gateway Interface CGI là thuật ngữ viết tắt của cụm từ Common Gateway Interface, là một giao diện chuẩn dùng để trao đổi thông tin giữa các gateway và Web server. Các chơng trình CGI cho phép quản trị hệ thống tạo ra nhiều ứng dụng tinh vi nhằm chuyên môn hoá và tự động hoá rất nhiều tác vụ cho ngời dùng: những tiện ích cho phép tìm kiếm CSDL về thông tin đặc biệt, những tiện ích tìm kiếm theo chỉ mục trên mạng mà chắc chúng ta ai cũng đã có lần đợc thởng thức. CGI là một phần của Web Server, có thể giao tiếp với những chơng trình khác chạy trên Server. Với CGI, Web Server có thể gọi một chơng trình, trong khi dữ liệu của ngời sử dụng gởi đến chơng trình. Chơng trình sau đó xử lý dữ liệu và Server gởi trả lời của ch- ơng trình về cho Web Browser. CGI chỉ là chơng trình với những kiểu đầu vào và vài nguyên tắc nghiêm ngặt trên đầu ra chơng trình. Mọi thứ ở giữa chỉ là chơng trình. Dĩ nhiên, có những kỹ thuật dành riêng đặc biệt cho CGI. Đến đây chúng ta có thể trả lời cho câu hỏi đợc đặt ra ở đầu mục này CGI là gì ? . CGI là một giao diện giữa các kịch bản do ngời lập trình tạo ra và Web server, giúp chúng ta mở rộng khả năng của Server. Về mặt lý thuyết CGI giúp chúng ta mở rộng khả năng của Server trong việc nhận và phân tích thông tin đầu vào từ phía ngời sử dụng và trên cơ sở các thông tin đầu vào đó sử lý và kết xuất một dầu ra thích hợp. Chúng ta hãy xem hình vẽ minh hoạ sau : Nguyễn Hoàng Việt Khoa Công nghệ thông tin-Điện tử viễn thông [...].. .Lập trình CGI bằng Perl trên Linux 11 Server machine Client machine 2 1 WWW Browser CGI Applications Web Server 4 3 1 Browser gửi Form yêu cầu, cùng các thông tin về chương trình CGI 2 Server gọi chương trình CGI theo yêu cầu của Browser 3 Kết quả từ chương trình CGI trả về cho Server 4 Server đem kết quả nhận được từ CGI trả lời cho Browser I.2 Tại sao dùng CGI ? Thông thờng, nếu... bản, CGI là một giao tiếp phân phát thông tin từ Server đến chơng trình của bạn và từ chơng trình trả về cho Client CGI không phải là một ngôn ngữ lập trình Chơng trình thực hiện tất cả việc xử lý CGI chỉ nhận dữ liệu cho chơng trình CGI là chuẩn cho phép ngời lập trình viết những chơng trình cập nhật thông tin từ Server và cơ sở dữ liệu, sau đó gởi thông tin cho ngời sử dụng Sử dụng CGI, ngời lập trình. .. hết các chơng trình CGI đợc gọi thực hiện sau khi một form HTML đợc submit, chúng ta cần biết form HTML đó và biết nó gọi thực hiện chơng trình CGI nào trên server Nguyễn Hoàng Việt Khoa Công nghệ thông tin-Điện tử viễn thông Lập trình CGI bằng Perl trên Linux 30 Chơng III Ngôn ngữ Perl I Giới thiệu Perl (Practical Extraction and Reporting Language) có nhiều u điểm của một ngôn ngữ lập trình có cấu... là ít Khả năng to lớn của CGI là tăng thêm sức mạnh cho Web server CGI mang lại biện pháp giải quyết đơn giản và gọn ghẽ cho các vấn đề trên Giao thức CGI đa ra một qui chuẩn cho các chơng trình khi kết nối với Web Server Chúng ta có thể lập trình với bất Nguyễn Hoàng Việt Khoa Công nghệ thông tin-Điện tử viễn thông Lập trình CGI bằng Perl trên Linux 12 cứ một ngôn ngữ gì trên một máy tính nào để có... files, URLs , chơng trình CGI trả kết quả về cho Server (STDOUT), rồi gởi về cho trình duyệt Nguyễn Hoàng Việt Khoa Công nghệ thông tin-Điện tử viễn thông Lập trình CGI bằng Perl trên Linux 27 Chơng trình CGI còn định dạng dữ liệu, ví dụ : lấy thông tin và đa vào khuôn dạng các trang HTMLs, vì vậy ngời sử dụng có thể đọc nó qua trình duyệt Web Tóm lại, CGI làm việc qua 7 bớc: Trình duyệt gởi yêu cầu... cả các ngôn ngữ lập trình và các ngôn ngữ Script ngày nay đều đáp ứng đợc 3 yêu cầu trên Một vài ngôn ngữ phổ biến thích hợp cho lập trình CGI gồm : AppleScript, C/C++, C shell, Perl, tcl, Và Visual Basic II.1.1 C/C++(Unix, Linux, Windows, Macintosh) C/C++ là ngôn ngữ thông dụng với các nhà lập trình, một số ngời sử dụng chúng cho lập trình CGI Những ngôn ngữ này đòi hỏi những ngời lập trình có chút... máy Web server, programname là tên chơng trình CGI Ví dụ chúng ta có chơng trình Hello .cgi trong th mục /home/httpd /cgi- bin và trên Web server mang tên www.athv.edu thì để gọi chơng trình Hello .cgi chúng ta sử dụng URL sau: http://www.athv.edu /cgi- bin/Hello .cgi Nếu chúng ta muốn cấu hình cho server nhận biết một file là chơng trình CGI thông qua phần mở rộng cgi thì chúng ta cần thay đổi hai file cấu... \n"); } Nguyễn Hoàng Việt Khoa Công nghệ thông tin-Điện tử viễn thông Lập trình CGI bằng Perl trên Linux 15 Chú ý rằng phiên bản hello .cgi viết bằng Perl chung ta đã sử dụng lệnh print "Content-Type: text/html\n\n"; Trong khi phiên bản hello .cgi viết bằng C dùng printf("Content-Type: text/html\r\n\r\n"); Tạo sao câu lệnh print trong Perl lại kết thúc với hai newlines (/n) trong khi với C lệnh printf... viễn thông Lập trình CGI bằng Perl trên Linux 31 Hello World [athv /root]# 2 Theo cách này, chơng trình nguồn đợc soạn thảo bằng một trình soạn thảo nào đó ( có thể là vi, emacs .) và đợc lu trữ dới dạng một file văn bản bình thờng Sau đó sử dụng cú pháp perl Lệnh này báo cho perl biết sử dụng các dòng trong làm mã nguồn, dịch mã và cho thực hiện 3 Theo cách này, chơng trình nguồn... chơng trình với tên là hello .cgi và đặt nó vào nơi thích hợp (chúng ta sẽ bàn về cái gọi là nơi thích hợp này sau) Đối với hầu hết mọi ngời th mục thích hợp này đợc mang tên cgi- bin Bây giờ, gọi thực hiện chơng trình này từ Web server Điều đó có nghĩa là mở một URL http://hostname/directoryname/hello .cgi Nguyễn Hoàng Việt Khoa Công nghệ thông tin-Điện tử viễn thông Lập trình CGI bằng Perl trên Linux

Ngày đăng: 27/04/2013, 09:13

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan