summaryrefslogtreecommitdiffstats
path: root/web
diff options
context:
space:
mode:
authorAnton Raharja <antonrd@gmail.com>2016-09-06 10:58:21 +0700
committerGitHub <noreply@github.com>2016-09-06 10:58:21 +0700
commitfb2c20a5fed84cd1d189b5ac595f2ef87b365984 (patch)
tree3b68fe0878ed24fb16a4e438e133f24c3cfa8026 /web
parent619f0bda92e37c78c9045a6b353481306daf593a (diff)
parent31560a94771ff8cb1f197b659fbc46299a5141a3 (diff)
downloadplaySMS-master.zip
playSMS-master.tar.gz
playSMS-master.tar.bz2
Merge pull request #535 from Bootsector10/masterHEADorigin/masterorigin/HEADmaster
Fixed invalid JSON string response from Openvox. ref: https://forum.playsms.org/t/solved-send-sms-failed-in-report/1060/1
Diffstat (limited to 'web')
-rw-r--r--web/plugin/gateway/openvox/fn.php17
1 files changed, 16 insertions, 1 deletions
diff --git a/web/plugin/gateway/openvox/fn.php b/web/plugin/gateway/openvox/fn.php
index 6f898ea..3606090 100644
--- a/web/plugin/gateway/openvox/fn.php
+++ b/web/plugin/gateway/openvox/fn.php
@@ -50,7 +50,22 @@ function openvox_hook_sendsms($smsc, $sms_sender, $sms_footer, $sms_to, $sms_msg
_log("url:[" . $url . "]", 3, "openvox outgoing");
- $resp = json_decode(file_get_contents($url), true);
+ $result = file_get_contents($url);
+
+ $result = preg_replace('/[\x00-\x1F\x80-\xFF]/', '', $result);
+ $mesg_start = stripos($result, '":"');
+ $mesg_end = strrpos($result, '","report":');
+
+ if ($mesg_start and $mesg_end) {
+ $mesg_start += 3;
+ $mesg = substr($result, $mesg_start, $mesg_end - $mesg_start);
+ if ($mesg != '') {
+ $escaped_mesg = addcslashes($mesg, '"\\/');
+ $result = str_replace($mesg, $escaped_mesg, $result);
+ }
+ }
+
+ $resp = json_decode($result, true);
$data = $resp['report'][0][0][0];
// $data = $resp['report'][0][1][0];
$data['message'] = $resp['message'];