Vo minh truong 102991 bao cao thuc tap

39
B Công Thương Trưng Đi Hc Công Nghip Thnh Ph H Ch Minh Khoa Công Ngh Thông Tin BO CO THC TP TT NGHIP Đ TI: XÂY DNG PHN MM QUN L HC SINH TRÊN PHP & MYSQL Tên công ty thực tập : GIO VIÊN PHỤ TRCH :THI LÊ MỸ LOAN GIO VIÊN PHỤ TRCH : H TÊN SINH VIÊN THC TP :VÕ MINH TRƯỜNG 1

Transcript of Vo minh truong 102991 bao cao thuc tap

Page 1: Vo minh truong 102991 bao cao thuc tap

Bô Công Thương

Trương Đai Hoc Công Nghiêp Thanh Phô Hô Chi Minh

Khoa Công Nghê Thông Tin

BAO CAO THƯC TÂP TÔT NGHIÊP

ĐÊ TAI: XÂY DƯNG PHÂN MÊM QUAN LY HOC SINH TRÊN PHP & MYSQL

Tên công ty thực tập :

GIAO VIÊN PHỤ TRACH :THAI LÊ MỸ LOANGIAO VIÊN PHỤ TRACH :

HO TÊN SINH VIÊN THƯC TÂP :VÕ MINH TRƯỜNG

1

Page 2: Vo minh truong 102991 bao cao thuc tap

LỜI CAM ƠN---oOo---

Em xin chân thanh cam ơn Ban Giam Hiêu Nha Trương ĐH Công Nghiêp TP.HCM. Ban Chu Nhiêm Khoa CNTT đa tao cơ hôi cho em tiêp xuc thực tê, biêt đươc quy trinh cua trung tâm đao tao quan tri mang & an ninh mang quôc tê ATHENA như thê nao, em cung chân thanh cam ơn thây cô ơ khoa CNTT cung như ơ trung tâm ATHENA tận tinh giup em. Tận tuy truyên đat nhưng y kiên thực quy bau trong thơi gian thực tập, giup em co nhưng kiên thưc trang bi sau nay.Em cung chân thanh cam ơn cô Thai Lê My Loan giao viên thực tập hương dân va cac thây cô trong khoa đa trực tiêp hương dân giup em hoan thanh đê tai nay

TP.HCM ngay 21 thang 3 năm 2014Sinh viên thực hiênVo Minh Trương

2

Page 3: Vo minh truong 102991 bao cao thuc tap

NHÂN XET CUA GIAO VIÊN..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

.........................................................................................

.........................................................................................NHÂN XET CUA NƠI THƯC TÂP

......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

3

Page 4: Vo minh truong 102991 bao cao thuc tap

MỤC LỤC

A.Phần mở đầu .................................................... Giới thiệu trung tâm ATHENA...................B.Phần tổng quan ............................................... 1.Lý do chọn đề tài ...................................... 2.giới thiệu so lược về ứng dụng:............... C.Mô tả bài toán: 1.hiện trạng hệ thống:................................... 2.Mô tả bài toán :......................................... 3.Đối tượng sử dụng:................................... 4.Yêu cầu hệ thống:..................................... 5 .Quản lý điểm :...........................................D.Cơ sở lý thuyết :................................................ i.giới thiệu về Php & MySQL..........................

Định nghĩa:............................................. Lịch sử phát triển của Php & MySQL... Tại sao lại sử dụng

MySQL?.............. Một số đặc điểm của

MySQL.............. Các bước xây dựng chương trình có kết

nối tới CSDL: Thiết lập kêt nối tới

MySQL...................

Thực hiện các truy vấn thêm, xóa, sửa bản ghi thông qua câu lệnh SQL

Tăng tốc độ xử lý CSDL MySQL Hàm trong PHP Các câu lệnh gán và rẽ nhánh trong PHP Các kiểu dữ liệu trong PHP

E.Xây dựng,thiết kế cài đặt chương trình........

4

Page 5: Vo minh truong 102991 bao cao thuc tap

Yêu cầu : Xây dựng bảng CSDL ....... Thiết kế CSDL..................... Làm trên Internet ,Sever VPS.. Triển khai soucre code lên VPS.. Tích hợp domain ........................ Backup Résore_database.......

F.Thao tác thực hiện:..................................

A.Phần mở đầu : Giới thiệu về trung tâm ATHENA :

5

Page 6: Vo minh truong 102991 bao cao thuc tap

Trung Tâm Đào Tạo Quản Trị Mạng & An Ninh Mạng Quốc Tế ATHENA được thành lập từ năm 2004, là một tổ chức qui tụ nhiều trí thức trẻ Việt Nam đầy năng động, nhiệt huyết và kinh nghiệm trong lãnh vực CNTT, với tâm huyết góp phần vào công cuộc thúc đẩy tiến trình đưa công nghệ thông tin là ngành kinh tế mũi nhọn, góp phần phát triển nước nhà .Lĩnh vực hoạt động chính :

