การรับค่าจากตัวแบบ ผ่าน URL แบบต่าง ๆ


หน้าแรก PHP MySQL เกร็ดความรู้ การรับค่าจากตัวแบบ ผ่าน URL แบบต่าง ๆ
พอดีว่าอันนี้เป็นกระทู้ที่ไปตอบไว้ที่ พันทิพย์ เห็นว่าอาจจะมีประโยชน์ ก็เลยเอามาแปะที่นี่ด้วยละกัลล์

phpRookie wrote:
สงสัยเกี่ยวกับการส่งค่าผ่าน url อ่าคับ

คือปกติการส่งค่าผ่าน url จะส่งแบบ http://www.xxx.com/?val=value

แต่ผมเห็นบางเว็บเค้าส่งแบบ http://www.xxx.com/val?value

หรือ http://www.xxx.com/?vale เลย

แบบนี้เค้าส่ง และ รับค่ากันอย่างไรหรอครับ

ขอบคุณครับ


เริ่มอธิบายจากกรณีปกติก่อนละกัน

เช่นการส่งค่า
Code:
http://www.domain.com/index.php?foo=bar


เวลาเรารับเนี่ย ก็คือรับด้วย $_GET['foo'] ก็จะได้ค่า 'bar' มา
ซึ่งก็คือการอ่านค่าจาก array ชื่อ $_GET ที่ key=foo จะได้ค่า value=bar

คราวนี้มาดู
Code:
http://domain.com/index.php?module=mymodule1 http://domain.com/index.php?module=mymodule2 ...

เวลารับค่าก็จะเป็น
Code:
$_GET['module'] => '...'


แต่แทนที่จะเขียน module=... มันชักไม่เท่แล้วแฮะ หดมันเหลือแค่นี้ละกัน
Code:
http://domain.com/index.php?mymodule1 http://domain.com/index.php?mymodule2 ...


ตอนนี้ก็จะมาเดือดร้อนตอนรับค่าหน่อย จะกลายเป็นว่า
Code:
$_GET['mymodule1'] => '',
$_GET['mymodule2'] => '' 

หรือก็คือ ค่าที่เราอยากได้ มันย้ายจาก value มาอยู่ที่ key ของ array แทน
แต่ก็สามารถรับค่าออกมาได้ด้วย array_keys($_GET)

ส่วนที่ว่า http://www.domain.com/?value
นั่นก็คือ ส่งค่าไปยังไฟล์ index ที่ตั้งไว้ ซึ่งแล้วแต่โฮสต์จะตั้งไว้ ส่วนใหญ่ก็จะเป็น index.php หรืออาจจะเป็น default.php ก็ได้ ซึ่งจะให้ค่าเหมือนกับ http://www.domain.com/index.php?value

อธิบายไป ยังมึนไป เอิกๆๆ Image 


ขึ้นไปด้านบน