SOFTELメモ Developer's blog

[php] curl_exec() でリクエストが送信されない

2022/03/18 未分類

問題

curl関数を使ってリクエストを送りたいのですが、curl_exec()でリクエストが送信されないです。

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL. 'https://www.google.com/recaptcha/api/siteverify');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, array(~~略~~));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$recaptcha_response = curl_exec($ch);

おかしいな?

答え

ここですね。

curl_setopt($ch, CURLOPT_URL. 'ht~
CURLOPT_URL. '~
          ~~~

カンマとピリオドを間違えていると思われるが、

文法的には問題なく、

curl関数としては謎の無効なオプションが指定されたような状態。

URLが指定されない状態で curl_exec()されていると思われる。

確認方法

エラーは以下で確認できる。

curl_error($ch);
curl_errno($ch);

この場合だと、curl_errorが "No URL set!" と教えてくれる。

修正案

カンマに修正すると、URLがセットされて、リクエストが送信できるはず。

curl_setopt($ch, CURLOPT_URL, 'ht~

関連するメモ

コメント