Giao tiếp với người dùng qua phương thức GET

  • Home
  • Forum
  • Tự Học HTML
  • Tự Học Javascript
  • Tự Học PHP

MỞ ĐẦU

  • PHP mở đầu
  • Chuẫn bị để học PHP
  • Trang PHP đầu tiên

KIỂU DỬ LIỆU

  • Biến PHP
  • Biến và giá trị
  • Biểu thức và các toán tử cơ bản
  • Một số toán tử khác trong php
  • PHP với các kiểu giá trị
  • Nháy đơn - nháy kép
  • PHP hằng
  • Đổi kiểu dữ liệu

CÂU LỆNH IF

  • PHP câu lệnh IF
  • PHP ELSEIF
  • Dạng vắn tắt

VÒNG LẶP

  • PHP vòng lặp while
  • PHP vòng lặp for

MẢNG PHP

  • Mảng trong PHP
  • PHP mảng kết hợp
  • PHP mảng dựng sẵn

PHP HÀM

  • Tự thiết lập Hàm
  • Hàm và tham số
  • Biến toàn cục và biến cục bộ
  • PHP function return

GIAO TIẾP NGƯỜI DÙNG

  • Giao tiếp với người dùng qua phương thức GET
  • Giao tiếp với người dùng qua phương thức POST

Giao tiếp với người dùng qua phương thức GET

xxPHP Giao tiếp với người dùng qua phương thức GET
Tháng Bảy 11, 2011, 09:10:20 PM gửi bởi nvcnvn
Giao tiếp ở đây đơn giản là nhận thông tin từ người dùng và xử lý chúng.

Nhận thông tin từ người dùng có 2 cách chính:
1 Tạo những cái ô có thể điền thông tin vào, nút nhấn để gửi.
2 (nghe hơi lạ nhưng cũng là 1 cách) Bạn có 1 danh sách, người dùng muốn xem cụ thể cái gì thì click vào. Hành động click vào thể hiện lựa chọn của người dùn, cũng là một hình thức lựa chọn dữ liệu từ người dùng. Bài viết sẽ đề cập tới phương thức này.

Xử lý ở đây có rất nhiều ví dụ:
1 Bạn vào một diễn đàn - đăng nhập - lúc này mật khẩu bạn nhập (dữ liệu đầu vào) vào sẽ được so sánh với mật của bạn lúc đăng ký xem có trùng không - không trùng thì báo sai mật khẩu - đây cũng là 1 khâu xử lý.
2 Bạn vào một blog, forum gửi bài, nội dung bài viết, tiêu đề (dữ liệu đầu vào), bài viết được lưu ở đâu đó - đây cũng gọi là xử lý.
3 Cụ thể hơn, bạn viết 1 chương trình cho người dùng nhập vào 2 con số, tính tổng 2 số.

Trang ví dụ: http://hocvui.net/php/demo/php-get.php
Mô tả: bên trái có một list các tên, bạn click vào tên bạn muốn sẽ in ra cho bạn cụ thể quê quán, giới tính như đã được lưu.
Code hoàn thiện ở cuối bài, tiếp theo đây là phần hướng dẫn.

Tạo một biến $users là một mảng, chứa vài mảng nhỏ khác:
Để hiểu thêm về mảng ở đây, mời các bạn đọc lại bài http://hocvui.net/php/php-mang-ket-hop.html
Mã nguồn: [Chọn]
$users = array(
array('name' => 'Tuấn', 'gender' => 'Nam', 'city' => 'Hồ Chí Minh'),
array('name' => 'Dung', 'gender' => 'Nữ', 'city' => 'Hà Nội'),
array('name' => 'Trang', 'gender' => 'Nữ', 'city' => 'Huế'),
);
Ví dụ, ta muốn tin ra thành phố của bạn tên "Dung" (Dung ở vị trí thứ 2 trong mãng $users nên có số thứ tự là 1)thì ta dùng code sau:
Mã nguồn: [Chọn]
echo $user[1]['city'];