+Trung tâm  ATHENA đã và đang tập trung chủ yếu vào đào tạo  chuyên sâu  quản trị mạng, an ninh mạng, thương mại điện tử theo các tiêu chuẩn quốc tế của các hãng nổi tiếng như Microsoft, Cisco, Oracle, Linux LPI , CEH,..

Đội ngũ giảng viên :

+Tất cả các giảng viên trung tâm ATHENA có đều tốt nghiệp từ các trường đại học hàng đầu trong nước .... Tất cả  giảng viên ATHENA đều phải có các chứng chỉ quốc tế như MCSA, MCSE, CCNA, CCNP, Security+, CEH,có bằng sư phạm Quốc tế (Microsoft Certified Trainer).Đây là các chứng chỉ chuyên môn bắt buộc để đủ điều kiện tham gia giảng dạy tại trung tâm ATHENA+Bên cạnh đó,Các giảng viên ATHENA thường đi tu nghiệp và cập nhật kiến thức công nghệ mới từ các nước tiên tiến như Mỹ , Pháp, Hà Lan, Singapore,... và truyền đạt các công nghệ mới này trong các chương trình đào tạo tại trung tâm ATHENACơ sở vật chất :  

+Thiết bị đầy đủ và hiện đại +Chương trình cập nhật liên tục, bảo đảm học viên luôn tiếp cận với

6

Page 7: Vo minh truong 102991 bao cao thuc tap

những công nghệ mới nhất. +Phòng máy rộng rãi, thoáng mát

TRUNG TÂM ĐÀO TẠO QUẢN TRỊ MẠNG & AN NINH MẠNG QUỐC TẾ ATHENACơ sở 1: 92 Nguyễn Đình Chiểu, phường Đa Kao, Q1. Điện thoại: (08)38244041 - 090 78 79 477-094 323 00

99(Gần ngã tư Đinh Tiên Hoàng - Nguyễn Đình Chiểu) 

Cơ sở 2: 2 Bis Đinh Tiên Hoàng, phường Đa Kao, Q1. Điện thoại: (08)22103801 - 094 320 00 88

B.Phần tổng quan : 1.Lý do chọn đề tài :

- Hiện nay công nghệ thông tin được xem là một ngành mũi nhọn của các quốc gia, đặc biệt là các quốc gia dang phát triển, để tiến hành công nghiệp

7

Page 8: Vo minh truong 102991 bao cao thuc tap

hóa và hiện đại hóa đất nước. Sự bùng nổ thông tin và sự phát triển mạnh mẽ của thời đại công nghệ: phần cứng và phần mềm, ứng dụng web ngày càng trở nên phong phú, đa dạng và hoàn thiện hơn cho người dùng.

- Sự phát triển nhanh chóng của internet trong mọi lĩnh vực của đời sống đã khiến nó trở thành một phần không thể thiếu trong cuộc sống của chúng ta. Từ thương mại, y tế cho đến các tổ chức giáo dục tất cả đều chuyển sang ứng dụng trực tuyến để bắt kịp nhịp độ tiến triển của thế giới công nghệ số.

- 2 .giới thiệu sơ lược về ứng dụng: i.Mục Tiêu:

- Hệ thống website của trường được xây dựng với múc tiêu chủ yếu là hộ trợ công tác quản lý điểm, quản lý sinh viên, cập nhật các thông báo của ban giam hiệu-phòng công tác học sinh-các phòng khoa v.v lên website chính xác và nhanh nhất.

ii.Chức Năng Chính: Quản lý thông tin sinh viên. Quản lý bảng điểm sinh viên. Cập nhật thời khóa biểu. Upload chương trình khung của các ngành học. Thông tin của trường. Liệt kê danh sách các khoa, ngành học, lớp. Cập nhật các thông báo của trường.

C.Mô tả bài toán :

1.hiện trạng hệ thống:- Hiện tại việc quản lý điểm, quản lý hồ sơ sinh viên đang theo học tại trường

cũng như hồ sơ sinh viên mới vẵn còn thủ công là chính.- Các thông báo của trường đến sinh viên vẫn còn chậm trễ.- Các sinh viên mới chưa nắm rõ về các ngành do trường đào tạo cũng như các

khoa và cơ cấu tổ chức trường.- 2.Mô Tả Bài Toán:

Hệ thống website này sẽ giúp thực hiện việc quản lý điểm, hồ sơ sinh viên cũ và mới dễ dàng và trực tuyến.- Các thông báo của trường sẽ được cập nhật mốt cách nhanh nhất và chính

xác nhất.- Thông tin về khoa, ngành học được cập nhật để các sinh viên mới nắm rõ và

