HTML / HTTP là không trạng thái, nói cách khác, những gì bạn đã làm / thấy trên trang trước đó, hoàn toàn không được kết nối với trang hiện tại. Ngoại trừ nếu bạn sử dụng một cái gì đó như phiên, cookie hoặc biến GET / POST. Phiên và cookie khá dễ sử dụng, với phiên an toàn hơn nhiều so với cookie. An toàn hơn, nhưng không hoàn toàn an toàn.
Phiên:
//On page 1
$_SESSION['varname'] = $var_value;
//On page 2
$var_value = $_SESSION['varname'];
Hãy nhớ chạy session_start();
câu lệnh trên cả hai trang này trước khi bạn cố gắng truy cập $_SESSION
mảng và trước khi bất kỳ đầu ra nào được gửi đến trình duyệt.
Bánh quy:
//One page 1
$_COOKIE['varname'] = $var_value;
//On page 2
$var_value = $_COOKIE['varname'];
Sự khác biệt lớn giữa phiên và cookie là giá trị của biến sẽ được lưu trữ trên máy chủ nếu bạn đang sử dụng phiên và trên máy khách nếu bạn đang sử dụng cookie. Tôi không thể nghĩ ra bất kỳ lý do chính đáng nào để sử dụng cookie thay vì phiên, ngoại trừ nếu bạn muốn dữ liệu tồn tại giữa các phiên, nhưng thậm chí sau đó có lẽ tốt hơn là lưu trữ nó trong DB và truy xuất nó dựa trên tên người dùng hoặc id.
NHẬN VÀ BÀI VIẾT
Bạn có thể thêm biến trong liên kết đến trang tiếp theo:
<a href="page2.php?varname=<?php echo $var_value ?>">Page2</a>
Điều này sẽ tạo ra một biến GET.
Một cách khác là bao gồm một trường ẩn trong một biểu mẫu gửi đến trang hai:
<form method="get" action="page2.php">
<input type="hidden" name="varname" value="var_value">
<input type="submit">
</form>
Và sau đó trên trang hai:
//Using GET
$var_value = $_GET['varname'];
//Using POST
$var_value = $_POST['varname'];
//Using GET, POST or COOKIE.
$var_value = $_REQUEST['varname'];
Chỉ cần thay đổi phương thức cho biểu mẫu thành post
nếu bạn muốn làm điều đó qua bài viết. Cả hai đều không an toàn như nhau, mặc dù GET dễ hack hơn.
Thực tế là mỗi yêu cầu mới, ngoại trừ dữ liệu phiên, một phiên bản hoàn toàn mới của tập lệnh đã bắt gặp tôi khi tôi bắt đầu viết mã bằng PHP. Khi bạn đã quen với nó, nó khá đơn giản.