Viết ứng dụng web bằng php xử lý dữ liệu form


tự học php nâng cao 02/07/2015 Cùng chuyên mục

PHP chủ yếu được sử dụng để xây dụng ứng dụng web ( web application).PHP tạo ra trang web động (web application dynamic), cho phép người dùng có thể tương tác với máy chủ (server site), tại đó ứng dụng web sẽ xử lý dữ liệu của người dùng gửi bằng HTML FORM.

HTTP - GET - POST:

Dữ liệu từ FORM nhập liệu của người dùng được gửi lên server bằng giao thức HTTP, thông thường với 2 phương thức: GETPOST.

Thế nào là lập trình ứng dụng web bằng php?

Sự tương tác giữa máy chủ và máy khách ( mô hình client - server):

Để lập trình web bằng PHP tốt bạn cần hiểu mô hình máy khách máy chủ


Mô hình tương tác giữa máy chủ và máy khách

Người dùng (client) thông qua trình duyệt - truy cập vào trang web: abc.com, khi đó trình duyệt giao thức http hoặc https để tìm đến máy chủ - tùy theo đường dẫn và cách cấu hình, tổ chức website mà máy chủ sẽ yêu cầu trang xử lý tương ứng. Ví du: http://abc.com sẽ truy cập vào trang chủ (index.php hoặc index.html) tại thư mục gốc => trình thông dịch php sẽ dịch mã php có trong file đó trả ra kết quả dạng text như html+css+... máy chủ trả thông tin này về cho máy khách - trình duyệt có nhiệm vụ hiển thị thông tin mà nó hiểu như html, css, text,... cho người dùng biết. 

Bạn cần lập trình những gì?

Trước hết, cần có giao diện nhập liệu cho máy khách, tạo giao diện nhập liệu chỉ mới được gọi là "thiết kế giao diện web" - thuật ngữ hay dùng là front end. Việc tiếp đến là tạo trang xử lý dữ liệu nhận được từ giao diện đó - thuật ngữ hay dùng là back end. Các công việc hay làm: xuất dữ liệu - kiểm tra dữ liệu - lưu dữ liệu vào cơ sở dữ liệu.

PHƯƠNG THỨC GET:

Khi FORM gửi dữ liệu (form submit) lên server sử dụng phương thức GET, các giá trị dữ liệu truyền đi sẽ trực tiếp hiển thị trên URL của trình duyệt. Ví dụ:

http://example.com/index.php?type=user&age=5

Để ý: ?type=user&age=5 - chính là query string. Query string bắt đầu bằng ký tự tiếp theo là: [param]=[value]&[param]=[value]... Ở đây gửi đi 2 param:typeage với giá trị lần lượt là user5, tới trang đích xử lý là example.com/index.php.
Tại trang xử lý, các param được gửi đi sẽ được truy cập thông qua mảng $_GET.

Ví dụ 1
: tạo trang xử lý dữ liệu form: index.php trong thư mục hoc_php tại thư mục gốc (htdocs) - sau đó gõ lên trình duyệt:
http://localhost/hoc_php/index.php?type=user&age=5.
Bạn có thể thay đổi giá trị của param để hiểu hơn như type=admin; age = 25

<?php	
	//kiểm tra nếu đã nhận được dữ liệu với tên biến là type
	if(isset($_GET['type'])) 
	{
		//xuất ra giá trị biến type - được gửi lên từ client
		echo 'Type: ',$_GET['type']; 
	}
	//kiểm tra nếu đã nhận được dữ liệu với tên biến là age
	if(isset($_GET['age'])) 
	{
		//xuất ra giá trị biến type - được gửi lên từ client
		echo ' - age: ',$_GET['age'];
	}
	//kết quả: 'Type: user - age: 5'
?>

Ví dụ trên truyền dữ liệu đơn, bạn cũng có thể truyền dữ liệu kiểu mảng. Thêm 2 dòng sau vào file index.php vừa tạo.

echo $_GET['user']['name']; //kết quả long
echo $_GET['user']['age']; //kết quả 18

Gõ lên trình duyệt
http://localhost/hoc_php/index.php?user[name]=long&user[age]=18
Và xem kết quả.

Dưới đây là ví dụ, form gửi đi type là user và age = 5, xử lý tại chính trang đó, giả sử bạn đặt tên file là form_exam.php:

<?php	
	//kiểm tra nếu đã nhận được dữ liệu với tên biến là type
	if(isset($_GET['type'])) 
	{
		//xuất ra giá trị biến type - được gửi lên từ client
		echo 'Type: ',$_GET['type']; 
	}
	//kiểm tra nếu đã nhận được dữ liệu với tên biến là age
	if(isset($_GET['age'])) 
	{
		//xuất ra giá trị biến type - được gửi lên từ client
		echo ' - age: ',$_GET['age'];
	}	
?>
<!doctype html>
<html>
<head>
<title>Xu ly du lieu form</title>
</head>
<body>
<form method="GET" action="">
	<label for="_type" >Type</label><input type="text" id="_type" name="type" placeholder="type"><br>
	<label for="_age" >Age</label><input type="text" id="_age" name="age" placeholder="age"><br>
	<input type="submit" name="frm_exam_sm" value="Submit">
</form>	
</body>
</html>

Trong đó các bạn lưu ý: 
- method: phương thức gửi dữ liệu, GET hoặc POST
- action: đường dẫn tới file xử lý (trên server) - đường dẫn có thể là tuyệt đối hoặc tương đối

(?): Bạn thử thay phương thức GET bằng phương thức POST, với đoạn code đã cho ở trên
Lưu ý:
param = giá trị thuộc tính name trong các thẻ của form, value tương ứng với value của thẻ trong form.

PHƯƠNG THỨC POST:

Khác với phương thức GET, khi gửi dữ liệu từ form lên server - dữ liệu truyền đi sẽ được truyền ngầm - nghĩa là bạn không thấy nó trên URL của trình duyệt. Tương tự như GET, để truy cập vào dữ liệu đã nhận được trên server - truy cập vào mảng $_POST.

PHƯƠNG THỨC TRUYỀN ĐI LÀ GET HAY POST?

Truy cập tới mảng $_REQUEST trong trường hợp bạn không biết dữ liệu được gửi lên server theo phương thức GET hay POST.

Bạn sửa lại file index.php đã tạo ở Ví dụ 1, thay biến $_GET bằng $_REQUEST, chạy xem kết quả.

Lựa chọn giữa GET và POST

Thông thường, phương thức POST sử dụng cho các thao tác chỉnh sửa, thêm mới dữ liệu. Còn phương thức GET sử dụng cho việc lấy dữ liệu. Khi gửi dữ liệu đi bằng phương thức GET thì trang sẽ được cache tại trình duyệt ( các file css, js, image ) còn phương thức POST thì không. Dữ liệu gửi đi bằng phương thức GET có thể nhìn thấy trên thanh địa chỉ, còn phương thức POST thì truyền ngầm nên không thấy. 

TỔNG KẾT

Qua bài này các bạn biết cách việt một ứng dụng web bằng php đơn giản. Biết xử lý dữ liệu nhận được từ form của người dùng. 




Bình luận:


php