Các công cụ, môi trường hỗ trợ xây dựng và phát triển hệ thống

PHẦN I: GIỚI THIỆU CHUNG

Chương I: Tổng quan về đào tạo và học tập trực tuyến

I. Giới thiệu

II. Tìm hiểu về học tập trực tuyến

III. Tham khảo một số Website trực tuyến

IV. Tìm hiểu về giáo trình điện tử

Chương II: Tìm hiểu về việc xây dựng hệ thống CMS

I. Các vấn đề về xây dựng và triển khai CMS

II. Tiêu chuẩn đánh giá CMS

III. Ý nghĩa thực tiễn của hệ thống CMS

IV. Một số Website tham khảo

PHẦN II: PHÂN TÍCH THIẾT KẾ HỆ THỐNG

Chương I: Phân tích chức năng hệ thống

I. Đăng nhập-Đăng ký

II. Thư viện sách –giáo trình

III. Diễn đàn thảo lụân

Chương II: Sơ đồ phân rã chức năng

Chương III: Yêu cầu của hệ thống

I. Yêu cầu chức năng

II. Yêu cầu phi chức năng

Chương IV: Biểu đồ luồng dữ liệu

I. Biểu đồ luồng dữ liệu mức đỉnh

II. Biểu đồ luồng dữ liệu dưới mức đỉnh

Chương V: Các mô hình

I. Mô hình dữ liệu quan hệ

II. Mô hình tổ chức dữ liệu

III. Mô hình vật lý dữ liệu

Chương VI: Một số module xử lý chính của chương trình

Chương VII: Một số giao diện chính của chương trình

PHẦN III: CÁC CÔNG CỤ, MÔI TRƯỜNG HỖ TRỢ

XÂY DỰNG VÀ PHÁT TRIỂN HỆ THỐNG

Chương I: Sơ lược về Apache, PHP và MySQL

I. Apache Webserver

II. Giới thiệu PHP

III. MySQL là gì

IV. Truy nhập MySQL từ PHP

V. Lý do lựa chọn ngôn ngữ

Chương II: Sơ lược về Dreamweaver, HTML và FLASHMX

I. Sơ lược về Dreamweaver

II. Giới thiệu về HTML

III. Sơ lược về FLASHMX

PHẦN IV: TỔNG KẾT-HƯỚNG PHÁT TRIỂN

 CỦA ĐỒ ÁN

Chương I: Những kết quả đạt được và những vấn đề còn tồn tại.

I. Những kết quả đạt được

II. Những vấn đề còn tồn tại

Chương II: Hướng phát triển của đồ án

Lời Kết

Tài Liệu Tham Khảo

Nhận Xét Của Giáo Viên Hướng Dần

Nhận Xét Của Giáo Viên Phản Biện

 

 

 

