Tôi có một trang (index.php) có biến số GET
từ URL và kiểm tra nó vì mục đích bảo mật. Biến số GET
này chỉ nên là số nguyên. Tôi đang sử dụng mã sau đây để kiểm tra điều này, nhưng trong mọi trường hợp, số nguyên hay không, tôi nhận được trang index.php. Tiêu đề không bao giờ xuất hiện. Sau mã này, phần còn lại của trang xuất hiện bắt đầu bằng thẻ html
.PHP is_int không hoạt động như mong đợi
PHP:
<?php ob_start(); session_start();
$q=trim($_GET['q']);
if (!is_numeric($q)){
header("HTTP/1.0 404 Not Found");
}
?>
Tôi không biết bạn đã biết chưa, nhưng bạn nên thêm 'exit();' sau tiêu đề '(..)'. Nếu không, tập lệnh sẽ tiếp tục in nội dung trang. – laher
Đọc [tài liệu] (http://php.net/manual/en/function.is-int.php) sẽ cho bạn thấy rằng 'is_int()' kiểm tra kiểu biến, vì vậy chuỗi với "' 123 '" vào 'is_int()' sẽ không trả về 'true', vì đây là chuỗi. Ngoài ra, tại sao bạn gắn thẻ bài đăng của mình bằng 'http-status-code-404'? Đã xóa thẻ – Tadeck
@Tadeck. cảm ơn vì tài liệu đó. im bây giờ sử dụng is_numeric và nó vẫn không hoạt động – kirby