|
|
|
ไม่เข้าใจความหมายของ $_POST อยากทราบว่า $_POSTมันใช้ยังไงและมีประโยชน์ตอนไหนค่ะ ทำไมต้องใช้ด้วย |
|
|
|
|
|
|
|
ใช้ตอนส่งค่าตัวแปรผ่านฟอร์ม มาพักไว้ในตัวแปร สำคัญนะครับ (ผมจะย้ำเสมอๆ)
วิธีใช้ก็คือ รับค่า มาพักไว้ในตัวแปร
สมมุตินะครับว่า เราส่งค่า textbox มาชือ่ว่า name จากฟอร์ม
เราก็รับค่ามาไว้ในตัวแปร
สมมุติเราจะให้ชื่อตัวแปรว่า cat รับค่า name จากฟอร์มที่ส่งมาเพื่อเอาไปประมวลผลนะครับก็
$cat = $_POST["name"];
ทำไมต้องใช้
เพราะถ้าไม่ใช้ เมื่อ server เราได้ปิดฟังก์ชั่น Register_globals=Off เพื่อป้องกันการ hack sever
เราจะรับค่าต่าง ๆ โดยไม่ผ่านพวกนี้ไม่ได้เลยครับ โปรแกรมเราก็จะผิดพลาด แฮ่ก ๆ ๆ โอย ไอ้แก่เหนื่อยพิมพ์แล้ว
คนต่อไป เชิญเสริม
deawx
[email protected]
ปรึกษา PHP ฟรีจ้า
|
|
|
|
|
Date :
2009-09-22 22:42:18 |
By :
deawx |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
โหเพ่deawx ยังหนุ่มยังแน่
มีการส่งข้อมูล 2 แบบ คือ POST และ GET
POST เป็นการส่งข้อมูลจากฟอร์มไปยังสครปต์โดยตรง โดยไม่ผ่าน URL ทำให้เราไม่สามารถมองเห็นข้อมูลดังกล่าวได้ด้วยวิธีปกติ แบบนี้จึงเหมาะกับข้อมูลขนาดใหญ่ๆ หรือข้อมูลที่ต้องการปิดเป็นความลับ เช่น หน้าจอล็อกอิน
เช่น login.php?username=&pass=
GET เป็นการส่งข้อมูลจากหอร์มผ่านทาง URL ของเว็บเพจโดยตรง วิธีนี้ไม่ปลอดภัย เพราะข้อมูลที่ส่งผ่านไปให้สคริปต์นั้น จะถูกแสดงออกมาในรูปของข้อความธรรมดา ใน URL ซึ่งเราจะเห็นในช่อง Address Bar ของบราวเซอร์
เช่น login.php?username=test&pass=1234
|
|
|
|
|
Date :
2009-09-22 22:54:39 |
By :
somparn |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
อิอิอิอิ คิดว่าคุณดรีมเอ็กซ์ไม่น่าจาแก่ไปกว่าผมหรอกครับ
เวลาเรียกตัวเองไอ้แก่นี่ดูไม่ดีเลย เรียกว่าสูงวัยดีกว่าไหมครับ
ไม่มีอะไรจะเสริมครับ พีเอชพีเบสิกเสริมไปแล้ว
|
|
|
|
|
Date :
2009-09-22 23:01:05 |
By :
NanoTHoro |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ถ้าจะใช้ให้สมบูรณ์แบบที่คุณเดียวx ว่าไว้ ก็น่าจะใช้แบบนี้
Code (PHP)
<?php
if (isset($_POST['name'])) {$cat = $_POST['name'];} else {$cat = "";}
?>
เพราะถ้าไปเจอ server บางตัวที่กำหนด php แบบต่างๆกัน มันจะเอ๋อเหรอได้ ไม่ว่าจะ undefine อะไรพวกนี้
เวลาเขียน php ให้ลองกำหนด error เป็น all ดู แล้วเขียนแค่ echo $cat; ลอยๆ ทั้งหน้ามีแค่นี้ แล้วจะเห็นเองว่ามันแจ้งอะไรออกมาบ้าง ซึ่งจะแก้ได้ก็คือเขียนตัวอย่างข้างบนลงไปเหนือ echo
เพราะหากยังไม่มี post เข้ามามันก็ยังกำหนดตัวแปรเป็น null
|
|
|
|
|
Date :
2009-09-22 23:01:11 |
By :
mr.v |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
หมายถึงให้มีการตรวจสอบว่ามีการโพสเข้ามาก่อนใช่ไหมคุณวี ถ้ามีการโพสเข้ามาแล้วจึงรับค่าใช่ไหมครับ ผมเข้าใจถูกไหม
ไม่เคยใช้ เดี๋ยวต้องลองใช้ดูและ เท่าที่คุณีบอกมันน่าจะป้องการข้อผิดพลาดบางประการได้
|
|
|
|
|
Date :
2009-09-22 23:37:18 |
By :
NanoTHoro |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ถูกครับ เพราะสมมุติว่าหน้าเดียวกัน มีทั้ง post และไม่ post
หากเราเรียก $cat เลยในกรณีที่ไม่ post มันจะ notice โผล่แน่นอน
ผมเคยอ่านเจอเค้าบอกว่าตอนเราเขียนให้ error all ไว้แล้วเขียนไม่ให้มีอะไรโผล่เลย ทั้ง error warning notice
ผมลองเปิดดูโค้ดของพวกสำเร็จรูปต่างๆ เค้าก็ใช้แบบนี้กัน ผมก็เลยเอาบ้าง
|
|
|
|
|
Date :
2009-09-22 23:48:44 |
By :
mr.v |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เขีนแบบ สั้นๆ ก็จะได้แบบนี้ครับ
<?php
(isset($_POST['name'])) ? $cat = $_POST['name'] : $cat = "";
?>
ถ้ามีการประกาศตัวแปรโพสชื่อ name ก็ให้ ตัวแปร $cat เท่ากับ แปรโพสชื่อ name ถ้าไม่ได้ประกาศก็ให้ ตัวแปร $cat เท่ากับ ""
|
|
|
|
|
Date :
2009-09-23 08:20:31 |
By :
DownsTream |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณครับคุณดาวส์ทรีม งั้นผมถามต่อไปอีกนิดละกันครับว่าระหว่าง
$_REQUEST
$_POST
$HTTP_POST_VAR
และการับค่าโดยตรงแบบไม่ใช้ 3 ตัวที่กล่าวมา เช่น ที่ฟอร์มมี text ชื่อ name เราสามารถใช้ $name ในพีเอชพีได้เลย
ทั้งหมดนี้ มีข้อดี ข้อเสีย แตกต่างกันอย่างไร และควรจะเลือกใช้ตัวไหนดีที่สุดครับ
รบกวนคุณเดียวเอ็กซ์ คุณวี คุณดาวส์ทรีม คุณมิสสะเตอร์วิน คุณปลากริม และคนอื่นๆ ช่วยออกความเห็นกันหน่อยครับ
ปล. ไม่จำเป็นต้องเทพนะครับ (เดี๋ยวมีคนบอกว่าไม่ใช่เทพไม่เสนอแนวคิดอีก จริงไหมคุณปลากิรม อิอิอิ)
|
|
|
|
|
Date :
2009-09-23 09:34:23 |
By :
NanoTHoro |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ถ้าใช้ $name เลยเนี่ยจะมีปัญหาบาง server จะไม่รับค่าอะไรเลย ดังนั้นเลยต้อง $_POST['name'] ด้วย
$_REQUEST
$HTTP_POST_VAR
สองตัวนี้ไม่เคยใช้ครับ มันเป็นยังไงหนอ?
การใช้ก็ขึ้นอยู่กับ form method ว่าจะเป็น get/post ก็เลือกใช้ $_GET/$_POST ตามนั้นจะดีกว่า(มั้ง)
|
|
|
|
|
Date :
2009-09-23 13:30:40 |
By :
mr.v |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ได้ความรู้
|
|
|
|
|
Date :
2009-09-23 15:41:33 |
By :
giroo |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
โดยปกติผมใช้ $_REQUEST อยู่ครับ แต่เข้ามาในนี้ได้เจอ $_POST เลยสงสัยเหมือนกันครับ
|
|
|
|
|
Date :
2009-09-23 15:51:35 |
By :
NanoTHoro |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ปกติผมใช้ $_POST กับ $_GET อ่ะครับ
|
|
|
|
|
Date :
2009-09-23 16:44:42 |
By :
pokultra |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$_REQUEST มีข้อดีของมันอยู่ครับ คือว่า เราไม่ได้สนใจว่าตอนส่ง ส่งแบบ GET หรือ POST มันสามารถรับค่าได้หมดครับ แต่ถ้าหากคุณไปเขียน app จริง จะรู้ว่าการรับแบบ $_REQUEST มันไม่ secure เท่าไหร่กับ script ของคุณ
|
|
|
|
|
Date :
2009-09-24 17:22:16 |
By :
joekung |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 01
|