Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Вместо POST данных приходят пустые данные

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
gmmm
Отправлено: 04 Сентября, 2021 - 08:57:01
Post Id


Новичок


Покинул форум
Сообщений всего: 1
Дата рег-ции: Сент. 2021  


Помог: 0 раз(а)




Всем привет, помогите, пожалуйста: есть js код, который срабатывает при submit формы для заказа обратного звонка:

CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. /* Обработка формы обратного звонка */
  3. popupForm.addEventListener("submit", (evt) => {
  4.   evt.preventDefault();
  5.  
  6.   popupForm.style.display = "none";
  7.   loading.style.display = "flex";
  8.  
  9.  
  10.   const backcall = {
  11.       name: evt.target.querySelector("#backcall-name").value,
  12.       phone: evt.target.querySelector("#backcall-phone").value,
  13.     };
  14.  
  15. const options = {
  16. method: 'POST',
  17. headers: {
  18. 'Content-Type': 'application/json',
  19. },
  20. body: JSON.stringify(backcall),
  21. };
  22.  
  23.   fetch("../php/backcall.php", options)
  24.     .then((res) => {
  25.       if (res.ok) {
  26.         loading.style.display = "none";
  27.         success.style.display = "flex";
  28.       } else {
  29.         throw new Error('Ошибка');
  30.       }
  31.     })
  32.     .catch(() => {
  33.       loading.style.display = "none";
  34.       fail.style.display = "flex";
  35.     });
  36.  
  37. });
  38.  


Далее данные должны отправиться судя по коду выше в файл backcall.php

PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3.  use PHPMailer\PHPMailer\PHPHMailer;
  4.  use PHPMailer\PHPMailer\Exception;
  5.  
  6.  require '../PHPMailer/src/Exception.php';
  7.  require '../PHPMailer/src/PHPMailer.php';
  8.  
  9.  $name =  $_POST['name'];
  10.  $phone =  $_POST['phone'];
  11.  
  12.  #$mail = new PHPMailer(true);
  13. $mail = new PHPMailer\PHPMailer\PHPMailer();
  14.  $mail->CharSet = 'UTF-8';
  15.  $mail->setLanguage('ru', '../PHPMailer/language/');
  16.  $mail->IsHTML(true);
  17.  
  18.  //От кого письмо
  19.  $mail->setFrom('backcall@сайт.рф', 'Компания');
  20.  //Кому отправить
  21.  $mail->addAddress('gmmm@yandex.ru');
  22.  //Тема письма
  23.  $mail->Subject = 'Запрос обратного звонка';
  24.  
  25.  $body = "<h3>Пользователь заказал обратный звонок</h3>";
  26.  $body.="<p><strong>Имя: </strong>$name</p>";
  27.  $body.="<p><strong>Телефон: </strong>$phone</p>";
  28.  
  29.  $mail->Body = $body;
  30.  
  31.  //Отправляем
  32. if (!$mail->send()) {
  33.     $message = 'Ошибка';
  34. } else {
  35.     $message = 'Данные отправлены!';
  36. }
  37.  
  38. $response = ['message' => $message];
  39.  
  40. header('Content-type: application/json');
  41. echo json_encode($response);
  42.  
  43. ?>
  44.  


Но в $_POST['name'] и $_POST['phone'] ничего нет.. Пусто. И получается в отправляемом письме тоже вместо них пусто. Почему так может быть?
С формы данные собираются корректно, проверил.

(Отредактировано автором: 04 Сентября, 2021 - 08:59:24)

 
 Top
Мелкий Супермодератор
Отправлено: 04 Сентября, 2021 - 13:39:18
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




gmmm пишет:
headers: {'Content-Type': 'application/json',},

Сами так попросили, откуда им в $_POST возникнуть?

Цитата:
An associative array of variables passed to the current script via the HTTP POST method when using application/x-www-form-urlencode d or multipart/form-data as the HTTP Content-Type in the request.


Не хотите следовать обычным content type - разбирайте тело запроса самостоятельно.


-----
PostgreSQL DBA
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB