การรับค่าจากตัวแบบ ผ่าน 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 เลย
แบบนี้เค้าส่ง และ รับค่ากันอย่างไรหรอครับ
ขอบคุณครับ
คือปกติการส่งค่าผ่าน 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'] => ''
$_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
อธิบายไป ยังมึนไป เอิกๆๆ
ขึ้นไปด้านบน