chọn ngành nghề mình yêu thích và phù hợp. 3.Đối tượng sử dụng: học sinh ,sinh viên .....giáo viên nhà trường,................. 4.Yêu cầu hệ thống:

o Có sự phân quyền người dùng theo đúng chức

năng của mình.o Hộ trợ việc nhập thông tin sinh viên mới vào

trường.

8

Page 9: Vo minh truong 102991 bao cao thuc tap

o Hộ trợ việc nhập điểm và tính điểm sinh viên

o Lưu hồ sơ sinh viên.

o Lưu trữ điểm, xếp loại học tập, điểm rèn luyện.

Lưu trữ thông tin ngành học, khoa, lớp, hệ đào tạo

- 5.Quản lý điểm :- Mỗi sinh viên theo học tại trường đều có môt bảng điểm riêng để đánh giá

việc học tại trường, ngoài ra sinh viên còn có một bảng điểm nữa đó là bảng điểm hạnh kiểm nhằm để đánh giá việc thực hiện nội qui nhà trường qua đó cũng là hạnh kiểm của sinh viên.

- Tùy theo hệ đào tạo mà có cách tính điểm khác nhau. D.Cơ sở lý thuyết : i.Giới thiệu về Php & MySQL :

PHP (viết tắt hồi quy "PHP: Hypertext Preprocessor") là một ngôn ngữ lập trìnhkịch bản hay một loại mã lệnh chủ yếu được dùng để phát triển các ứng dụng viết cho máy chủ, mã nguồn mở, dùng cho mục đích tổng quát. Nó rất thích hợp vớiweb và có thể dễ dàng nhúng vào trang HTML. Do được tối ưu hóa cho các ứng dụng web, tốc độ nhanh, nhỏ gọn, cú pháp giống C và Java, dễ học và thời gian xây dựng sản phẩm tương đối ngắn hơn so với các ngôn ngữ khác nên PHP đã nhanh chóng trở thành một ngôn ngữ lập trình web phổ biến nhất thế giới.

1. <html>2.3. <head>4.5. <title>Mã mẫu</title>6.7. </head>8.9. <body>10.11. <?php12.13. echo "Chào thế giới PHP!";14.15. ?>16.17. </body>18.19. </html>20.

9

Page 10: Vo minh truong 102991 bao cao thuc tap

Lịch sử phát triển của Php & My SQL :

PHP được phát triển từ một sản phẩm có tên là PHP/FI. PHP/FI do Rasmus Lerdorf tạo ra

năm 1995, ban đầu được xem như là một tập con đơn giản của các mã kịch bản Perl để theo

dõi tình hình truy cập đến bản sơ yếu lý lịch của ông trên mạng. Ông đã đặt tên cho bộ mã kịch

bản này là 'Personal Home Page Tools'. Khi cần đến các chức năng rộng hơn, Rasmus đã viết

ra một bộ thực thi bằng C lớn hơn để có thể truy vấn tới các cơ sở dữ liệu và giúp cho người

sử dụng phát triển các ứng dụng web đơn giản. Rasmus đã quyết định công bố mã nguồn của

PHP/FI cho mọi người xem, sử dụng cũng như sửa các lỗi có trong nó đồng thời cải tiến mã

nguồn.

PHP/FI, viết tắt từ "Personal Home Page/Forms Interpreter", bao gồm một số các chức năng cơ

bản cho PHP như ta đã biết đến chúng ngày nay. Nó có các biến kiểu như Perl, thông dịch tự

động các biến của form và cú pháp HTML nhúng. Cú pháp này giống như của Perl, mặc dù hạn

chế hơn nhiều, đơn giản và có phần thiếu nhất quán.

Vào năm 1997, PHP/FI 2.0, lần viết lại thứ hai của phiên bản C, đã thu hút được hàng ngàn

người sử dụng trên toàn thế giới với xấp xỉ 50.000 tên miền đã được ghi nhận là có cài đặt nó,

chiếm khoảng 1% số tên miền có trên mạng Internet. Tuy đã có tới hàng nghìn người tham gia

đóng góp vào việc tu chỉnh mã nguồn của dự án này thì vào thời đó nó vẫn chủ yếu chỉ là dự án

của một người.

PHP/FI 2.0 được chính thức công bố vào tháng 11 năm 1997, sau một thời gian khá dài chỉ

được công bố dưới dạng các bản beta. Nhưng không lâu sau đó, nó đã được thay thế bởi các

bản alpha đầu tiên của PHP 3.0.

PHP 3.0 là phiên bản đầu tiên cho chúng ta thấy một hình ảnh gần gũi với các phiên bản PHP

mà chúng ta được biết ngày nay. Nó đã được Andi Gutmans và Zeev Suraski tạo ra năm 1997

