私のコントローラに、コールバックURLからデータを取得する関数があります。そして、データは自動的にデータベースに更新されます。codeigniterでfile_get_contentsが機能しない
私のコールバックURLはhttp://example.com/API/sendSMSCallback
あると
{"result":{"status":"success","req_id":"0d0dd0ce8-dadf-49fd-a49e-9845787e0507","msisdn":"91xxxxxxx, "}}
を次のようにこれはJSON形式で
public function sendSMSCallback() {
$json = file_get_contents('php://input');
$data = array('value' => $json, 'date' => date('Y-m-d h:i:s'));
$this->db->insert('test', $data); // for testing
$json = urldecode($json);
$obj = json_decode($json,TRUE);
$reqID = $obj['req_id'];
$status = $obj['status'];
$mobile = $obj['msisdn'];
$this->db->where('UniqueID', $reqID);
$this->db->where('MobileNo', $mobile);
$this->db->set('ResponseStatus', $status);
$this->db->update('smslog_tbl');
// for testing
$this->load->helper('file');
if (! write_file(base_url().'test.txt', $json)){
echo 'Unable to write the file';
}
else{
echo 'File written!';
}
}
予想データ私のsendSMSCallback機能APIのコントローラであります
は何も更新されませんsmslog_tblテーブルとtest.txtは空です。 テストテーブルに新しい行が挿入されますが、値フィールドは空です。解決策を見つけるのを手伝ってください。事前に感謝
UPDATE: テーブル構造:すべてのHTTP POSTデータのテスト
`id` int(11) NOT NULL,
`value` text COLLATE latin1_general_ci NOT NULL,
`date` datetime NOT NULL
テストテーブル構造のpls –
は '$のJSON =のfile_get_contents( 'PHP://入力')の後、私の質問 – geeth
に更新;' 'のvar_dump($のJSON)をやろう;'とすべてのデータが来て見ます実際にそうでないか? –