10/10/2018, 11:39

Hỏi về tối ưu $_GET id của bài viết

Chuyện là mình đang tự viết 1 trang tin tức và mình thì khá gà.

Mình sẽ lấy 1 bài viết dạng id . giống như product=10 thì lấy id 10. vậy nhưng nếu ghi product=10" thì lỗi xuất hiện ngay, mình thử id= (int)addphlash($_get['id']) thì tạm thời nó không lấy dấu " nữa, và cũng k lấy chữ trong id. nhưng nếu mình nhậu product=abc thì lỗi lại xuất hiện.

Mình nên làm thế nào để tối ưu khu vực này và làm cho nếu không hợp lệ (dạng chử, dấu ..) thì tự cho id=1.

Xin cám ơn mọi người
chiase.net viết 13:50 ngày 10/10/2018
isset()
bạn có thể dùng cái này để check là id có gán giá trị hay không
Vô Thin viết 13:42 ngày 10/10/2018
Bạn dùng đoạn code gần như sau:

Code:
<?php
$id = intval($_GET['product']);

if (is_int($id)) {
    $sql = "SELECT * FROM products WHERE product = $id";
} else {
    $id = 1;   
    $sql = "SELECT * FROM products WHERE product = $id";
}
?>
Và nên tham khảo thêm các hàm is_numeric(), is_int() trong trang php.net nhé.
bad spy viết 13:42 ngày 10/10/2018
Được gửi bởi Profit
if else
The message you have entered is too short. Please lengthen your message to at least 20 characters.
If else thì dĩ nhiên, nhưng điều kiện thế nào bạn?
bad spy viết 13:55 ngày 10/10/2018
Được gửi bởi superthin
Bạn dùng đoạn code gần như sau:

Code:
<?php
$id = intval($_GET['product']);

if (is_int($id)) {
    $sql = "SELECT * FROM products WHERE product = $id";
} else {
    $id = 1;   
    $sql = "SELECT * FROM products WHERE product = $id";
}
?>
Và nên tham khảo thêm các hàm is_numeric(), is_int() trong trang php.net nhé.
Ồ đây là những gì mình đang tìm kiếm
seaurchin viết 13:55 ngày 10/10/2018
Xài $id = (int)$id; Đơn giản vậy thôi. Chúc bạn học PHP tốt.
trannamcn viết 13:52 ngày 10/10/2018
$id=$_GET['id'];
if(is_numeric($id)==false)
{
$id=1;
}

Đúng yêu cầu của chủ thớt nhé !
Bài liên quan
0