sau khi viết lại hoàn toàn bộ mã nguồn trước đó. Lý do chính mà họ đã tạo ra phiên bản này là

do họ nhận thấy PHP/FI 2.0 hết sức yếu kém trong việc phát triển các ứng dụng thương mại

điện tử mà họ đang xúc tiến trong một dự án của trường đại học. Trong một nỗ lực hợp tác và

bắt đầu xây dựng dựa trên cơ sở người dùng đã có của PHP/FI, Andi, Rasmus và Zeev đã quyết

định hợp tác và công bố PHP 3.0 như là phiên bản thế hệ kế tiếp của PHP/FI 2.0, và chấm dứt

phát triển PHP/FI 2.0.

PHP 4[]

Vào mùa đông năm 1998, ngay sau khi PHP 3.0 chính thức được công bố, Andi Gutmans và

Zeev Suraski đã bắt đầu bắt tay vào việc viết lại phần lõi của PHP. Mục đích thiết kế là nhằm cải

tiến tốc độ xử lý các ứng dụng phức tạp, và cải tiến tính mô đun của cơ sở mã PHP. Những

ứng dụng như vậy đã chạy được trên PHP 3.0 dựa trên các tính năng mới và sự hỗ trợ khá

nhiều các cơ sở dữ liệu và API của bên thứ ba, nhưng PHP 3.0 đã không được thiết kế để xử lý

các ứng dụng phức tạp như thế này một cách có hiệu quả.

10

Page 11: Vo minh truong 102991 bao cao thuc tap

MySQL : MySQL là hệ quản trị cơ sở dữ liệu tự do nguồn mở phổ biến nhất thế giới và được các nhà

phát triển rất ưa chuộng trong quá trình phát triển ứng dụng. Vì MySQL là cơ sở dữ liệu tốc độ

cao, ổn định và dễ sử dụng, có tính khả chuyển, hoạt động trên nhiều hệ điều hành cung cấp

một hệ thống lớn các hàm tiện ích rất mạnh. Với tốc độ và tính bảo mật cao, MySQL rất thích

hợp cho các ứng dụng có truy cập CSDL trên internet. MySQL miễn phí hoàn toàn cho nên bạn

có thể tải về MySQL từ trang chủ. Nó có nhiều phiên bản cho các hệ điều hành khác nhau:

phiên bản Win32 cho các hệ điều hành dòng Windows, Linux, Mac OS

X, Unix,FreeBSD, NetBSD, Novell NetWare, SGI Irix, Solaris, SunOS, ...

MySQL là một trong những ví dụ rất cơ bản về Hệ Quản trị Cơ sở dữ liệu quan hệ sử dụng

Ngôn ngữ truy vấn có cấu trúc (SQL).

MySQL được sử dụng cho việc bổ trợ PHP, Perl, và nhiều ngôn ngữ khác, nó làm nơi lưu trữ

những thông tin trên các trang web viết bằng PHP hay Perl,...

Tại sao lại sử dụng MySQL?

MySQL là một phần mềm quản trị CSDL mã nguồn mở, nằm trong nhóm LAMP (Linux - Apache -MySQL - PHP)

Một số đặc điểm của MySQLMySQL là một phần mềm quản trị CSDL dạng

server-based (gần tương đương với SQL Server của Microsoft).MySQL quản lý dữ liệu thông qua các CSDL, mỗi CSDL có thể có nhiều bảng quan hệ chứa dữ liệu.MySQL có cơ chế phân quyền người sử dụng riêng, mỗi người dùng có thể được quản lý một hoặc nhiều CSDL khác nhau, mỗi người dùng có một tên truy cập (user name) và mật khẩu tương ứng để truy xuất đến CSDL.Khi ta truy vấn tới CSDL MySQL, ta phải cung cấp tên truy cập và mật khẩu của tài khỏan có quyền sử dụng CSDL đó. Nếu không, chúng ta sẽ không làm được gì cả.

Các bước xây dựng chương trình có kết nối tới CSDL:

Thông thường, trong một ứng dụng có giao tiếp với CSDL, ta phải làm theo bốn trình tự sau:Bước 1: Thiết lập kết nối tới CSDL.Bước 2: Lựa chọn CSDL.Bước 3: Tiến hành các truy vấn SQL, xử lý các kết quả trả về nếu cóBước 4: Đóng kết nối tới CSDL.

Nếu như trong lập trình thông thường trên Windows sử dụng các chương trình điều khiển trung gian (ADO, ODBC...) để thực hiện kết nối và truy vấn, thì trong PHP, khi lập trình tương tác với CSDL, chúng ta thường sử dụng thông qua các hàm.

11

Page 12: Vo minh truong 102991 bao cao thuc tap

