คือผมอยากทราบเกี่ยวกับวิธีส่งข้อมูลโดยใช้
opensock อ่ะครับ โดยส่งแบบที่มี header ไปด้วยอ่ะครับ
ปัญหาคือ ผมไม่รู้ว่า header ต้องใส่อะไรไปเท่าไรบ้างอ่ะครับ หลักๆที่ต้องส่งมีอะไรบ้างอ่ะครับ
แล้วส่งไปแล้วเป็น xml จะมีฟังก์ชั่นอะไรในการรับค่าที่มาจาก post โดยที่เราไม่ทราบตัวแปรบ้างอ่ะครับ
เคยทำแต่พวกส่งผ่านเพจแต่ ครั้งนี้ต้องติดต่อกับ ที่อื่น จนปัญญาเลยอ่ะครับรบกวนใครมีความรู้ บอกหน่อยนะครับ
เรื่องการส่ง post request
Moderators: mindphp, ผู้ดูแลกระดาน
- oxygenyoyo
- PHP Hero Member
- Posts: 140
- Joined: 01/01/1970 7:00 am
Re: เรื่องการส่ง post request
คุณ mindphp รบกวนถ้าดูแล้วบอกหน่อยครับว่าผมอธิบายไม่ละเอียดหรือว่าอย่างไรครับ
- mindphp
- ผู้ดูแลระบบ MindPHP
- Posts: 22607
- Joined: 22/09/2008 6:18 pm
- Contact:
Re: เรื่องการส่ง post request
ผมไม่รู้จัก opensock ครับ มันคืออะไร หรือครับ
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
- oxygenyoyo
- PHP Hero Member
- Posts: 140
- Joined: 01/01/1970 7:00 am
Re: เรื่องการส่ง post request
โทษทีครับผมรีบพิมพ์
ฟังก์ชั่น fsockopen ครับ
เค้าให้เอกสารบอกว่าจะส่งมาอย่างนี้อ่ะครับ
HTTP POST
The standard format for the POST method is:
POST <URL> HTTP 1.x <CRLF> [message-body]
All content is URL encoded.
ฟังก์ชั่น fsockopen ครับ
เค้าให้เอกสารบอกว่าจะส่งมาอย่างนี้อ่ะครับ
HTTP POST
The standard format for the POST method is:
POST <URL> HTTP 1.x <CRLF> [message-body]
All content is URL encoded.
- mindphp
- ผู้ดูแลระบบ MindPHP
- Posts: 22607
- Joined: 22/09/2008 6:18 pm
- Contact:
Re: เรื่องการส่ง post request
php สามารถสั่ง หรือ ส่ง Post ค่าไปที่ Server อื่น ที่ผมทราบ เละเคยทดสอบ มี สอง วิธี คือ
1. ใช้ socket ก็ function ที่ คุณ oxygenyoyo บอกมาคือ ใช้ fsockopen
2. ใช้ Curl lib
โดยทั้งสองแบบ ตอนส่ง ต้องกำหนด ในส่วน ของ Header กับ body ไป ทำเลียนแบบ การส่ง จากหน้า page
ทั้งนี้ต้องเช็คค่า response ด้วย
1. ใช้ socket ก็ function ที่ คุณ oxygenyoyo บอกมาคือ ใช้ fsockopen
2. ใช้ Curl lib
โดยทั้งสองแบบ ตอนส่ง ต้องกำหนด ในส่วน ของ Header กับ body ไป ทำเลียนแบบ การส่ง จากหน้า page
ทั้งนี้ต้องเช็คค่า response ด้วย
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
- oxygenyoyo
- PHP Hero Member
- Posts: 140
- Joined: 01/01/1970 7:00 am
Re: เรื่องการส่ง post request
ผมได้ทำการจองการส่งเป็นอย่างนี้ครับ
แต่ค่าที่กลับมาคือ
คำว่าไม่มีข้อมูลนั้นลองทำการเช็คดูว่ามีการส่งค่า post มาหรือเปล่าโดย var_dump($_POST);
แล้วเช็ค if ดูอ่ะครับ
ผมไม่รู้จะทำยังไงดีอ่ะครับ
Code: Select all
$port = "80";
$path = "/dna/recive_feed_update_ucl.php";
$host = "localhost";
$method = "POST";
$contenttype = "text/xml";
$data = $data;
// script
if($port == 443)
$sslhost = "ssl://".$host;
else
$sslhost = $host;
$fp = fsockopen($sslhost, $port);
fputs($fp, "$method $path HTTP/1.1\r\n");
fputs($fp, "Host: $host\r\n");
fputs($fp, "Content-type: $contenttype\r\n");
fputs($fp, "Content-length: ".strlen($data)."\r\n");
fputs($fp, "Connection: close\r\n");
fputs($fp, "\r\n$data");
while (!feof($fp)) {
echo fgets($fp, 128);
}
fclose($fp);
Code: Select all
HTTP/1.1 200 OK Date: Mon, 29 Sep 2008 04:37:25 GMT Server: Apache/2.2.3 (Win32) PHP/5.1.6 X-Powered-By: PHP/5.1.6 Content-Length: 13 Connection: close Content-Type: text/html ไม่มีข้อมูล
คำว่าไม่มีข้อมูลนั้นลองทำการเช็คดูว่ามีการส่งค่า post มาหรือเปล่าโดย var_dump($_POST);
แล้วเช็ค if ดูอ่ะครับ
ผมไม่รู้จะทำยังไงดีอ่ะครับ
- mindphp
- ผู้ดูแลระบบ MindPHP
- Posts: 22607
- Joined: 22/09/2008 6:18 pm
- Contact:
Re: เรื่องการส่ง post request
ลอง สั่ง Post ค่า ไปที่ Host ที่เป็น http ธรรมดาก่อน (ทำทั้งจำลองของตัวเอง และ up ไปที่ Host อื่น ที่ใช้ OS ต่าง กัน)
แล้วค่อย test กับ ssl ทั้ง สอง host อีกที
ปล. ต้องแน่ใจด้วยว่า ใช้อะไรเป็นตัวแยกระหว่าง Head กับ data ผมเห็นตอนนี้ใช้ "\r\n" ลองเป็น "\n" ด้วย ได้ผลยังไงบอกด้วยครับ
แล้วค่อย test กับ ssl ทั้ง สอง host อีกที
ปล. ต้องแน่ใจด้วยว่า ใช้อะไรเป็นตัวแยกระหว่าง Head กับ data ผมเห็นตอนนี้ใช้ "\r\n" ลองเป็น "\n" ด้วย ได้ผลยังไงบอกด้วยครับ
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
- oxygenyoyo
- PHP Hero Member
- Posts: 140
- Joined: 01/01/1970 7:00 am
Re: เรื่องการส่ง post request
HTTP/1.1 200 OK Date: Mon, 29 Sep 2008 04:55:47 GMT Server: Apache/2.2.3 (Win32) PHP/5.1.6 X-Powered-By: PHP/5.1.6 Content-Length: 81 Connection: close Content-Type: text/html array(0) { } Array ( [1] => [value] => [0] => 0 [key] => 0 )
บรรทัดบนคือแก้จาก \r\n เป็น \n ก็ยังผลเหมือนเดิม แต่ test ในเครื่องครับ
HTTP/1.1 200 OK Content-Type: text/html Server: Microsoft-IIS/6.0 X-Powered-By: PHP/4.4.6 X-Powered-By: ASP.NET Date: Mon, 29 Sep 2008 05:11:10 GMT Connection: close array(0) { } Array ( [1] => [value] => [0] => 0 [key] => 0 )
บรรทัดบนคือแก้จาก \r\n เป็น \n แต่ test ที่โฮสครับ
ส่วนเรื่อง ssl ไม่ต้องสนใจก็ได้ครับผมตอนนี้ก็ต้องการแบบธรรมดาให้ส่งค่าได้ก่อน
บรรทัดบนคือแก้จาก \r\n เป็น \n ก็ยังผลเหมือนเดิม แต่ test ในเครื่องครับ
HTTP/1.1 200 OK Content-Type: text/html Server: Microsoft-IIS/6.0 X-Powered-By: PHP/4.4.6 X-Powered-By: ASP.NET Date: Mon, 29 Sep 2008 05:11:10 GMT Connection: close array(0) { } Array ( [1] => [value] => [0] => 0 [key] => 0 )
บรรทัดบนคือแก้จาก \r\n เป็น \n แต่ test ที่โฮสครับ
ส่วนเรื่อง ssl ไม่ต้องสนใจก็ได้ครับผมตอนนี้ก็ต้องการแบบธรรมดาให้ส่งค่าได้ก่อน
Users browsing this forum: Google [Bot] and 17 guests