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>