Chú ý: Trước khi sử dụng PHP để lập trình với MySQL, hãy sử dụng chương trình quản lý phpMyAdmin để tạo trước một CSDL, vài bảng cũng như người dùng... để tiện thực hành. Bài hướng dẫn sử dụng phpMyAdmin sẽ được trình bày sau. 

Trong bài viết này, tôi sử dụng MySQL chạy trên nền máy chủ localhost, người sử dụng của CSDL này có username là mysql_user, mật khẩu là mysql_password

Thiết lập kêt nối tới MySQL

Để kết nối tới MySQL, ta sử dụng hàm mysql_connect()Cú pháp:PHP Code:mysql_connect(host,tên_truy_cập,mật_khẩu);  trong đó:host là chuỗi chứa tên (hoặc địa chỉ IP) của máy chủ cài đặt MySQL.tên_truy_cập là chuỗi chứa tên truy cập hợp lệ của CSDL cần kết nốimật_khẩu là chuỗi chứa mật khẩu tương ứng với tên truy cậpVí dụ:PHP Code:<?mysql_connect ("localhost", "thu_mot_ti","thu_hai_ti");?>Khi kết nối tới MySQL thành công, hàm sẽ trả về giá trị là một số nguyên định danh của liên kết, ngược lại, hàm trả về giá trị false.Ta có thể dùng hàm if để kiểm tra xem có kết nối được tới MySQL hay không:

PHP Code:<?php    $link = mysql_connect("localhost", "mysql_user", "mysql_password");    if (!$link)     {         echo "Không thể kết nối được tới CSDL MySQL";

12

Page 13: Vo minh truong 102991 bao cao thuc tap

     }?>

MySQL chạy trên nền máy chủ localhost, người sử dụng có username là mysql_user, mật khẩu là mysql_password.CSDL có tên là CMXQ_Forum, trong đó có một bảng là CMXQ_Users để lưu thông tin .Bảng CMXQ_Users có các trường sau:User_ID: Autonumber.// mã số của người dùngUser_Name: Varchar [20] // tên truy cập của người dùngUser_Pass: Varchar[64] //mật khẩu của người dùngUser_IP: Varchar [15] //Địa chỉ IP của người dùng.

Để thực thi một câu lệnh SQL bất kỳ trong PHP tác động lên MySQL, ta dùng hàm mysql_query 

hêm một bản ghi vào bảng.Ví dụ :muốn chèn thêm một người sử dụng có User_Name là "CMXQ", User_Pass là "123456", User_Post=0 ta làm như sau:PHP Code:<?$sql = "INSERT INTO CMXQ_Users (User_Name, User_Pass) VALUES ("CMXQ","123456",0);mysql_query ($sql);?>II. Xóa một bản ghi khỏi bảng.Trong trường hợp này, ta sử dụng câu lệnh SQL DELETE FROM:VD: tôi muốn xóa khỏi bảng CMXQ_Users tất cả những người có User_Name="CMXQ":PHP Code:<?$sql = "DELETE FROM CMXQ_Users WHERE User_Name='CMXQ'";mysql_query ($sql);?>III. Sửa thông tin của bản ghi trong bảng.Trong trường hợp này, tôi sử dụng cú pháp UPDATE:

13

Page 14: Vo minh truong 102991 bao cao thuc tap

VD: muốn cập nhật địa chỉ IP cho người có User_Name="CMXQ" với địa chỉ IP được lấy từ trình duyệt:PHP Code:<?$sql = "UPDATE CMXQ_Users SET User_IP ='" . $_SERVER['REMOTE_ADDR'] . "' Where User_Name='CMXQ'";mysql_query ($sql);?>

Khi kết nối tới CSDL MySQL, chúng ta có 2 hàm kết nối là mysql_connect() và mysql_pconnect(). Về cơ bản thì hai hàm này có các tham số y hệt nhau, nhưng nội hàm của chúng có những khác biệt đáng kể.

Theo lý thuyết, mỗi lần gọi hàm mysql_connect(), hệ thống sẽ khởi tạo một kết nối mới tới CSDL, còn khi sử dụng hàm mysql_pconnect(), hệ thống sẽ tận dụng kết nối đã được thiết lập trước đó. 0-ếu trang Web của chúng ta được triệu gọi nhiều lần trong một khoảng thời gian ngắn, hàm mysql_connect() sẽ tiêu tốn một lượng đáng kể tài nguyên của hệ thống để thiết lập kết nối. Vì vậy, hãy cố gắng sử dụng hàm kết nối mysql_pconnect().

Nhiều người thường thích truy vấn dạng "Select *...". Dấu * ở đây sẽ bắt hệ thống làm việc mệt nhọc hơn vì phải xử lý nhiều dữ liệu hơn. Dữ liệu trả về cũng tiêu tốn nhiều bộ nhớ hơn. Vì vậy, thay vì select *, hãy chỉ select những trường cần thiết.

