Tìm hiểu biến toàn cục và biến siêu toàn cục trong PHP

Admin
11-01-2017
Biến có phạm vi toàn cục có nghĩa là nó có thể truy xuất - sửa giá trị, gán giá trị ở bất cứ đâu.  Các biến có phạm vi cục bộ khi đưa vào trong hàm - giá trị tạm thời thay đổi nhưng khi ra khỏi thân hàm thì giá trị trở lại như cũ, biến toàn cục thì ngược lại khi đưa vào trong hàm giá trị của nó bị thay đổi. 
 
Một số biến được xác định trước trong PHP là siêu toàn cục, điều này có nghĩa là nó luôn luôn được truy cập, không giới hạn – và bạn có thể truy cập nó trong bất cứ hàm nào, lớp nào hoặc file mà không cần làm điều gì đặc biệt
 
Những biến siêu toàn cục trong PHP là:
 
$_SERVER['tên biến'] - lưu trữ các thông tin của SERVER 
$_REQUEST['tên biến'] - lưu trữ các biến truyền lên bởi cả phương thức GET và POST
$_POST['tên biến'] - lưu trữ dữ liệu truyền đi từ máy client bằng phương thức POST
$_GET['tên biến'] -  lưu trữ dữ liệu truyền đi từ máy client bằng phương thức GET
$_FILES['tên biến'] -  lưu trữ thông tin file upload lên server
$_COOKIE['tên biến'] - lưu trữ dữ liệu cookie nhận được từ trình duyệt người dùng
$_SESSION['tên biến'] - lưu các biến session
$_ENV['tên biến'] -  Khi biến đã được ấn định giá trị từ một môi trường hệ điều hành. 
 
1. Truyền biến thông qua URL
- Hãy xem đường link sau:
http://www.congnghe5s.com/news/articles/showart.php?id=12345
- Những phần sau dấu ? gọi là chuỗi truy vấn (query string). Có thể nối giữa các biến trong URL bằng cách dùng dấu &. Ở đây mình truyền biến id có giá trị 12345 đến trang showart.php
- Ở đây có một vài bất lợi :
Mọi người có thể nhìn thấy giá trị của biến, những thông tin nhạy cảm thì không được bảo mật khi sử dụng cách thức này.
Người dùng  có thể đổi giá trị biến trong URL, mở những phần mà người lập trình không muốn hiển thị.
Một người sử dụng có thể gặp phải những thông tin không chính xác hoặc đã cũ khi dùng URL đã được lưu với những biến cũ trong đó.
- Trong trang showart.php chúng ta có thể hứng biến trên bằng cách sau:
 
2. Truyền biến bằng Session:
- Đây thực chất không phải là truyền biến mà là thiết lập một biến có giá trị và có thể truy xuất được ở bất cứ file nào trong site.
- Cách thiết lập như sau:
session_start();// Khởi tạo Session
$_SESSION['id'] == 12345; // Khởi tạo session có tên là id và giá trị là 12345
?>
- Nếu mình đứng ở 01 file php khác, muốn sử dụng biến session trên thì mình làm như sau:
session_start();// Khởi tạo Session
echo $_SESSION['id']; // in biến ra trang Web
?>
 
3. Truyền biến qua Cookie:
- Cookie là một file dữ liệu nhỏ được Webserver gửi và lưu trên trình duyệt của máy khách, nó chứa một số các thông tin về quá trình người dùng lướt web như: username, mật khẩu, lịch sử lướt web...
- Cookie được người lpaaj trình tạo ra và có giá trị như là một biến số. Để tạo cookie chúng ta làm như sau:
 
setcookie("user", "Alex Porter", time()+60*60*24*30);
//Tạo cookie có tên "user", giá trị "Alex Porter", thời gian tồn tại trên máy khách là 30 ngày
?>
 - Sau thời gian 30 ngày cookie sẽ tự động được xóa. Đơn vị tính thời gian ở đây là giây.
 
4. Truyền biến thông qua HTML Form:
- Form là hình thức ô nhập dữ liệu và gửi đến file xử lý, được các lập trình viên làm để khách nhập thông tin.
- Chúng ta có một Form như sau (về cách tạo form, thuộc tính... là HTML nhé, mình sẽ trình bày thành một bài khác trong mục HTML):
 
 
       
 
 
- Form trên có tên là "information", cách thức gửi dữ liệu là POST, và đích đển của dữ liệu là file handle.php. Ví dụ, mình nhập tên mình vào ô input và nhập tên và sau đó nhấn nút Submit. Form sẽ chuyển hướng trình duyệt đến file handle.php kèm theo dữ liệu đã nhập.
- Trong file handle.php mình hứng dữ liệu như sau:
$Fulname = $_POST['Fullname'];
echo $Fullname;
?>