จะตรวจสอบได้อย่างไรว่าคำขอ GET ใดถูกส่งผ่าน? [ทำซ้ำ]

ดังที่ชื่อกล่าวไว้ ฉันจะทราบได้อย่างไรว่าค่า GET ใดที่ถูกส่งผ่านภายใน url

ใช้ http://www.example.com/view.php?id=20เป็นตัวอย่าง ค่า GET ปัจจุบันคือ 'id' โดยมีค่า 20 ซึ่งใช้งานได้ดี แต่ถ้าใครลองเปลี่ยนค่า GET ไปเป็นค่าอื่นที่ไม่ใช่ 'id' ฉันจะได้รับข้อผิดพลาด PHP จำนวนมากบนหน้าเว็บ

เป้าหมายของฉันคือการตรวจสอบว่าค่า GET ที่ส่งผ่านนั้นไม่ถูกต้อง ดังนั้นฉันจึงสามารถเปลี่ยนเส้นทางไปยังหน้าอื่นได้ ฉันจะทำอย่างนั้นได้อย่างไร?


person ndjsbj    schedule 18.01.2018    source แหล่งที่มา
comment
นั่นคือสิ่งที่ฉันมี แต่มันยังคงทำให้เกิดข้อผิดพลาดเพราะฉันมีคำถามสำหรับการค้นหา id ในฐานข้อมูลนอกเหนือจากคำสั่ง if ดังนั้นเมื่อใดก็ตามที่มีการส่งคำขอ get อื่น มันจะไม่พบ $_GET[ 'รหัส'] เปลี่ยนมันแล้ว ขอบคุณ!   -  person ndjsbj    schedule 18.01.2018
comment
แล้วการใส่เงื่อนไขก่อนแบบสอบถามล่ะ?   -  person Carl Binalla    schedule 18.01.2018
comment
@Waqas ที่ไม่เหมือนกันกับอันนี้ แต่มันเหมือนกับ stackoverflow.com/questions/12019684/   -  person Cemal    schedule 18.01.2018


คำตอบ (1)


คุณควรตรวจสอบพารามิเตอร์ URL ในกรณีของคุณ จะต้องเป็น id และจะต้องเป็น numeric:

if (isset($_GET['id']) && is_numeric($_GET['id']))

จากการตรวจสอบล่วงหน้า คุณสามารถตรวจสอบได้ว่า id เป็นจำนวนเต็มหรือไม่:

if((int)$_GET['id'] == $_GET['id']){
    return TRUE;            
} else {        
    return FALSE; // It's a number, but not an integer
}
person Milan Chheda    schedule 18.01.2018