Server 2 ตัว ใช้ Curl_init() แล้วรัน ผ่าน Browser ไม่ได้ค่า Return กลับมา แต่ใช้ Command ของ Server รัน ได้ค่าจริงกลับมา
ผมมี Server อยู่ 2 Server
Server แรก ไฟล์ /xml/test.php
มีข้อมูลดังนี้
Code (PHP)
<?php header('Content-type: application/xml');
echo '<?xml version="1.0" encoding="utf-8"?> <FTSXML_FAHR> <VERSION/> <SESSION_ID/> <USER_TOKEN/> <STAYPERIOD> <CHECKINDATE>20151001</CHECKINDATE> <DURATION>1</DURATION> </STAYPERIOD><HOTEL> <SEQNO>1</SEQNO> <PRODUCT>H</PRODUCT> <CITY>BKK</CITY> <SERVICE>ploy</SERVICE> <T_O>DIRECT</T_O> <HOTELNAME>ploy</HOTELNAME> <ROOMINFO> <BASISNAME></BASISNAME><ROOM> <ROOMTYPE>DX</ROOMTYPE> <ADULT_NO>1</ADULT_NO> <CHILD_NO>0</CHILD_NO> <INFANT_NO>0</INFANT_NO> <BEDARRANGEMENT>SG</BEDARRANGEMENT> <ROOMDESCR>Duluxe / SINGLE ROOM</ROOMDESCR> <QUANTITY>0</QUANTITY> <STATUS>R</STATUS> <PRICE> <AMOUNT>100</AMOUNT> <CURRENCY>THB</CURRENCY> <PRICEBREAK> <BAMOUNT>100</BAMOUNT> <BSDATE>20151001</BSDATE> <BEDATE>20151001</BEDATE> <BTOTAMOUNT>100</BTOTAMOUNT> </PRICEBREAK> </PRICE> </ROOM><ROOM> <ROOMTYPE>SP</ROOMTYPE> <ADULT_NO>1</ADULT_NO> <CHILD_NO>0</CHILD_NO> <INFANT_NO>0</INFANT_NO> <BEDARRANGEMENT>SG</BEDARRANGEMENT> <ROOMDESCR>Superior / SINGLE ROOM</ROOMDESCR> <QUANTITY>0</QUANTITY> <STATUS>R</STATUS> <PRICE> <AMOUNT>120</AMOUNT> <CURRENCY>THB</CURRENCY> <PRICEBREAK> <BAMOUNT>120</BAMOUNT> <BSDATE>20151001</BSDATE> <BEDATE>20151001</BEDATE> <BTOTAMOUNT>120</BTOTAMOUNT> </PRICEBREAK> </PRICE> </ROOM></ROOMINFO> </HOTEL></FTSXML_FAHR>';?>
Server 2 ไฟล์ 1.php
มีข้อมูลดังนี้
Code (PHP)
<?php
echo $URL="http://203.144.224.xxx:85/xml/test.php";
//$URL="http://www.asiantrails.travel/xml/test.php";
$xml_rates = '';
$ch = curl_init($URL);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: text/xml'));
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $xml_rates);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$ch_result = curl_exec($ch);
echo $ch_result;
curl_close($ch);
?>
ผมลองเอา Server ที่ 2 รันผ่าน browser ด้วย Code 1.php ดูน่ะครับ ปรากฎว่า echo $ch_result; ได้ค่าว่าง
***แต่ผมเข้า Server รันด้วย Command php -f ชื่อไฟล์.php มันได้ค่าจริง return กลับมา
อยากทราบว่า ทำไมรัน ผ่าน Browser แล้วไม่ return ค่าจริงกลับมา ควรแก้ Code ที่ไหนใน Server 2 หรอคัรบTag : PHP
Date :
2015-03-02 18:13:02
By :
nut_ch31
View :
1251
Reply :
24
ผมไม่รู้ว่า ทำไม เรียก ด้วย command ถึงได้ผ่าน
เพราะ โค๊ด มันผิดอยู่ นิดนึงครับ
echo '<?xml version="1.0" encoding="utf-8"?> <FTSXML_FAHR>
แก้เป็น
echo '<'.'?xml version="1.0" encoding="utf-8"?'.'> <FTSXML_FAHR>
น่าจะผ่านทั้งสอง ตัว ตรง ?> แม้จะอยู่ใน quote มันก็ทำให้ผิดพลาดได้ครับ
Date :
2015-03-02 18:38:36
By :
Chaidhanan
ขอบพระคุณมากครับ จะลองทำดูน่ะครับ วันนี้
Date :
2015-03-03 08:36:54
By :
nut_ch31
แก้แล้วจ๊าก็ยังไม่ได้น่ะครับ
SV 1
Code (PHP)
<?php header('Content-type: application/xml');
$x= '<'.'?xml version="1.0" encoding="utf-8"?'.'><FTSXML_FAHR> <VERSION/> <SESSION_ID/> <USER_TOKEN/> <STAYPERIOD> <CHECKINDATE>20151001</CHECKINDATE> <DURATION>1</DURATION> </STAYPERIOD><HOTEL> <SEQNO>1</SEQNO> <PRODUCT>H</PRODUCT> <CITY>BKK</CITY> <SERVICE>ploy</SERVICE> <T_O>DIRECT</T_O> <HOTELNAME>ploy</HOTELNAME> <ROOMINFO> <BASISNAME></BASISNAME><ROOM> <ROOMTYPE>DX</ROOMTYPE> <ADULT_NO>1</ADULT_NO> <CHILD_NO>0</CHILD_NO> <INFANT_NO>0</INFANT_NO> <BEDARRANGEMENT>SG</BEDARRANGEMENT> <ROOMDESCR>Duluxe / SINGLE ROOM</ROOMDESCR> <QUANTITY>0</QUANTITY> <STATUS>R</STATUS> <PRICE> <AMOUNT>100</AMOUNT> <CURRENCY>THB</CURRENCY> <PRICEBREAK> <BAMOUNT>100</BAMOUNT> <BSDATE>20151001</BSDATE> <BEDATE>20151001</BEDATE> <BTOTAMOUNT>100</BTOTAMOUNT> </PRICEBREAK> </PRICE> </ROOM><ROOM> <ROOMTYPE>SP</ROOMTYPE> <ADULT_NO>1</ADULT_NO> <CHILD_NO>0</CHILD_NO> <INFANT_NO>0</INFANT_NO> <BEDARRANGEMENT>SG</BEDARRANGEMENT> <ROOMDESCR>Superior / SINGLE ROOM</ROOMDESCR> <QUANTITY>0</QUANTITY> <STATUS>R</STATUS> <PRICE> <AMOUNT>120</AMOUNT> <CURRENCY>THB</CURRENCY> <PRICEBREAK> <BAMOUNT>120</BAMOUNT> <BSDATE>20151001</BSDATE> <BEDATE>20151001</BEDATE> <BTOTAMOUNT>120</BTOTAMOUNT> </PRICEBREAK> </PRICE> </ROOM></ROOMINFO> </HOTEL></FTSXML_FAHR>';
echo $x;?>
SV2
Code (PHP)
<?php
echo $URL="http://203.144.224.xxx:85/inputter/xml/test.php";
//$URL="http://www.asiantrails.travel/xml/test.php";
$xml_rates = '';
$ch = curl_init($URL);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: text/xml'));
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $xml_rates);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$ch_result = curl_exec($ch);
echo $ch_result;
curl_close($ch);
?>
มันก็ยังไม่รู้จักกัน แต่แปลกตรงที่ SV อีกตัว (SV 3) ผมเอา Code SV 1 ไปแปะ แล้วเอา SV 2 เปลี่ยน URL มันก็แสดงค่าได้ปกติน่ะครับ ไม่รู้ว่าต้องเปิดอะไรใน php.ini หรือเปล่าอ่ะครับ
Date :
2015-03-03 08:49:04
By :
nut_ch31
ลองดู error log หรือยังครับ มันแจ้งว่ายังไง
Date :
2015-03-03 09:23:49
By :
Chaidhanan
เข้า sv 2 ก็ปิง sv 1 เจอน่ะครับ
Date :
2015-03-03 09:37:00
By :
nut_ch31
ที่ส่วนหัวไฟล์ php
<?php
error_reporting(E_ALL);
Date :
2015-03-03 09:40:13
By :
Chaidhanan
Code (PHP)
<?php error_reporting(E_ALL);
echo $URL="http://203.144.224.xxx:85/inputter/xml/test.php";
//$URL="http://www.asiantrails.travel/xml/test.php";
$xml_rates = '';
$ch = curl_init($URL);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: text/xml'));
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $xml_rates);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$ch_result = curl_exec($ch);
echo $ch_result;
curl_close($ch);
?>
แปะแล้วครับไม่ได้ค่าอะไรเลยครับ ใน command sv ก็ไม่ได้ error อะไรน่ะครับ
ประวัติการแก้ไข 2015-03-03 09:50:16
Date :
2015-03-03 09:49:07
By :
nut_ch31
ใน php info()
curl
cURL support enabled
cURL Information libcurl/7.16.0 OpenSSL/0.9.8g zlib/1.2.3
ก็ enabled แล้วด้วยน่ะครับ
Date :
2015-03-03 09:59:45
By :
nut_ch31
ใส่ที่ test.php ด้วย ครับ
Date :
2015-03-03 10:03:16
By :
Chaidhanan
ใส่แล้วครับทั้ง 2 ที่เลย ไม่มี error อะไรเกิดขึ้นเลยครับพี่
Date :
2015-03-03 10:14:10
By :
nut_ch31
remove ; from extension=php_curl.dll in php.ini ;
ensure that ssleay32.dll and libeay32.dll are in Windows/system32 ;
copy php_curl.dll into Windows\System32 as well.
ตอนนี้กำลังลองวิธีนี้อยู่ แต่ ข้อแรก มันได้ตั้งนานแล้ว ส่วนข้อสอง กำลังใส่ไฟล์เข้าไปอยู่
ส่ววข้อ3 ไม่มีไฟล์นี้อ่ะคัรบ T T
Date :
2015-03-03 10:14:59
By :
nut_ch31
ลงแล้วครับใน sv 1 ใน system32 ก็ยังไม่ได้ T T
Date :
2015-03-03 10:39:29
By :
nut_ch31
ใช้ อะไรเป็น server ครับ iis xamp wamp appserv
iis เปิด iis manager / PHP Manger / PHP Setting / Error LOG
นอกนั้น ก็ลองดูที่ tray icon
ถ้าไม่มี ก็เป็น window start / all program / xamp | wamp | appserv / log หรืออะไรนี่แหล่ะครับ จำไม่ได้แล้วครับหาดู
ต้องหา error log ให้เจอครับ จะได้รู้ว่าผิดเพราะอะไร
Date :
2015-03-03 10:49:03
By :
Chaidhanan
ใช้ Appserv 2.5.10 ครับ เรื่อง log ของ error นี้ไม่เคยทำเลยอ่าครับ พอจะมีแนะนำไหม๊ว่าดู log error จากที่ใด
Date :
2015-03-03 10:52:25
By :
nut_ch31
หรือผมควรลง Server ใหม่ดีครับ
Date :
2015-03-03 11:14:36
By :
nut_ch31
ถ้าลงใหม่ได้ ก็หา ค่ายอื่นนะครับ เขาบอกมาว่า appsrv เลิกพัฒนาแล้ว (เขาว่ามาครับ 5555)
แนะนำครับ IIS ถ้ายุ่งยาก ก็ xamp ครับ
Date :
2015-03-03 11:18:05
By :
Chaidhanan
แล้วพวก Code , Database ก็ต้อง backup แล้วโยนเข้าไปติดตั้งใหม่หรอครับ คือไม่เคยลง Xamp อ่ะครับ
Date :
2015-03-03 11:20:10
By :
nut_ch31
แล้วถ้าลงใหม่แล้วมันควรจะคุยกันได้เลยหรือเปล่าครับจะได้ลอง หา server อื่นลงดูก่อน ว่ามันจะคุยกันได้ไหม๊
Date :
2015-03-03 11:20:57
By :
nut_ch31
ลืมบอกไปน่ะครับ Sv 1 = window sv , Sv2 = Linux น่ะครับ
Date :
2015-03-03 11:29:04
By :
nut_ch31
แจ่มเลยครับ มีเครื่องอื่น ลองดูก่อน
Date :
2015-03-03 11:29:27
By :
Chaidhanan
เดี่ยวบ่ายนี้จะคุยกับ Admin ให้ลองลง Xampp ที่ Window เครือ่งอื่นแล้วจะเอาตัว Sv2 ยิงเข้ามาดูน่ะครับว่าได้ไหม๊ถ้าได้ก็จะใช้ Xampp เป็น Server แทน ขอบคุณพี่มากๆคัรบ
Date :
2015-03-03 11:31:36
By :
nut_ch31
Ok ได้แล้วน่ะครับ
ถ้าเปลี่ยนจากพอร์ต 85 => 80 แล้วจะใช้งานได้เลย
พอดี SV 1 นั้น มี asp.net ใช้งาน port 80 อยู่แต่พอ ลองปิดดูแล้วเปลี่ยนของผมเป็น port 80 ก็จะใช้งานได้แล้วครับ
ขอบคุณพี่ๆมากครับ
Date :
2015-03-03 15:15:52
By :
nut_ch31
Load balance : Server 02