Tiếp đến, để lựa chọn thông tin của ai sẽ được hiễn thị thì việc ta cần làm là giúp người dùng lựa chọn và nhận kết quả lựa chọn từ người dùng.
Để bắt đầu, bạn hãy tạo 1 file tên là php-get.php với nội dung như sau:
Mã nguồn: [Chọn]
<?php
echo $_GET['id'];
?>
Save file này lại và duyệt nó trên trình duyệt, ví dụ : localhost/php-get.php?id=1 chú ý phần sau dấu "?"
Bạn sẽ thấy nội dung trang là số 1, tương tự, hay thay đôi giá trị sau dấu "=". Giá trị sau dấu "=" sẽ là giá trị cảu biến mãng $_GET['id'].
$_GET đơn thuần chỉ là một mảng kết hợp, và các khóa là các tham số được gửi trên đường dẫn (trong truờng hợp này là ID).
Bạn có thể gửi kèm nhiều tham số cùng một lúc, ví dụ: hãy tạo một file mới với nội dung như sau:
Mã nguồn: [Chọn]
<?php
echo $_GET['id']
echo 
$_GET['name'];
?>
Save file này lại và duyệt nó trên trình duyệt, ví dụ : localhost/php-get.php?id=1&]name=Trang/b]
Lúc này nội dung hiện ra sẽ là 1Trang. Ta dùng dấu "&"  ghép các tham số lại với nhau để truyền đi.


Hiện giờ các bạn đã nắm bắt được vấn đề. Để người dùng có thể chọn tên của bạn muốn hiễn thị thôn tin cụ thế, ta in ra sẵn một danh sách với link có các tham số id=0, 1, 2...
Ta dùng Vòng lặp để in ra danh sách:
Mã nguồn: [Chọn]
for($i=0;$i<count($users);$i++){
	
echo '
	
	
	
	
	
<li><a href="php-get.php?id='.$i.'">'.$users[$i]['name'].'</a></li>';
	

}