Một vấn đề nữa là khi sử dụng hàm mysql_fetch_array, nhiều người thường bỏ qua các tham số tuỳ chọn. Nếu có thể, hãy sử dụng tham số

14

Page 15: Vo minh truong 102991 bao cao thuc tap

MYSQL_ASSOC, khi đó hệ thống sẽ trả về một mảng với chỉ số là tên trường, như vậy các bạn sẽ dễ hình dung và đỡ tốn bộ nhớ vì phải phát sinh thêm một mảng với chỉ số dạng số.

Hàm trong PHP :Các hàm dựng sẵn trong PHP (PHP Built-in functions) là các hàm đã được các nhà phát triển PHP cài đặt sẵn, và chúng ta chỉ việc đem ra sử dụng. Cần phân biệt các hàm này với các hàm do người dùng tự cài đặt (user functions). Các hàm do người dùng tự xây dựng chỉ có thể được dùng trong chương trình có chứa hàm đó. Khi chuyển qua một ứng dụng khác, nếu chúng ta không viết lại các hàm đó thì chúng ta sẽ không thể sử dụng.

Các câu lệnh gán và rẽ nhánh trong PHP :Lệnh gán

Lệnh này đã được học ở bài trước:Cú pháp:PHP Code:$ten_bien = gia_tri;  Ví dụ:

PHP Code:$ngay_sinh="1/4/1980";$que_quan="Thanh Hoa";$luong=300000;  2. Các câu lệnh rẽ nhánhTrong PHP có 2 dạng rẽ nhánh: rẽ hai nhánh (if) và rẽ nhiều nhánh.

Lệnh rẽ nhánh là một trong những câu lệnh quan trọng nhất của tất cả các ngôn ngữ lập trình. Nó

15

Page 16: Vo minh truong 102991 bao cao thuc tap

cho phép bạn thực thi một đoạn mã khi mà điều kiện chỉ định là đúng.

Trong PHP, lệnh rẽ nhánh có dạng sau:

PHP Code:if (điều kiện){công việc cần làm}Ví dụ:if ($name="Sinh"){     echo ("Good morning, my boss");}  Nếu khối câu lệnh cần làm chỉ bao gồm duy nhất một dòng lệnh, ta có thể bỏ cặp dấu {} :

PHP Code:if ($name="Sinh")     echo ("Good morning, my boss");Nhưng nếu nhiều hơn một dòng lệnh, ta phải đưa chúng vào cặp dấu ngoặc {}:

if ($name=="Sinh"){     echo ("Good morning, my boss");     echo ("Have a romantic day!");}  Đoạn lệnh trên sẽ kiểm tra nếu điều kiện biến $name = "Sinh" thì nó sẽ hiển thị lời chào. Còn nếu không thì nó không làm gì cả!

Điều kiện đặt vào có thể là đúng, có thể là sai, có thể là tổng hợp của nhiều điều kiện. Hãy xem ví dụ sau:

16

Page 17: Vo minh truong 102991 bao cao thuc tap

PHP Code:if ("false" )     echo ("Khong co gi ca");

if (($name=="sinh") && ($pass=="test"))     echo ($name. "đã nhập đúng password");  Đoạn lệnh trên có thể viết tương đương với:

PHP Code:if ($name=="sinh"){      if ($pass=="test")     echo ($name. "đã nhập đúng password");}  Như bạn thấy ở trên, trong một câu lệnh, chúng ta có thể chèn nhiều đoạn lệnh khác, người ta gọi đó là cấu trúc khối, tức là trong một khối lệnh, có thể có chứa nhiều khối lệnh con khác. Nếu bạn phải đọc mã nguồn của người khác, hi vọng bạn không bị hoa mắt vì hàng chục khối lệnh chen chúc vào nhau như vậy.

Chúng ta có thể sử dụng các toán tử &&, || hay xor để kết nối các điều kiện với nhau như bạn thấy ở trên

Câu lệnh rẽ nhánh đầy đủ:

Nếu điều kiện kiểm tra trả về false (sai), PHP cho phép chúng ta chỉ định thực thi một khối mã lệnh khác bằng từ khoá elseVí dụ:PHP Code:if (($name=="sinh") && ($pass=="test")){

17

Page 18: Vo minh truong 102991 bao cao thuc tap

     echo ("Good day, ".$name);}else{     echo {"Sai mat khau!")}  Chú ý đến một ngoại lệ sau: Trước từ khoá else không bao giờ có dấu chấm phẩy (.

Lệnh rẽ nhiều nhánh:

Với câu lệnh if, PHP cho phép chúng ta rẽ nhiều nhánh thông qua từ khoá elseif:

PHP Code:if (dieu_kien1){     doan_lenh_1;}elseif (dieu_kien_2){     doan_lenh_2}elseif (dieu_kien_3)} // bao nhiêu từ khoá elseif cũng đượcelse{     doan_lenh_n}  Ví dụ:

