Задать вопрос
@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";
}

?>
  • Вопрос задан
  • 141 просмотр
Подписаться 1 Простой 4 комментария
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Stepik
    Язык программирования PHP
    1 неделя
    Далее
Пригласить эксперта
Ответы на вопрос 2
@AUser0
Чем больше знаю, тем лучше понимаю, как мало знаю.
Берите POST-запрос составленный вручную, и POST-запрос составленный в скрипте, и ищите разницу.
Видимо из-за разницы и происходит ERROR 500.

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

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

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