doc76 trang | Chia sẻ: huong.duong | Lượt xem: 1299 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Các công cụ, môi trường hỗ trợ xây dựng và phát triển hệ thống, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
liệu về sách, tài liệu, bài viết, tin tức và những thông tin khác vv... phải được lưu trữ định kỳ để đề phòng khi có hỏng hóc xảy ra có thể khôi phục lại thông tin, dữ liệu. - Dữ liệu về sách, tài liệu, giáo trình được lưu trong bảng cơ sở dữ liệu, nội dung các file sách được upload và lưu trong các thư mục phân loại sách liên quan. Chương trình phải có khả năng ngăn chặn những người dùng truy cập trái phép để đảm bảo tính toàn vẹn của dữ liệu. Chương trình cũng có khả năng dễ sữa chửa ,bổ sung CHƯƠNG IV: BIỂU ĐỒ LUỒNG DỮ LIỆU I. Biểu đồ luồng dữ liệu mức đỉnh: *Ghi chú: Yêu cầu nhập username, password Thông báo chấp nhận/Từ chối Yêu cầu nhập thông tin đăng ký Thông tin cần xem Thông tin cần cập nhật Thông báo cập nhật Yêu cầu tìm kiếm Kết quả tìm kiếm Thông tin cần gởi Dữ liệu thông tin người dùng Dữ liệu thông tin sách/diễn đàn/tin tức Dữ liệu thông tin cập nhật a Đăng nhập (7) (4) Đăng ký (3) (2) Dữ liệu người dùng Cập nhật II (6) c (5) Tìm kiếm III ADMIN a USER (1) (2) (1) (2) Xem thông tin I (4) (8) (7) (8) Dữ liệu sách / diễn đàn / tin tức b b (6) (5) II. Biểu đồ dữ liệu dưới mức đỉnh Phân rã chức năng I: ADMIN / USER Đọc Sách I.1 Xem Tin Tức I.2 Xem Bài Viết I.3 Sách Tin tức Bài viết trên diễn đàn (6) (1) (2) (3) (4) (5) (a) (c) (b) Ghi chú: Yêu cầu đọc sách Thông tin sách Yêu cầu xem tin tức Nội dung tin tức Yêu cầu xem bài viết có trên diễn đàn Nộidung bài viết Dữ liệu thông tin sách Dữ liệu tin tức Dữ liệu về bài viết Phân rã chức năng II Ghi chú: Thông tin cần cập nhật Thông báo đã cập nhật Thông tin cần thêm/xoá/sửa Dữ liệu mới Dữ liệu cũ (1) (1) (1) (3) (3) (2) (2) (2) (2) (2) b ADMIN Cập nhật Sách II.1 Cập nhật phân loại Sách II.2 Cập nhật Tin tức II.3 Cập nhật Bài viết II.4 Cập nhật Chủ đề diễn đàn II.5 Sách Loại sách a b a Tin tức Bài viết Chủ đề a a a b b b USER (1) (2) (1) (2) Phân rã chức năng II.1 Ghi chú: Thông tin sách cần thêm Thông báo sách đã thêm Sách cần xoá Thông báo sách xoá Thông báo sách đã sửa Sách cần sửa Dữ liệu sách thêm Dữ liệu cũ Dữ liệu sách sửa ADMIN Thêm Sách II.1.1 Xoá Sách II.1.2 Sửa Sách II.1.3 Sách (1) (2) (6) (5) (4) (3) (c) (b) (b) (b) (a) Phân rã chức năng II.3 Ghi chú: Tin tức cần thêm Thông báo tin đã gởi Tin cần xoá Thông báo tin cần xoá Tin cần hiển thị Thông báo tin hiễn thị Tin cần sửa Thông báo tin đã sửa Dữ liệu tin mới Dữ liệu tin cũ Dữ liệu tin cần xoá Dữ liệu tin hiển thị Dữ liệu tin mới sửa Dữ liệu tin cần sửa Hiển thị tin II.3.3 ADMIN Thêm Tin II.3.1 Xoá tin II.3.2 Tin tức USER (1) (2) (4) (3) (1) (2) a b c Sửa tin II.3.4 (5) (6) (8) (7) d e f Phân rã chức năng II.4 ADMIN Thêm BV II.4.1 Xoá BV II.4.2 Bài viết USER (1) (2) (4) (3) (1) (2) a b c Ghi chú: Thông tin bài viết cần thêm Thông báo bài viết đã gởi Bài viết cần xoá Thông báo bài viết cần xoá Dữ liệu bài viết mới Dữ liệu bài viết cũ Dữ liệu bài viết cần xoá Phân rã chức năng III ADMIN USER TK SÁCH III.1 TK TIN III.2 TK BÀIVIẾT III.3 Sách Tin Bài viết (1) (2) (1) (2) (1) (2) (1) (2) (1) (2) (1) (2) a b c Ghi chú: Yêu cầu tìm kiếm Kết quả tìm kiếm Dữ liệu sách Dữ liệu tin Dữ liệu bài viết CHƯƠNG V: CÁC MÔ HÌNH I. Mô hình dữ liệu quan hệ II. Mô hình tổ chức dữ liệu: USER (USERNAME, PASSWORD, CAP, EMAIL). BAIVIET ( MABAIVIET, TIEUDE, NOIDUNG, CAP, NGAYGOIBAI, NGUOIGOI, CHUDE). CHUDE ( MACHUDE, TEN, MOTA). TINTUC ( MATIN, TIEUDE, NOIDUNG, HINHANH, NGAYTAO, NGUOIGOI, TRANGTIN). TRANGTIN (MATRANGTIN, TENTRANGTIN, MOTA). SACH (MASACH, TENSACH, MOTA, NOIDUNG, NGAYTAO, HINHANH, NGUOIGOI, NGONNGU, PHANLOAI). PHANMUCSACH ( MAPMSACH, TENPMSACH). NGONNGU ( MANN, TENNN). III. Mô hình vật lý dữ liệu: USER (USERNAME, PASSWORD, CAP, EMAIL). Field Name Data Type Field Size Validation Rule USERNAME(K) CHAR 16 6< = LEN() PASSWORD CHAR 16 6< = LEN() CAP INT 1 EMAIL VARCHAR 100 Ý nghĩa: USERNAME: Tên đăng ký và dùng khi đăng nhập. PASSWORD: Mật khẩu đăng ký và dùng đăng nhập CAP: Người quản trị(YES) hoặc người sử dụng (No). EMAIL: Email của người sử dụng để liên hệ BAIVIET ( MABAIVIET, TIEUDE, NOIDUNG, CAP, NGAYGOIBAI, NGUOIGOI, CHUDE). Thuộc tính Kiểu Field Size Validation Rule MABAIVIET(K) INT TIEUDE TEXT 20 NOIDUNG TEXT CAP INT 1 NGAYGOIBAI DATETIME CHUDE INT LOOKUP(CHUDE) NGUOIGOI CHAR 16 LOOKUP(USER) Ý nghĩa: MABAIVIET: Mã số để phân biệt các bài viết với nhau TIEUDE: Tiêu đề bài viết NOIDUNG: Nội dung bài viết CAP: Để phân biệt bài viết là bài trả lời hay là bài viết mới NGAYGOIBAI: Ngày bài được post lên hệ thống CHUDE: Cho biết bài viết thuộc chủ đề nào NGUOIGOI: Cho biết người gởi bài CHUDE ( MACHUDE, TEN, MOTA). Field Name Data Type Field Size Validation Rule MACHUDE(K) INT TEN CHAR 16 MOTA VARCHAR 255 Ý nghĩa: MACHUDE: Mã chủ đề để phân biệt các chủ đề khác nhau của diễn đàn TEN: Tên chủ đề của diễn đàn MOTA: Mô tả nội dung chủ đề được đề cập trong diễn đàn TINTUC ( MATIN, TIEUDE, NOIDUNG, HINHANH, NGAYTAO, NGUOIGOI, TRANGTIN). Field Name Data Type Field Size Validation Rule MATIN(K) INT TIEUDE VARCHAR 255 NOIDUNG TEXT HINHANH TEXT NGAYTAO INT NGUOIGOI INT LOOKUP(USER) TRANGTIN VARCHAR 16 LOOKUP(TRANGTIN) Ý nghĩa: MATIN: Khoá phân biệt các tin khác nhau TIEUDE: Tiêu đề của tin tức NOIDUNG: Nội dung tin tức đề cập đến NGAYTAO: Ngày tin được gởi lên hệ thống NGUOIGOI: Mã để nhận biết người gởi tin TRANGTIN: Để biết tin thuộc trang tin nào TRANGTIN (MATRANGTIN, TENTRANGTIN, MOTA). Field Name Data Type Field Size Validation Rule MATRANGTIN(K) INT TENTRANGTIN VARCHAR 16 MOTA TEXT Ý nghĩa: MATRANGTIN: Khoá phân biệt các trang tin trong mục tin TENTRANGTIN: Tên trang tin MOTA: Mô tả nội dung trang tin đề cập đến SACH (MASACH, TENSACH, MOTA, NOIDUNG, NGAYTAO, HINHANH, NGUOIGOI, NGONNGU, PHANLOAI). Field Name Data Type Field Size Validation Rule MASACH(K) INT TENSACH CHAR 60 MOTA VARCHAR 255 NOIDUNG VARCHAR 255 HINHANH TEXT NGAYTAO DATE PHANLOAI INT LOOKUP(PHANMUCSACH) NGUOIGOI CHAR 16 LOOKUP(USER) NGONNGU INT LOOKUP(NGONNGU) Ý nghĩa: MASACH: Mã phân biệt các sách khác nhau TENSACH: Tên của sách MOTA: Mô tả tóm lược nội dung sách NOIDUNG: Liên kết tới nội dung chính của sách HINHANH: Hình ảnh minh hoạ cho sách NGAYTAO: Ngày sách được đưa lên hệ thống PHANLOAI: Cho biết sách thuộc lĩnh vực nào NGUOIGOI: Người đưa sách lên hệ thống NGONNGU: Ngôn ngữ của sách sử dụng PHANMUCSACH ( MAPMSACH, TENPMSACH). Field Name Data Type Field Size Validation Rule MAPMSACH(K) INT TENPMSACH CHAR 40 Ý nghĩa: MAPMSACH: Mã phân loại các lĩnh vực của sách TENPMSACH: Tên của phân loại sách NGONNGU(MANN, TENNN) Field Name Data Type Field Size Validation Rule MANN(K) INT TENNN CHAR 20 MANN: Mã phân biệt giữa các ngôn ngữ TENNN: Tên ngôn ngữ. CHƯƠNG VI: MỘT SỐ MODULE XỬ LÝ CHÍNH CỦA CHƯƠNG TRÌNH Hàm xử lý đăng nhập Function login($username, $password) // check username and password with db // if yes, return true // else return false { // connect to db $conn = db_connect(); if (!$conn) return 0; // check if username is unique $result = mysql_query("select * from admin where username='$username' and password = password('$password')"); if (!$result) return 0; if (mysql_num_rows($result)>0) return 1; else return 0; } Hàm xử lý đăng ký Function register($username, $email, $password) // register new person with db // return true or error message { // connect to db $conn = db_connect(); if (!$conn) return "Khong ket noi duoc co so du lieu"; // check if username is unique $result = mysql_query("select * from reader where namereader='$username'"); if (!$result) return "Khong truy xuat duoc co so du lieu"; if (mysql_num_rows($result)>0) return "Ten bi trung, xin vui long dang ky voi ten khac !"; // if ok, put in db $result = mysql_query("insert into reader values ('$username', password('$password'), '$email')"); if (!$result) return "Could not register you in database - please try again later."; return true; } Hàm kiểm tra việc nhập dữ liệu vào các form nhập Function filled_out($form_vars) { // test that each variable has a value foreach ($form_vars as $key => $value) { if (!isset($key) || ($value == "")) return false; } return true; } Hàm kiểm tra tính chính xác của địa chỉ Email Function valid_email($address) { // check an email address is possibly valid if (ereg("^[a-zA-Z0-9_\.\-]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$", $address)) return true; else return false; } Hàm xử lý thêm sách Function insert_book($isbn, $title, $catid, $description,$bm_URL) // insert a new book into the database { $conn = db_connect(); $time=time(); // check category does not already exist $query = "select * from books where bookid='$bookid'"; $result = mysql_query($query); if (!$result || mysql_num_rows($result)!=0) return false; // insert new category $query = "insert into books values ('','$isbn','$title','$catid','$description','$bm_URL',$time,$time)"; $result = mysql_query($query); if (!$result) return false; else return true; } Hàm xử lý xoá sách Function delete_book($bookid) // Deletes the book identified by $isbn from the database. { $conn = db_connect(); $query = "delete from books where bookid='$bookid'"; $result = @mysql_query($query); if (!$result) return false; else return true; } Hàm xử lý sửa sách Function update_book ($oldisbn, $isbn, $title, $catid, $description,$bm_URL) // change details of book stored under $oldisbn in // the database to new details in arguments { $conn = db_connect(); $time=time(); $query = "update books set bookid='$bookid', isbn='$isbn', title ='$title', catid = '$catid', description = '$description', bm_URL= '$bm_URL', modified='$time' where isbn='$oldisbn'"; $result = @mysql_query($query); if (!$result) return false; else return true; } Hàm xừ lý truy vấn cơ sở dữ liệu sách Function get_book_details($bookid) { // query database for all details for a particular book if (!$bookid || $bookid=="") return false; $conn = db_connect(); $query = "select * from books where bookid='$bookid'"; $result = @mysql_query($query); if (!$result) return false; $result = @mysql_fetch_array($result); return $result; } Hàm xử lý hiển thị tất cả tiêu đề của bài viết trên diễn đàn Function expand_all(&$expanded,$maforum) { // mark all threads with children as to be shown expanded $conn = db_connect(); $query = "select postid from header where children = 1 and maforum=$maforum"; $result = mysql_query($query); $num = mysql_numrows($result); for($i = 0; $i<$num; $i++) { $expanded[mysql_result($result, $i, 0)]=true; } } Hàm xử lý lưu trữ bài viết post lên diễn đàn Function store_new_post($post) { // validate clean and store a new post $conn = db_connect(); // check no fields are blank if(!filled_out($post)) return false; $post = clean_all($post); //check parent exists if($post["parent"]!=0) { $query = "select postid from header where maforum='".$post['maforum']."' and postid = '".$post['parent']."'"; $result = mysql_query($query); if(mysql_numrows($result)!=1) { return false; } } // check not a duplicate $query = "select header.postid from header, body where header.postid = body.postid and header.parent = ".$post['parent']." and header.poster = '".$post['poster']."' and header.title = '".$post['title']."' and header.area = ".$post['area']." and header.maforum = ".$post['maforum']." and body.message = '".$post['message']."'"; $result = mysql_query($query); if (!$result) { return false; } if(mysql_numrows($result)>0) return mysql_result($result, 0, 0); $query = "insert into header values ('".$post['parent']."', '".$post['poster']."', '".$post['title']."', 0, '".$post['area']."', '".$post['maforum']."', now(), NULL )"; $result = mysql_query($query); if (!$result) { return false; } // note that our parent now has a child $query = "update header set children = 1 where maforum = '".$post['maforum']."' and postid = ".$post['parent']; $result = mysql_query($query); if (!$result) { return false; } // find our post id, note that there could be multiple headers // that are the same except for id and probably posted time $query = "select header.postid from header left join body on header.postid = body.postid where parent = '".$post["parent"]."' and poster = '".$post["poster"]."' and maforum= '".$post["maforum"]."' and title = '".$post["title"]."' and body.postid is NULL"; $result = mysql_query($query); if (!$result) { return false; } if(mysql_numrows($result)>0) $id = mysql_result($result, 0, 0); if($id) { $query = "insert into body values ($id, '".$post["message"]."')"; $result = mysql_query($query); if (!$result) { return false; } return $id; } } Xử lý hiển thị bài viết theo cấu trúc cây Class treenode { // each node in the tree has member variables containing // all the data for a post except the body of the message var $m_postid; var $m_title; var $m_poster; var $m_posted; var $m_children; var $m_childlist; var $m_depth; Function treenode($postid, $title, $poster, $posted, $children, $expand, $depth, $expanded, $sublist,$maforum) { // the constructor sets up the member variables, but more // importantly recursively creates lower parts of the tree $this->m_postid = $postid; $this->m_title = $title; $this->m_poster = $poster; $this->m_posted = $posted; $this->m_children =$children; $this->m_childlist = array(); $this->m_depth = $depth; // we only care what is below this node if it // has children and is marked to be expanded // sublists are always expanded if(($sublist||$expand) && $children) { $conn = db_connect(); $query = "select * from header where maforum=$maforum and parent = $postid order by posted desc"; $result = mysql_query($query); for ($count=0; $row = @mysql_fetch_array($result); $count++) { if($sublist||$expanded[ $row['postid'] ] == true) $expand = true; else $expand = false; $this->m_childlist[$count]= new treenode($row['postid'],$row['title'], $row['poster'],$row['posted'], $row['children'], $expand, $depth+1, $expanded, $sublist,$maforum); } } } Function display($row, $sublist = false) { // as this is an object, it is responsible for displaying itself // $row tells us what row of the display we are up to // so we know what color it should be // $sublist tells us whether we are on the main page // or the message page. Message pages should have // $sublist = true. // On a sublist, all messages are expanded and there are // no "+" or "-" symbols. // if this is the empty root node skip displaying if($this->m_depth>-1) { //color alternate rows echo "<td bgcolor = "; if ($row%2) echo "'#cccccc'>"; else echo "'#ffffff'>"; // indent replies to the depth of nesting for($i = 0; $im_depth; $i++) { echo "<img src = 'images/spacer.gif' height = 22 width = 22 alt = '' valign = bottom>"; } // display + or - or a spacer if ( !$sublist && $this->m_children && sizeof($this->m_childlist)) // we're on the main page, have some children, and they're expanded { // we are expanded - offer button to collapse echo "<a href = 'index.php?collapse=". $this->m_postid."#$this->m_postid' ><img src = 'images/minus.gif' valign = bottom height = 22 width = 22 alt = 'Collapse Thread' border = 0>"; } else if(!$sublist && $this->m_children) { // we are collapsed - offer button to expand echo "<a href = 'index.php?expand=". $this->m_postid."#$this->m_postid'><img src = 'images/plus.gif' height = 22 width = 22 alt = 'Expand Thread' border = 0>"; } else { // we have no children, or are in a sublist, do not give button echo "<img src = 'images/spacer.gif' height = 22 width = 22 alt = ''valign = bottom>"; } echo " m_postid ><a href = 'view_post.php?postid=$this->m_postid'>$this->m_title - $this->m_poster - ".reformat_date($this->m_posted).""; echo ""; // increment row counter to alternate colors $row++; } // call display on each of this node's children // note a node will only have children in its list if expanded $num_children = sizeof($this->m_childlist); for($i = 0; $i<$num_children; $i++) { $row = $this->m_childlist[$i]->display($row, $sublist); } return $row; } }; Xử lý biến session của user đăng nhập Function check_admin_user() // see if somebody is logged in and notify them if not { global $admin_user; if (session_is_registered("admin_user")) return true; else return false; } CHƯƠNG VII: MỘT SỐ GIAO DIỆN CHÍNH CỦA CHƯƠNG TRÌNH Trang chủ: Trang thư viện Trang tin Trang diễn đàn Trang quản trị thư viện Trang quản trị tin Phần III: CÁC CÔNG CỤ, MÔI TRƯỜNG HỖ TRỢ XÂY DỰNG VÀ PHÁT TRIỂN HỆ THỐNG Hệ thống mà em xây dựng là một trình ứng dụng được viết trên giao diện Web, người sử dụng có thể truy xuất các trang Web của hệ thống từ các máy con. Do vậy yêu cầu của hệ thống là phải có một máy chủ chạy phần mềm web server(như IIS,Apache,Personal Web Server…). Thứ hai, do đây là trang Web có tương tác cơ sở dữ liệu nên cần phải có một hệ quản trị cơ sở dữ liệu(như SQL Server,Ocracle,MySQL,MS Access,…). Tuy có nhiều cách lựa chọn về môi trường làm việc nhưng trong thời gian làm đồ án tốt nghiệp, em chọn môi trường và công cụ làm việc cho ứng dụng gồm: Web Server: Apache Web server Cơ sở dữ liệu: MySQL Ngôn ngữ: PHP Ngoài ra, còn sử dụng một số chức năng của một số phần mềm như Dreamweaver, Flash MX để chuẩn bị cho việc xây dựng và phát triển đề tài để tạo giao diện CHƯƠNG I: SƠ LƯỢC VỀ APACHE, PHP VÀ MYSQL I. Apache Web server Trên thị trường tồn tại nhiều phần mềm webserver khác nhau như: Xitami, Apache, IIS..., mỗi loại đều có ưu nhược điểm riêng. Điển hình là sản phẩm thương mại IIS do Microsoft phát triển, nó rất thích hợp với các trình dịch của Microsoft hơn còn với các trình biên dịch khác thì nó ít hỗ trợ, vả lại khả năng chống và chịu lỗi của IIS không cao . Còn Apache Web Server do công ty Apache phát triển, được cung cấp miễn phí, hỗ trợ nhiều ngôn ngữ, chạy trên nhiều môi trường như Microsoft, Linux, Unix. Apache là Web server phổ biến nhất hiện nay, chiếm khỏang gần 60% thị trường máy chủ Web trên thế giới chứng tỏ sự mạnh mẽ và đáng tin cậy của nó. Trên Web server sẽ chứa những site mà các máy con có thể truy xuất đến các site này. Cài đặt Apache và cấu hình Apache Có thể download Apache tại địa chỉ Có thể downloadn file .msi,( nếu trên máy có sẵn Windows Intaller), hoặc file .exe (dung lượng lớn hơn). Cài đặt theo các thông số mặc định của Apache. Sau khi cài đặt, cần phải sửa file cấu hình của Apache( mặc định là: C:\Program Files\Apache Group\Apache\conf\httpd.conf ), tìm đến dòng có chứa lệnh DocumentRoot, thay tham số bằng thư mục sẽ chứa các trang Web của mình (Ví dụ:C:/MyWeb,hoặc C:\\MyWeb). Sau đó khởi động lại Apache. II. Giới thiệu PHP: Cùng với Apache, PHP và MySQL đã trở thành chuẩn trên các máy chủ Web. Rất nhiều phần mềm Web mạnh sử dụng PHP và MySQL (PHP Nuke, Post Nuke, vBulletin…). PHP là ngôn ngữ có cú pháp gần giống Perl nhưng tốc độ dịch của nó được các chuyên gia đánh giá là nhanh hơn ASP 5 lần, chạy trên nhiều hệ điều hành như Unix, Window, Linux nó hỗ trợ kết nối các hệ cơ sở dữ liệu lớn như MySQL, ngoài ra nó còn được Apache hỗ trợ như là một modul cơ bản. 1. PHP là gì? PHP (Personal Home Page hay PHP Hypertext Preprocessor) được giới thiệu năm 1994 bởi R.Lerdoft, như một bộ sưu tập của một ngôn ngữ chưa chặt chẽ dựa vào Perl và các công cụ của trang chủ. Vì quá trình xử lý dựa trên máy chủ nên các trang Web được viết bằng PHP sẽ dễ nhìn hơn ở bất cứ hệ điều hành nào. Nói một cách ngắn gọn: PHP là một ngôn ngữ lập trình kiểu script, chạy trên Server và trả về mã HTML cho trình duyệt. Xu hướng sử dụng PHP trong việc thiết kế Web đang ngày càng phát triển trong giai đọan hiện nay và trong tương lai. Tới năm 1998, việc công bố phiên bản 3 thì PHP mới chính thức phát triển theo hướng tách riêng của mình. Giống như C và Perl, lúc này nó đã là một ngôn ngữ lập trình có cấu trúc và tính năng đa dạng, chính vì thế đã khuyến khích các nhà thiết kế Web sử dụng PHP. Nó có thể cung cấp một lượng cơ sở dữ liệu khá đồ sộ gồm cả MySQL, mSQL, dbm, Hyperwave, Informix, Ocracle, nó cũng có thể làm việc với các hình ảnh, các file dữ liệu, FTP, XML, và host của các kỹ thuật ứng dụng khác. Mã PHP được đặt trong một kiểu tag đặc biệt cho phép ta có thể vào họăc ra khỏi chế độ PHP, cú pháp của PHP cơ bản cũng giống như một số ngôn ngữ lập trình khác, đặc biệt là C và Perl. PHP được nhận dạng dưới 4 dạng phiên bản: a.Ví dụ: <?php //bắt đầu php echo”Hello World”; ?> //Kết thúc php b.Ví dụ Echo”Hello,World”; c.Ví dụ <? Echo”Hello,World”; ?> d.Ví dụ: <% echo “Hello,World”; %> Tuy nhiên phiên bản đầu tiên vẫn được ưa chuộng và dùng phổ biến hơn. 2. Cài đặt và cấu hình PHP Download PHP tại giải nén ( ví dụ:C:\PHP) Vào file cấu hình của Apache (Mặc định là C:\Program Files\Apache Group\Apache\conf\httpd.conf) để setup PHP ở chế độ CGI. ScriptAlias/php/"c:/php" AddType application/x-httpd-php .php .phtml Action application/x-httpd-php"/php/php.exe" Nếu muốn sử dụng PHP như là một module của Apache, chuyển file php4ts.dll trong thư mục của PHP sang thư mục C:\WINDOWS\SYSTEM (Với WIN9X/ME/XP) hoặc thư mục WINNT\SYSTEM32 ( Với WINNT/2000). Sau đó thêm các dòng lệnh sau vào file httd.conf của Apache. LoadMoule php4_module c:/php/sapi/php4apache.dll AddType application/x-httpd-php .php .phtml Khởi động lại Apache. 3. Các kiểu dữ liệu: 3.1 Số nguyên: Được khai báo và sử dụng giá trị giống như C: VD: $a=1234; $a = -123; 3.2 Số thực: VD:$a= 1.323; $a=1.2e3; Chú ý: Khi sử dụng các số thực tế để tính tóan, có thể làm mất giá trị của nó. Vì vậy, nên sử dụng các hàm tóan học trong thư viện chuẩn để tính toán. 3.3 Xâu: Có 2 cách để xác đinh 1 xâu: Đặt giữa 2 dấu nháy kép(“”) hoặc giữa 2 dấu nháy đơn (‘’).Chú ý là các biến giá trị sẽ không được khai triển trong xâu giữa 2 dấu ngoặc đơn. 3.4 Mảng: Mảng thực chất là gồm 2 bảng: Bảng chỉ số và bảng liên kết a. Mảng 1 chiều: Có thể dùng hàm list(), array() để liệt kê ca(c giá trị của từng phần tử trong mảng để tạo mảng. Có thể thêm các giá trị vào mảng để tạo thành 1 mảng --> Dùng giống trong C. Có thể dùng các hàm asort(), arsort(), ksort(), rsort(), sort(), uasort(), usort(), and uksort() để sắp xếp mảng. Tùy thuộc vào việc sắp xếp theo kiểu gì. b.Mảng nhiều chiều: Tương tự như C, có thể dùng như VD sau: $a[1]  = $f; $a["foo"]  = $f; $a[1][0] = $f; $a["foo"][2] = $f; $a[3]["bar"] = $f; PHP không yêu cầu phải khai báo trước kiểu dữ liệu cho các biến, kiểu dữ liệu của biến sẽ phụ thuộc vào kiểu dữ liệu mà bạn gán cho nó. VD : $foo = "0"

Các file đính kèm theo tài liệu này:

  • docDA0667.doc
Tài liệu liên quan