Liên hệ
php cơ bản

Các biến định nghĩa trước trong PHP

Tìm hiểu cách sử dụng các biến $_SERVER, $GLOBALS, $_SESSION, $_GET, $_POST trong PHP

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, 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

Biến $_SERVER

$_SERVER là một mảng chứa các thông tin do Webserver sinh ra như header, path, location script. Một số thông tin bạn có thể lấy được qua biến này như:

  • $_SERVER['QUERY_STRING'] trả về chuỗi query trang đang truy cập. (Ví dụ trang truy cập là http://domain.com/?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.
  • $_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
  • $_SERVER['REMOTE_ADDR'] Lấy IP đang truy cập trang.

Biến $GLOBALS

$GLOBALS là một 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.


<?php
function test() {
    $bien_kt = "Biến cục bộ";

    echo '$bien_kt toàn cục có giá trị là: ' . $GLOBALS["bien_kt"] . "<br>";
    echo '$bien_kt cục bộ trong hàm có giá trị là: ' . $bien_kt . "<br>";
}

$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

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

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

$_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$_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 dùng khi thông tin gửi đi được nhìn thấy rõ ràng thông qua URL của trình duyệt. Tuy nhiên 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

Biến $_files lưu thông tin các file upload lên server. Xem mục Upload file với PHP để biết cách sử dụng.

Vui lòng đăng ký ủng hộ kênh