PHP Code:if ($thu==2){     echo ("Chao co, van, su, ly");}elseif ($thu==3)

18

Page 19: Vo minh truong 102991 bao cao thuc tap

{     echo (" Hoa, Sinh, Dia, GDCD");}elseif ($thu==4){     echo ("KTCN, Van, Toan, Tieng Anh");}elseif ($thu==5){     echo (" Hoa, Toan, Van, Tin");}elseif ($thu==6){     echo ("Toan, Van, Anh, Sinh hoat");}else{     Trong ví dụ trên, chúng ta đã lặp đi lặp lại thao tác kiểm tra giá trị của biến $thu, mặc dù nó không thay đổi qua các dòng. Để khắc phục sự dài dòng này, PHP cho phép ta sử dụng câu lệnh switch. Câu lệnh này sẽ được sử dụng để kiểm tra khi muốn xem xét qua nhiều giá trị của một biến:

PHP Code:switch ($bien){Case gia_tri 1:     doan_lenh_1;Case gia_tri 2:     doan_lenh_2;Case gia_tri n:     doan_lenh_n;default:     doan_lenh_khac;}  Ví dụ:

19

Page 20: Vo minh truong 102991 bao cao thuc tap

PHP Code:switch ($thu){case 2:     echo ("Chao co, van, su, ly");case 3:     echo (" Hoa, Sinh, Dia, GDCD");case 4:     echo ("KTCN, Van, Toan, Tieng Anh");case 5:     echo (" Hoa, Toan, Van, Tin");case 6:     echo ("Toan, Van, Anh, Sinh hoat");default:     Câu lệnh switch sẽ ước lượng giá trị của biến $thu, và so sánh nó với giá trị của mệnh đề case. Khi một giá trị hợp lệ được tìm thấy, nó sẽ thực hiện câu lệnh tương ứng với giá trị đó. Còn nếu không, nó sẽ tự động thực hiện câu lệnh trong mệnh đề default. Hãy chú ý rằng mệnh đề defaul là tuỳ chọn (bạn có thể có nó hoặc không cần nó)

Các kiểu dữ liệu trong PHP

PHP có 3 kiểu dữ liệu cơ bản: Integer, double và string

Kiểu giá trị Integer sử dụng 4 byte của bộ nhớ. Đây là kiểu giá trị nguyên (không phải là số thực) và có giá trị nằm trong khoảng từ -2 tỷ đến 2 tỷ. Kiểu dữ liệu double là kiểu dữ liệu số thực, cho phép chứa các số thưc. Kiểu String được sử dụng để chứa các dữ liệu như là các ký tự văn bản, ký tự đặc biệt và các chữ số. Dữ liệu kiểu string được đặt trong cặp dấu ngoặc

20

Page 21: Vo minh truong 102991 bao cao thuc tap

kép ("") chỉ định một xâu (hay còn gọi là chuỗi ký tự).

Ví dụ:2: Kiểu integer;2.0: kiểu double"2": Kiểu xâu"2 gio": Kiểu xâu

E.Xây dựng,thiết kế cài đặt chương trình1. phpMyadmin là một công cụ để quản lý cơ

sở dữ liệu MySQL và là công cụ hoàn toàn miễn phí

Tạo database bằng PHP:

Để tạo mới database các bạn chỉ việc nhập tên cần tạo vào textbox và nhấn nút “Create” như hình sau :

Tạo table (bảng) :Sau khi tạo database xong thì các bạn sẽ thấy 1

form nhập liệu như hình sau :

21

Page 22: Vo minh truong 102991 bao cao thuc tap

chỉ việc nhập tên table và số trường (field) muốn tạo. Trong ví dụ này mình đặt tên bảng là “web_members” và có 4 trường (id, name, lastname, email) . có thể nhìn hình bên dưới để dễ hiểu hơn

Tạo table bằng cách sử dụng câu lệnh SQL:

copy đoạn code sau và dán (paste) nó vào ô trống và nhấn nút ” Go ” để thực thi câu lệnh

22

Page 23: Vo minh truong 102991 bao cao thuc tap

CREATE TABLE `web_members` (`id` int(4) NOT NULL auto_increment,`name` varchar(65) NOT NULL default '',`lastname` varchar(65) NOT NULL default '',`email` varchar(65) NOT NULL default '',PRIMARY KEY (`id`)) TYPE=MyISAM AUTO_INCREMENT=1 ;

Sao lưu ( Export ) database :click chuột vào tab Export và click vào

tùy chọn như hình bên dưới

lược đồ quan hệ:BANG SINH VIÊN: SINHVIEN(MSSV,TEN,PHAI,DIACHI,DIENTHOAI,MAKHOA)BANG KHOA: KHOA(MAKHOA,TENKHOA,SL_CBGD)BANG GIAO VIÊN: GIAOVIEN(MAGVTENGV,MAKHOA)BANG MÔN HOC: MONHOC(MAMH,TENMH,SOTC)BANG GIANG DAY:GIANGDAY(MAKHOAHOC,MAGV,MAMH,HOCKY,NAM)bảng KÊT QUA: KETQUA(MSSV,MAKHOAHOC,DIEM)

23

Page 24: Vo minh truong 102991 bao cao thuc tap

Kết nối cơ sở dữ liệu bằng PHP:

Bởi vì PHP và MySQL là hai thế giới tách biệt nhau.

muốn dùng PHP để làm việc được với CSDLphải tạo ra sợi dây liên kết giữa hai <? 

 mysql_connect("localhost", "root","") or  die ("Could not connect to database");  mysql_select_db("guestbook") or  die ("Could not select database"); ?>

Dòng đầu tiên thực hiện việc kết nối với Database Server đang nằm trên máy localhost, có username là root, password là rỗng. Nếu kết nối thành công, nó sẽ thực hiện bước kế tiếp là kết nối với database nằm trong đó là guestbook bằng lệnh mysql_select_db().

các lệnh trên sử dụng thường xuyên cho mọi kết nối CSDL ên lưu nó vào một tập tin dbconnect.php sau này cần thì chỉ việc dùng lệnh include(dbconnect.php);

24

Page 25: Vo minh truong 102991 bao cao thuc tap

ERD:

erd quan ly sinh viên

ERD :

• ERD là lược đồ thể hiện cấu trúc trừu tượng hóa của dữ liệu trong tổ chức ,

dựa trên khái niệm th ự c th ể (entity) ,và quan h ê ( relationship)Phân biệt Mô hình ERD và Lược đồ quan hệ

25

Page 26: Vo minh truong 102991 bao cao thuc tap

VPS là gì?Máy chủ ảo (Virtual Private Server -

VPS) là phương pháp phân chia một máy chủ vật lý thành nhiều máy chủ ảo. Trong khi trên 1 server chạy Share Host thì có thể có hàng trăm tài khoản cùng chạy 1 lúc, nhưng trên server chạy VPS thì con số chỉ bằng 1/10. Do vây, VPS có hiệu năng cao hơn Share Host rất nhiều lần.

Đặc điểm về thông số VPS?Hoạt động hoàn toàn như một server

riêng nên sở hữu một phần CPU riêng, dung lượng Ram riêng, dung lượng ổ HDD riêng, địa chỉ Ip riêng và hệ điều hành riêng.* Tiết kiệm được rất nhiều chi phí nếu so sánh với việc thuê một Server riêng.* Ngoài việc dùng VPS để thiết lập Web Server, Mail Server cũng như các ứng dụng khác thì có thể cài đặt để thực hiện những nhu cầu riêng như truy cập Web bằng trình duyệt Web trên VPS, download/upload bittorent với tốc độ

26

Page 27: Vo minh truong 102991 bao cao thuc tap

cao...* Trong trường hợp VPS bị thiếu tài nguyên có thể dễ dàng nâng cấp thêm tài nguyên mà không phải khởi động lại hệ thống.* Có thể cài lại hệ điều hành vời thời gian từ 5-10 phút.

hướng dẫn chi tiết cách càiVPS :hãy trỏ domain về IP của VPS bởi vì

khi cài cách này sẽ đăng nhập bằng giao thức SSL nên nó không hỗ trợ đăng nhập bằng IP.

Đầu tiênđăng nhập vào VPS và cài wget

1 yum install wgetVà cài thêm Perlyum install perlSau đó chạy lệnh này để tải script cài đặt về.wget http://software.virtualmin.com/gpl/

scripts/install.shSau đó chạy tiếp

sh ./install.sh

27

Page 28: Vo minh truong 102991 bao cao thuc tap

 ấn nút Next để bắt đầu,

tạo mới MySQL password và nhập domain của Primary Server thì cứ nhập bình thường

ấn nút Recheck để kiểm tra lại các thiết lập.

Tìm kiếm tên chủ sử dụng trong PHP

$csd = $_POST['csd'];

Select * FROM baocao WHERE tenchu ILIKE %$csd%Tích hợp DNS vào AD database:

Mở DNS -> Forward Lookup Zones -> right click domain name -> Properties -> tab General -> mục Type -> Change -> check Store the zone in Active Directory (nếu chưa check) -> OK. Lúc đó ta thấy dòng chữ Data is stored in Active Directory. Mục Dynamic updates chọn Secure only (nếu chưa chọn) -> OK

28

Page 29: Vo minh truong 102991 bao cao thuc tap

Backup và Restore MySQL database

vào phpmyadmin rồi thì các bạn bấm chọn database cần kiểm tra bên tay trái

29