- Biến định nghĩa trước
- Biến $_SERVER
- Biến $GLOBALS
- Biến $_REQUEST
- Biến $_SESSION, $_COOKIE
- Biến $_GET, $_POST
- Biến $_FILES
- Biến $_ENV
Các biến đã định nghĩa trước trong PHP
Trong PHP có một số loại biến gọi là siêu toàn cục superglobal
, nó đã được PHP định nghĩa trước để
lưu một số thông tin phục vụ cho ứng dụng, bạn có thể truy cập bất kỳ lúc nào,
và phạm vi truy cập là bất kỳ đâu.
Hiện tại đó là các biến siêu toàn cục có tên sau:
$_SERVER
, $GLOBALS
, $_REQUEST
, $_POST
, $_GET
,
$_FILES
, $_ENV
, $_COOKIE
, $_SESSION
.
Hầu hết thông tin của một truy vấn đến ứng dụng (HTTP Request) dữ liệu của nó đã được PHP phân loại và lưu vào các biến toàn cục này.
Biến $_SERVER trong PHP
$_SERVER là một mảng chứa các thông tin do WEBSERVER sinh ra như header, path, location script. Điều này có nghĩa một số dữ liệu sẽ khác nhau tùy vào WEBSERVER bạn dùng (Http Apache, Nginx ...). Một số thông tin bạn có thể lấy được qua biến này như:
Giá trị | Ý nghĩa | |
---|---|---|
$_SERVER['QUERY_STRING'] |
chuỗi query trang đang truy cập.
(Ví dụ trang truy cập là http://domain.com/pathurl/?page=news&id=100 - nó trả về là chuỗi query là ?page=news&id=100 ) |
|
$_SERVER['REQUEST_URI'] |
trả về URI của trang.
/pathurl/ |
|
$_SERVER['HTTP_HOST'] | trả về Host của trang, ví dụ xuanthulab.net . | |
$_SERVER['HTTP_REFERER'] | nếu có thì nó là trang dẫn user agent chuyển đến trang hiện tại, ví dụ trang chứa Link mà người dùng bấm vào để đến trang hiện tại. (Có thể dùng cái này để biết người dùng vào website qua google search với những từ khóa nào) | |
$_SERVER['SCRIPT_NAME'] | trả về đường dẫn của file script php hiện tại. | |
$_SERVER['REQUEST_METHOD'] | trả về phương thức nào truy vấn đến Server như POST, GET, HEAD, PUT | |
$_SERVER['REQUEST_TIME'] | trả về giá trị thời gian timestamp là lúc bắt đầu yêu cầu được gửi đến Server | |
$_SERVER['HTTP_USER_AGENT'] | lấy User-Agent là header của yêu cầu gửi đến, qua cái này có thể biết được thông tin như Trình duyệt, Hệ điều hành, Thiết bị ... đang truy cập | |
$_SERVER['REQUEST_TIME'] | trả về giá trị thời gian timestamp là lúc bắt đầu yêu cầu được gửi đến Server (Unix time) | |
$_SERVER['REMOTE_ADDR'] | Lấy IP đang truy cập trang. | |
$_SERVER['HTTP_COOKIE'] | Chuỗi là dữ liệu Cookie. |
Biến $GLOBALS trong PHP
$GLOBALS
là một biến mảng chứa tất cả các tham chiếu đến các biến toàn cục (global).
Với key của mảng là tên biến. Ví dụ bạn biết rằng $_SERVER
là một biến toàn cục thì bạn có thể truy cập đến biến đó thông qua
$GLOBALS['_SERVER']
như là một cách thức mới.
Ngoài ra còn chứa các biến toàn cục do bạn định nghĩa, xem thêm .
<?php function test() { $bien_kt = "Biến cục bộ"; echo '$bien_kt toàn cục có giá trị là: ' . $GLOBALS["bien_kt"] ; echo '$bien_kt cục bộ trong hàm có giá trị là: ' . $bien_kt; } $bien_kt = "Biến toàn cục"; test(); ?> //IN RA //$bien_kt toàn cục có giá trị là: Biến toàn cục //$bien_kt toàn cục có giá trị là: Biến cục bộ
Biến $_REQUEST trong PHP
Biến này là một mảng kết hợp, lưu trữ thông tin chứa trong biến $_GET, $_POST và $_COOKIE. Gộp các dữ liệu do người dùng gửi đến thành một.
Biến $_SESSION, $_COOKIE
Biến $_SESSION
lưu trữ thông tin phiên làm việc của PHP, $_COOKIE dữ liệu nhỏ do trình duyệt gửi lên: hai biến này trình bày trong chủ đề
Session và Cookie
Biến $_POST và $_GET trong PHP
$_post
là một mảng kết hợp, lưu thông tin gửi đến bằng phương thức HTTP POST
(xem thêm về HTML FORM để biết 2 phương thức post và get)
$_get
là một mảng kết hợp, lưu thông tin gửi đến bằng phương thức HTTP GET, hay nói cách khác lưu các thông tin chuyển đến thông qua tham số từ URL.
Hai biến $_get
và $_post
thường xuyên dùng với html form trong các website thông thường, trong đó sử dụng post
an toàn hơn get
và hỗ trợ các khối dữ liệu nhị phân upload lên server (ví dụ upload file thì phải dùng post
)
GET
cũng giới hạn
độ dài URL là 2000 ký tự. Vì tham số truyền qua biểu diễn URL, nên địa chỉ có thể bookmark và có ích trong một số trường hợp.
Ví dụ: HTML sau sử dụng form với phương thức get
<form action="info.php" method="get"> Tên: <input type="text" name="name" /><br /><br /> Tuổi: <input type="text" name="age" /><br /><br /> <input type="submit" name="submit" value="Gửi" /> </form>
info.php có nội dung:
<?php echo "Chào "$_GET['name'].". "; echo "Bạn ".$_GET['age']." tuổi."; ?>
Khi bạn điền vào form tên ABC, tuổi 20 bấm vào gửi thì URL trình duyệt sẽ là: /info.php?name=ABC&age=20
và nội dung in ra do info.php là:
Chào ABC
Bạn 20 tuổi
Biến $_files trong PHP
Biến $_files
lưu thông tin các file upload lên server. Xem mục
Upload file trong PHP để biết thông tin chi tiết.
Biến $_ENV trong PHP
$_ENV
là mảng chứa các biến môi trường được gửi đến.