@AlShest

Почему не работает форма отправки email?

Здравствуйте!

Я хочу добавить на страницу форму подписки, используя API Юнисендера.
Нашел, как использовать метод subscribe, подготовил обработчик. Но при отправке получаю ошибку HTTP ERROR 500.
Если составлять запрос вручную, то введенный адрес добавляется в список.

Вот форма:
<form action="subscribe.php" method="POST">
						<input type="email" class="input" placeholder="Your Email Address" name="fields[email]" required autocomplete="off">
						<button type="submit">
							Subscribe Now
						</button>

					</form>


Вот код:
<?php
require_once("unisenderapi.php"); 
$api_key = "тут ключ"; 
$uni = new UniSenderApi($api_key); 
$user_lists = "тут id списка";
$user_tag = urlencode("Added using API");

$POST = array (
    'api_key' => $api_key,
    'list_ids' => $user_lists,
    'fields[email]' => $user_email,
    'double_optin' => 3,
    'tags' => $user_tag
);

$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $POST);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_URL, 'http://api.unisender.com/ru/api/subscribe?format=json');
$result = curl_exec($ch);

if ($result) {
  $jsonObj = json_decode($result);

  if(null===$jsonObj) {
    echo "Invalid JSON";
  }
  elseif(!empty($jsonObj->error)) {
    echo "An error occured: " . $jsonObj->error . "(code: " . $jsonObj->code . ")";
  } else {
    echo "Added. ID is " . $jsonObj->result->person_id;

  }
} else {
  echo "API access error";
}

?>
  • Вопрос задан
  • 115 просмотров
Пригласить эксперта
Ответы на вопрос 2
@AUser0
Чем больше знаю, тем лучше понимаю, как мало знаю.
Берите POST-запрос составленный вручную, и POST-запрос составленный в скрипте, и ищите разницу.
Видимо из-за разницы и происходит ERROR 500.

Кстати, точно должно быть http://, не https:// ?
Ответ написан
@pantsarny
Вы в посте подмассив ручками составляете, пусть пхп сделает это за вас
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы