LAB 5: GI NHN D LIU GIA CLIENT-SERVER
1. Mc tiêu
- Hiu cách truyn d liu gia client và server thông qua form và URL
- Nm vng và s dng các mng có sn ca PHP: $_GET, $_POST,
$_REQUEST, $_FILES ,…
- Hiu và vn dng các mng: $_SERVER, $_SESSION, $_COOKIE
2. Tóm tt lý thuyết
Để giao tiếp với server, người s dụng client thường dung mt form để nhp
liu và gi lên server hoc click vào url.
Các thông tin nhp vào form hay truyền qua url được lưu trữ trong các mng
có sn trên server.
- $_GET: lưu các thông tin gi t form có method=get hoc t url
- $_POST: lưu giữ các thông tin t form có method=post
- $_REQUEST: có th dng thay thế $_GET hoc $_POST.
- $_FILES: mảng lưu giữ các thông tin file đưc gi gn kèm theo form.
Vấn đề gi nhn d liu:
- URL: d liu QueryString trong url th đưc phân tích truy xut t
server thông qua mng $_GET hoc $_REQUEST.
Ví d: path/a.php?x=1&y=2
Khi đó trang a.php thể ly giá tr x y qua mng $_GET
$_REQUEST như sau:
$v1 = $_GET["x "]; //$v1 = 1
$v2 = $_REQUEST["y "]; //$v2= 2
- Nhng phn t trong form không đặt thuc tính name s không th gi d
liu lên máy ch. Các phn t giá tr ca thuc tính name s th được
gửi đi. Trên server, các giá tr ca thuc tính name y s tr thành index
ca c mảng tương ứng. ($_GET, $_POST, $_FILES, $_REQUEST).
- Vi các nhóm thành phn: (radio, checkbox là các thành phần thường s
dng mt tên cho tt c các phn t ca nhóm): ch có thành phần nào được
chn (checked) mới được gi đi.
- Nút submit: nút nào được click mi đưc gi lên server.
- Các thành phần button, reset: không đưc gi lên máy ch.
- Để gi các tp tin lên máy ch, form phi thiết lp giá tr cho thuc tính:
enctype="multipart/form-data".
- Mảng $_FILES: lưu các thông tin của file đưc gi lên y ch. Mi phn
t này mt mảng lưu trữ nhiu thông tin ca file: tên file, file tm trên
máy chủ, kích thước file, mã li khi gi file, kiu file.
3. Ví d
3.1 Ví d lab5_1.php:
a. Phân tích các QueryString trong ví d khi click vào các link trong
trang.
b. S dụng form và phương thức get tương ng vi các QueryString trong
câu.
3.2 d lab5_2.php: s dụng form đơn giản s dụng phương thức post.
Nhp d liệu trong form sau đó submit form lên máy chủ và hin th các kết
qu va nhp.
3.3 d lab5_3: kết hp gi nhiu thông tin upload hình nh t client lên
máy ch
a. lab5_3/1.php: cha form nhp liu.
b. lab5_3/2.php: nhn d liu t form 1.php và kim tra d liu nhp:
- Nếu thông tin không hp lệ: (Tên chưa nhập,không chn gii
tính hoc file upload có li và không phi file hình): Báo li.
- Nếu thông tin hp lệ: u hình vào thư mục image. Kim tra
gii tính in ra các thông báo thích hp cùng vi hình va
upload.
3.4 d lab5_4: Phân chia các chc năng ca tng phn (font-end back-
end) trong website thành nhiu module nh hơn để d qun lý. Các module
này được load (include) vào trang chính da vào các tham s được truyn
trên URL (mod và ac).
Xem gii thích các dòng trong file mod.php các file index.php trong
các thư mục con ca module.
4. Vn dng
4.1 Nhn d liu trên server thông qua URL. Thư mục Lab5_4_1/
File 1.php: Cho mng $arr có nội dung như sau:
$arr = array();
$r = array("id"=>1, "name"=>"Product1");
$arr[] = $r;
$r = array("id"=>2, "name"=>"Product2");
$arr[] = $r;
$r = array("id"=>3, "name"=>"Product3");
$arr[] = $r;
$r = array("id"=>4, "name"=>"Product4");
$arr[] = $r;
Hãy s dng mảng $arr để in ra màn nh c liên kết. Mi liên kết gi id
ca phn t mảng tương ng lên trang 2.php text hin th ca liên kết
giá tr thuc tính name tương ng. d, vi phn t đầu tiên, liên kết
dng: <a href="lab5_4_2.php?id=1">Product1</a>
File: 2.php in ra màn hình giá tr id nhận được.
4.2 Xây dng trang (hoc các trang) m kiếm thông tin sn phm. (Lưu trong
thư mục lab5_4_2/)
Trang gm mt form để nhp thông tin cn tìm kiếm.
Form gm:
- Textbox: nhp tên sn phm cn tìm.
- Hai radiobutton cách tìm: la chn mt trong hai: gn đúng,
chính xác.
- Combobox: loi sn phm (là mt combobox 4 la chn:
tatca, loi 1, loi 2, loi 3).
- Form s dụng phương thc get.
Hãy in ra màn hình các giá tr mà người s dng va nhp vào form:
- Tên sn phm:
- Cách tìm: (gần đúng hay chính xác).
- Loi sn phm: in ra loi sn phm nếu không phi chn tt c.
4.3 Xây dựng trang để đăng thông tin thành viên (trang lab5_4_3.php).
Trang gm 2 phn.
a. Phn form nhp liu. Form có các thành phn:
- Tên đăng nhp (*)
- Mt khu (*)
- Nhp li mt khu. (*)
- Gii tính (*)
- S Thích
- Hình nh (tùy chn).
- Tnh (là combobox) (*)
- Submit, reset
b. Phn nhn d liu: (chính trang này): Kim tra d liu nhp và:
- In ra thông tin va nhp nếu d liệu đúng.
- In ra thông báo nếu d liu nhp vào không hp l.
- D liu hp l: Các thành phần đánh du (*) bt buc phi nhp
liu, mt khu nhp li mt khu phi trùng nhau, hình nh
nếu có phi là mt loi file hình (.jpg, .png, .bmp, .gif).
4.4 Xây dng li các chức năng cho admin dựa vào d lab5_4. Khi click vào
các link s include các trang tương ứng trong admin.
5. Nâng cao
5.1 Xây dng li ví d 5_2 trên, nhưng file cha form và in ra kết qu là cùng
mt file và form gi nguyên giá tr value va nhp trong các thành phn khi
đã submit.
5.2 Viết li ví d 5_3 trên nhưng cho phép upload nhiu hình nh.
5.3 Viết li trang form đăng thành viên trong phn 4 (lab5_4_3.php). Tuy
nhiên thêm phn kim tra form bng javascript trước khi kim tra trên
server. (gi ý: th s dụng javascript thông thường, s dng kết hp vi
HTML5, hoc s dng plug-in jQuery form validation).