Để in ra giá trị của khóa city cho một bạn, ta dùng 1 code:
Mã nguồn: [Chọn]
echo $users[  $_GET['id']  ]['city'];Ví dụ, khi ?id=1 thì đạon code trên sẽ được hiễu đơn giản là:
Mã nguồn: [Chọn]
echo $users[1]['city'];
Ta cần lưu ý một vấn đề:
Chuyện gì sẽ sảy ra nếu một người dùng vì lí do nào đó (tò mò - phá phác..) sửa lại đường dẫn như thế này : localhost/php-get.php?id=5 hoặc  localhost/php-get.php?id=abc
Rõ ràng trong mảng $users của chúng ta chỉ có 3 phần tử, thay khóa bằng 5 hay abc đơn giản chẳng cho ta một kết quả gì. Điều này không hề dơn giản và trong một vài trường hợp rất ư là nguy hiểm.http://hocvui.net
Ta hãy lấy một ví dụ chương trình tính giá trị a*b (a x b) với a, b được nhập từ người dùng qua phuơng thức GET.
Mã nguồn: [Chọn]
<?php
echo $_GET['a']*$_GET['b'];
?>
Để chạy chương trình tính toán, ta duyệt : localhost//php-get.php?a=3&b=5
Kết quả nhận được sẽ là 15. Bỏ bớt tham số b ra (localhost//php-get.php?a=3) kết quả bằng 0. Điều gì nguy hiểm trong trường hợp này? Bạn hãy tưởng tựợng a là số lượng mặt hàng, b là đơn giá và đây là trang dùng để bạn tính tiền. Thật không hay để một ai đó mua hàng trăm món đồ với giá 0 đồng.
Để tránh việc này sảy ra, ta luôn phải kiểm tra dữ liệu từ người dùng! Và quả thật kiểm tra dữ liệu từ người dùng là công việc quan trọng bật nhất trong thiết kế web(cũng như bất kỳ phần mềm nào khác). Ở đây mình chỉ xin trình bày cách kiểm tra xem a và b đã có giá trị hay chưa, chứ chưa tính tới việc có đúng kiểu giá trịnh hay chưa (trường hợp a,b được thay thế bằng chữ cái thì sao?)
Ta dùng hàm isset() đề kiểm tra.
isset()  - đọc là "is  set" (tiếng anh ấy) - trà về đúng khi một biến đã được khai báo, ngược lại sai. và code kiểm tra của chúng ta như sau:
Mã nguồn: [Chọn]
<?php
if(isset($_GET['a']) && isset($_GET['b'])){
	
echo 
$_GET['a']*$_GET['b'];
}else{
	
echo 
'thieu du lieu dau vao';
}
?>
Lúc này nếu thử bỏ tham số hay hoặc b ra khỏi đường dẫn thì ta sẽ nhận được cảnh báo 'thieu du lieu dau vao' thay vì số 0.
Đây chỉ là một ví dụ để các bạn thấy được nguy cơ (thật ra khi làm trang bán hàng mà tính toán như thế htì dỡ lắm) và thật chất nguy cơ này rất lớn. Cụ thể nguy hiểm như thế nào chúng ta sẽ cùng tiềm hiểu ở cuối loạt bài về php và mysql. Còn về phần kiểm tra dự liệu người dùng nhập vào, chúng ta sẽ tiếp tục ngay sau bài nói về phương thức POST (GET và POST là hai anh em, hiểu GET rồi thì POST cũng dễ nuốt hơn phần nào)

Sau đây là full code, mời các bạn xem và ngâm cứu cùng hocvui.net
Mã nguồn: [Chọn]
<!DOCTYPE html>
<html id="demo-get" lang="en">
<head>
<meta charset=utf-8 />
<meta name="viewport" content="width=620" />
<title>Ví dụ phương thức GET trong PHP</title>
<head>
<body>
	
<table>
	
	
<tr>
	
	
	
<td>
	
	
	
	
<ul>
	
	
	
	

<?php
$users 
= array(
array(
'name' => 'Tuấn', 'gender' => 'Nam', 'city' => 'Hồ Chí Minh'),
array(
'name' => 'Dung', 'gender' => 'Nữ', 'city' => 'Hà Nội'),
array(
'name' => 'Trang', 'gender' => 'Nữ', 'city' => 'Huế'),
);

for(
$i=0;$i<count($users);$i++){
	
echo 
'
	
	
	
	
	
<li><a href="php-get.php?id='
.$i.'">'.$users[$i]['name'].'</a></li>';
	

}
?>


	
	
	
	
</ul>
	
	
	
</td>
	
	
	
<td>
<?php
if(isset($_GET['id']) && isset($users[$_GET['id']])){
	
echo 
"
	
	
	
	
Tên:"
.$users[$_GET['id']]['name']
	
	
	
	
.
"<br />Giới tính:".$users[$_GET['id']]['gender']
	
	
	
	
.
"<br />Thành phố:".$users[$_GET['id']]['city'];
}
?>

	
	
	
</td>
	
	
</tr>
	
</table>
</body>
</html>
Viết một nhật xét mới

Danh Sách Các Bài Trả Lời:

Trang: [1]

xx Re: PHP Giao tiếp với người dùng qua phương thức GET
Trả lời bài này 1: Tháng Tám 09, 2011, 10:57:13 PM gửi bởi Khương
Bạn ơi,mình test mấy đoạn code trên không cái mình đang nói

xx Re: PHP Giao tiếp với người dùng qua phương thức GET
Trả lời bài này 2: Tháng Tám 13, 2011, 09:30:29 PM gửi bởi nvcnvn
Trích dẫn của: Khương vào Tháng Tám 09, 2011, 10:57:13 PM
Bạn ơi,mình test mấy đoạn code trên không cái mình đang nói
Hix
Bạn nói gì mình không hiểu
Trang: [1]
 
Information Technology News|| Download driver and more|| SMF cho người Việt
|| game avatar || nông trại vui vẻ
Thích hợp với các trình dyệt:
Firefox - Opera - Google Chrome