Lamborghini Huracán LP 610-4 t
19:12
20/05/24
Like để cập nhật nhiều truyện hay trên Facebook nhé
HotBạn muốn tải các game hay? Hãy truy cập:Vietnam.Teamobi.Com.Vntrang web TeaMobi đại lí vietnam phân phối bởi ©2Xinh™
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ùng,
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ố.
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 php mảng kết hợp.
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 tìm 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ị cuả
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à 1
Trang. 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ông
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.
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]
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ế thì
dỡ lắm) và thực 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.
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>
Bài trước đã hướng dẫn bạn cách
giao tiếp với người dùng qua
phương thức GET, bài này chúng ta
làm quen với 1 phương thức phồ
biến hơn POST
Để dùng được POST bạn phải kết
hợp với html form.
Nếu như với phương thức GET
chúng ta truyền 1 tham số bằng
cách ghi kèm tham số đó vào
đường dẫn, thì với POST, chúng ta
chỉ duy có 1 cách cơ bản nhấp là tạo
một vài trường để người dùng điền
thông tin vào và sau đó bấm gửi.
người dùng đang nhập vào bằng id
và pass, nếu cả 2 trùng khớp sẽ
hiện ra câu "xin chào <tên đầy
đủ>";Đây là danh sách
id,pass,fullname dùng trong ví dụ
Trích dẫn
nam, 123456, Hồ Thành Nam dung,
654321, Hà Nhuận Dung trang,
abcdef, Đinh Hoàng Trang
Code hoàn thiện ở cuối bài, sau đây
là phần hướng dẫn
Đầu tiên, tạo 1 cái tạo một file
tênphp-post.php, nội dung file như
sau:
Mã nguồn:[Chọn]
<!DOCTYPE html>
<html id="demo-get" lang="en">
<head>
<meta charset=utf-8 />
<meta id="viewport"
content="width=620" />
<title>Ví dụ phương thức POST
trong PHP </title>
<head>
<body>
<form action="php-post.php"
method="get">
ID:<input type="text" name="id" /
><br />
PASS:<input type="password"
name="pass" /><br />
<input type="submit"
name="submit" value="Gửi" /><br /
>
</form>
</body>
</html>
Điền nội dung bất kỳ vào 2 trường
ID và pass, nhấn nút Gửi, bạn sẽ
thấy 1 chuỗi các tham số xuất hiện
(...php-post.php?
id=.....&pass=.....&submit=Gửi)
Form trên (với thuộc tính
method="get") đã khởi tạo cho
chúng ta một chuỗi các tham số GET
với khóa là giá trị của thuộc tính
name[/name] của các trường input
(chúng ta có thể lấy được những gì
người dùng điền vào hai ô ID và
PASS qua$_GET['id'] và $_GET
['pass'])
Bây giờ hãy thừ đổi
method="get"trong form thành
method="post", bây giờ bạn hãy
điền bất kỳ thông tin gìvào và nhấn
nút gửi. Ta chú ý không hề có sự
thay đồi của đường dẫn! Đó là cái
hay của phương thức POST.
Lúc này đề sử dụng nội dung của
người dùng đã điền vào 2 truờng ID
và PASS, ta đơn giản truy xuất 2
biến mảng$_POST['id'] và $_POST
['pass']. (phương thức GET thì ta có
mãng $_GET, phương thức POST ta
có mảng $_POST)
Rất đơn giàn để sữ dụng POST khi
ta đã hiểu về GET
Phần giải thích về phuơng thức
POST đã xong.
Giờ xin trình bày chút về thuật giải
của chuơng trình đăng nhập :
Dòng 15 - 19 : khởi tạo 1 mảng lớn,
chứ 3 mảng nhỏ, mỗi mảng nhỏ là 1
mảng kết hợp gồm 3 khóa: id, pass,
fullname
Dòng 21 : kiểm tra xem nút gửi có
được nhấn chưa
Dòng 22 : khởi tạo biến $login mặt
định = false, nếu sau khi kết thúc
vòng lặp for mà nó vẫn giữ nguyên
giá trị false có nghĩa là sai mật
khẩu.
Dòng 23 - 29 : Chạy 1 vòng lặp từ
đầu tới cuối mảng $users, so sánh
giá trị của 2 trường id, paa của mỗi
mảng nhỏ với giá trị của$_POST
['id'] và $_POST['pass'] cứ thế lần
luợt, nếu gặp 1 trường hợp mà cà 2
phép so sánh đều đúng, thay đổi
giá trị của biến $Login lại thành
trueFull :
Mã nguồn:[Chọn]
<!DOCTYPE html>
<html id="demo-get" lang="en">
<head>
<meta charset=utf-8 />
<meta id="viewport"
content="width=620" />
<title>Ví dụ phương thức POST
trong PHP </title>
<head>
<body>
<form action="php-post.php"
method="post">
ID:<input type="text" name="id" /
><br />
PASS:<input type="password"
name="pass" /><br />
<input type="submit"
name="submit" value="Gửi" /><br /
>
</form>
<?php
$users= array(
array
('id'=>'nam','pass'=>'123456','fullname'=>'Hồ
Thành Nam'),
array
('id'=>'dung','pass'=>'654321','fullname'=>'Hà
Nhuận Dung'),
array
('id'=>'trang','pass'=>'abcdef','fullname'=>'Đinh
Hoàng Trang'),);
if(isset($_POST['submit']))
{
$login=false;
for($i=0;$i<count($users);$i++)
{
if($users[$i]['id'] ==$_POST['id']&&
$users[$i]['pass'] ==$_POST['pass'])
{
$login=true;$name=$users[$i]
['fullname'];break;
}
}
if($login)
{
echo'Xin chào '.$name;
}else{
echo'Sai ID hoặc Pass!!!';
}
}
?>
</body>
</html>