- 締切済み
PHP データ 送受信
http://hogehoge.com/form.php http://hogehoge.com/send.php http://localhost.com/api.php http://hogehoge.com/send.phpにアクセスした際に http://hogehoge.com/form.phpで入力したデータを http://localhost.com/api.phpに飛ばす方法に困っています。 参考サイト http://blog.code4u.org/archives/407 send.php側 $url = 'http://localhost.com/api.php'; $params = array( 'name' => $name, 'email' => $email, 'address' => $address, 'tel' => $tel, ); $ch = curl_init(); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, TRUE); curl_setopt($ch, CURLOPT_RETURNTRANSFER, FALSE); curl_setopt($ch, CURLOPT_POSTFIELDS, $params); curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'Content-Type: application/x-www-form-urlencoded' ) ); $result = curl_exec($ch); curl_close($ch); と記述したのですが、 api.php でデータを受け取るコードがわからず困っています。 お分かりの方がいたらお願いします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
ごく普通に $_POST でいいのでは…もしかして curl_setopt($ch, CURLOPT_POSTFIELDS, $params); curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'Content-Type: application/x-www-form-urlencoded' ) ); としているのが原因でしょうか。普通は curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($params, '', '&')); とすると思います。配列を渡すと先頭の「@」の扱いで結構面倒なことになっちゃうので… http://kosugi.typepad.com/blog/2007/05/curlopt_postfields-problem.html http://stackoverflow.com/questions/648292/escaping-curl-symbol-with-php 参考までにこっちも↓ http://qiita.com/mpyw/items/2f9955db1c02eeef43ea