⊗ppPmRdSWP 407 of 447 menu

การเปลี่ยนเส้นทางด้วยตัวเองพร้อมเพิ่มพารามิเตอร์ใน PHP

สมมติว่าบนหน้า index.php มีการส่ง พารามิเตอร์ GET มาชื่อ arg มาแสดงผลเนื้อหาของมันบนหน้าจอ:

<?php echo $_GET['arg']; ?>

สมมติว่าหน้าของเราไม่สามารถทำงานได้อย่างถูกต้องโดยไม่มีพารามิเตอร์ GET ในกรณีของเรา เป็นเช่นนั้นจริงๆ เพราะถ้าไม่ได้ส่งพารามิเตอร์มา การเข้าถึง $_GET['arg'] จะทำให้เกิดข้อผิดพลาด

อาจมีคำถามว่าทำไมคนทั่วไป ถึงเข้ามายังหน้าของเราโดยไม่มีพารามิเตอร์? เพราะ เราสามารถใส่ลิงก์พร้อมพารามิเตอร์นี้ได้ทุกที่บนเว็บไซต์ของเรา อย่างไรก็ตาม นี่ไม่ใช่การรับประกัน: ผู้ใช้เว็บไซต์ของเราอาจจะ เช่น คัดลอก ลิงก์จากที่ไหนสักแห่งและสูญเสียพารามิเตอร์ไป หรืออาจลบมันโดยไม่ได้ตั้งใจ ขณะกำลังแก้ไขแถบที่อยู่

โดยรวมแล้ว ไม่ว่ากรณีใด ๆ รหัสของเราควรคาดการณ์ สถานการณ์ดังกล่าวและดำเนินการบางอย่างกับมัน แล้ว เราสามารถทำอะไรได้บ้าง?

สามารถตรวจสอบพารามิเตอร์ GET ของเราได้ว่า มีอยู่หรือไม่ และแสดงผลก็ต่อเมื่อ มันมีอยู่:

<?php if (isset($_GET['arg'])) { echo $_GET['arg']; } else { // ตอบสนองด้วยวิธีใดวิธีหนึ่ง เช่น ด้วยข้อความ } ?>

สามารถทำได้อย่างฉลาดกว่านี้:

<?php if (!isset($_GET['arg'])) { $_GET['arg'] = 'default'; // ค่าเริ่มต้น } echo $_GET['arg']; // แน่ใจว่าจะแสดงผลบางอย่างออกมาโดยไม่มีข้อผิดพลาด ?>

หรือสามารถทำได้โดยให้เมื่อเข้ามาที่ หน้าโดยไม่มีพารามิเตอร์ ให้เกิดการเปลี่ยนเส้นทาง ไปยังหน้าเดิมพร้อมพารามิเตอร์:

<?php if (!isset($_GET['arg'])) { header('Location: ?arg=default'); } echo $_GET['arg']; // มีพารามิเตอร์แน่นอน ?>

อธิบายว่าวิธีที่สองแตกต่างจากวิธีที่สามอย่างไร

สมมติว่าบนหน้า page.php สามารถส่ง ตัวเลขได้โดยใช้พารามิเตอร์ GET ชื่อ num จงทำให้เมื่อเข้ามา โดยไม่มีพารามิเตอร์นี้ จะดำเนินการเปลี่ยนเส้นทาง โดยอัตโนมัติไปยังหน้าเดิม แต่มีพารามิเตอร์ num โดยมีค่าเป็น 1

ไทย
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣTürkmenTürkçeЎзбекOʻzbekTiếng Việt
เราใช้คุกกี้สำหรับการทำงานของเว็บไซต์ การวิเคราะห์ และการปรับเนื้อหาให้เหมาะสมส่วนบุคคล การประมวลผลข้อมูลเกิดขึ้นตาม นโยบายความเป็นส่วนตัว.
ยอมรับทั้งหมด ปรับแต่ง ปฏิเสธ