Sử dụng isset()

Một phần của tài liệu Giáo trình khắc phục lỗi và debug website (Trang 29 - 31)

Hàm isset() được dùng để kiểm tra một biến nào đó đã được khởi tạo trong bộ nhớ của máy tính hay chưa, nếu nó đã khởi tạo (tồn tại) thì sẽ trả về TRUE và ngược lại sẽ trả về FALSE.

30

if (isset($domain)){

echo 'Biến domain đã tồn tại';

} else{ else{

echo 'Biến domain chưa tồn tại';

}

Nếutrong quá trình biên dịch nếu trong code có sử dụng một biến không tồn tại thì trình biên dịch sẽ ngưng xử lý và thông báo lỗi ngay, chính vì vậy thông thường những trường hợp mà ta không chắc chắn là biến đó luôn tồn tạithì trước khi sử dụng hãy kiểm tra nó.

Ví dụ: Lấy thông tin đăng ký từ form

Thông thường khi lấy thông tin từ một form thì chúng ta nên kiểmtra nó có tồn tại không rồi mớilấygiá trị của chúng, nếu không người dùng sẽ sử dụng firebug đổi một số name của các thẻ input thì chương trình sẽ báo lỗi.

if (isset($_POST['submit'])) {

$fullname = isset($_POST['fullname']) ? $_POST['fullname'] : '';

$address = isset($_POST['address']) ? $_POST['address'] : ''; $email = isset($_POST['email']) ? $_POST['email'] : '';

$phone = isset($_POST['phone']) ? $_POST['phone'] : ''; }

Ví dụ: Lấy trang hiện tại trên URL dùng để phân trang

Trong thuật toán phân trang chúng ta lấy page trên URL để xác định record hiển thị cho trang đó. Chính vì page nằm trên URL nên rất nguyhiểm nếu như chúng ta lấy mà không kiểm tra nó tồn tại hay không vì nếu người dùng chỉ cần bỏ cái page=x đó đi thì chương trình sẽ bị lỗi ngay.

31

$current_page = isset($_GET['page']) ? $_GET['page'] : '1';

Ví dụ: Thực hiện nối chuỗi trong khi biến $domain chưa chắc chắn là tồn tại

$website = 'codienhanoi.edu.vn’;

if ($website != ''codienhanoi.edu.vn){

$slogan = 'Đây không phải là website'codienhanoi.edu.vn;

}

$slogan .= 'vui lòng ghi rõ nguồn khi public nội dung này ở

website khác';

Rõ ràng đoạn code này chạy sẽ bị lỗi ngay bởi vì biến $slogan sẽ không tồn tại vì câu lệnh bên trong mệnh đề if không được chạy.

Trên là những ví dụ thông thường hay xảy ra trong thực tế nên vẫn còn khá nhiều trường hợp nên sử dụng hàm isset() trong php.

Một phần của tài liệu Giáo trình khắc phục lỗi và debug website (Trang 29 - 31)