Доброго времени суток, пытаюсь сделать для сайта обработчик формы, который будет постить результат в телеграм, столкнулся с проблемой, форма не отправляется фото Нашел этот код в интернетах, попытался сам сделать его под свои нужды, но увы и ах. Буду рад если кто-то поможет найти ошибки в коде php <?php // Токен const TOKEN = 'скрыто'; // ID чата const CHATID = 'скрыто'; if ($_SERVER["REQUEST_METHOD"] == "POST") { $fileSendStatus = ''; $textSendStatus = ''; $msgs = []; // Проверяем не пусты ли поля с именем и телефоном if (!empty($_POST['name']) && !empty($_POST['link']) && !empty($_POST['ART']) && !empty($_POST['2D']) && !empty($_POST['3D']) && !empty($_POST['RIGlive2D']) && !empty($_POST['OTHER'])) { // Если не пустые, то валидируем эти поля и сохраняем и добавляем в тело сообщения. Минимально для теста так: $txt = ""; // Имя if (isset($_POST['name']) && !empty($_POST['name'])) { $txt .= "Имя пославшего: " . strip_tags(trim(urlencode($_POST['name']))) . "%0A"; } // ссылка связи if (isset($_POST['link']) && !empty($_POST['link'])) { $txt .= "Ссылка: " . strip_tags(trim(urlencode($_POST['link']))) . "%0A"; } // art if (!empty($_POST["ART"]) && is_array($_POST["ART"])) { $txt .= implode(" ", $_POST["ART"]); } // 2d if (!empty($_POST["2D"]) && is_array($_POST["2D"])) { $txt .= implode(" ", $_POST["2D"]); } // 3d if (!empty($_POST["3D"]) && is_array($_POST["3D"])) { $txt .= implode(" ", $_POST["3D"]); } //rig if (!empty($_POST["RIGlive2D"]) && is_array($_POST["RIGlive2D"])) { $txt .= implode(" ", $_POST["RIGlive2D"]); } // other if (!empty($_POST["OTHER"]) && is_array($_POST["OTHER"])) { $txt .= implode(" ", $_POST["OTHER"]); } // Не забываем про тему сообщения if (isset($_POST['theme']) && !empty($_POST['theme'])) { $txt .= "Тема: " . strip_tags(urlencode($_POST['theme'])); } $textSendStatus = @file_get_contents('https://api.telegram.org/bot'. TOKEN .'/sendMessage?chat_id=' . CHATID . '&parse_mode=html&text=' . $txt); if( isset(json_decode($textSendStatus)->{'ok'}) && json_decode($textSendStatus)->{'ok'} ) { echo json_encode('SUCCESS'); } else { echo json_encode('ERROR'); // // echo json_decode($textSendStatus); } } else { echo json_encode('NOTVALID'); } } else { header("Location: /"); } PHP <?php // Токен const TOKEN = 'скрыто'; // ID чата const CHATID = 'скрыто'; if ($_SERVER["REQUEST_METHOD"] == "POST") { $fileSendStatus = ''; $textSendStatus = ''; $msgs = []; // Проверяем не пусты ли поля с именем и телефоном if (!empty($_POST['name']) && !empty($_POST['link']) && !empty($_POST['ART']) && !empty($_POST['2D']) && !empty($_POST['3D']) && !empty($_POST['RIGlive2D']) && !empty($_POST['OTHER'])) { // Если не пустые, то валидируем эти поля и сохраняем и добавляем в тело сообщения. Минимально для теста так: $txt = ""; // Имя if (isset($_POST['name']) && !empty($_POST['name'])) { $txt .= "Имя пославшего: " . strip_tags(trim(urlencode($_POST['name']))) . "%0A"; } // ссылка связи if (isset($_POST['link']) && !empty($_POST['link'])) { $txt .= "Ссылка: " . strip_tags(trim(urlencode($_POST['link']))) . "%0A"; } // art if (!empty($_POST["ART"]) && is_array($_POST["ART"])) { $txt .= implode(" ", $_POST["ART"]); } // 2d if (!empty($_POST["2D"]) && is_array($_POST["2D"])) { $txt .= implode(" ", $_POST["2D"]); } // 3d if (!empty($_POST["3D"]) && is_array($_POST["3D"])) { $txt .= implode(" ", $_POST["3D"]); } //rig if (!empty($_POST["RIGlive2D"]) && is_array($_POST["RIGlive2D"])) { $txt .= implode(" ", $_POST["RIGlive2D"]); } // other if (!empty($_POST["OTHER"]) && is_array($_POST["OTHER"])) { $txt .= implode(" ", $_POST["OTHER"]); } // Не забываем про тему сообщения if (isset($_POST['theme']) && !empty($_POST['theme'])) { $txt .= "Тема: " . strip_tags(urlencode($_POST['theme'])); } $textSendStatus = @file_get_contents('https://api.telegram.org/bot'. TOKEN .'/sendMessage?chat_id=' . CHATID . '&parse_mode=html&text=' . $txt); if( isset(json_decode($textSendStatus)->{'ok'}) && json_decode($textSendStatus)->{'ok'} ) { echo json_encode('SUCCESS'); } else { echo json_encode('ERROR'); // // echo json_decode($textSendStatus); } } else { echo json_encode('NOTVALID'); } } else { header("Location: /"); } ну и сама форма на всякий form html <form class="work-request" name="sendreq" method="POST" autocomplete="off" enctype="multipart/form-data"> <div class="preloader"></div> <p class="contact-form__message"></p> <div class="work-request--options"> <span class="options-a"> <input id="ART" type="checkbox" value="art" name="ART"> <label for="ART"> Арт </label> <input id="2D" type="checkbox" value="2d model" name="2D"> <label for="2D"> Модель 2D </label> <input id="3D" type="checkbox" value="3d model" name="3D"> <label for="3D"> Модель 3D </label> </span> <span class="options-b"> <input id="RIGlive2D" type="checkbox" value="rig" name="RIGlive2D"> <label for="RIGlive2D"> Риг live2D </label> <input id="OTHER" type="checkbox" value="other" name="OTHER"> <label for="OTHER"> Прочее </label> </span> </div> <div class="work-request--information"> <div class="information-name"> <input id="name" type="text" spellcheck="false" name="name" required> <label for="name">Имя</label> </div> <div class="information-email"> <input id="link" type="text" spellcheck="false" name="link" required> <label for="link">Ссылка для связи</label> </div> </div> <input name="theme" type="hidden" value="заявка с сайта DionWorld.ru"> <input type="submit" value="Оставить заявку"> </form> HTML <form class="work-request" name="sendreq" method="POST" autocomplete="off" enctype="multipart/form-data"> <div class="preloader"></div> <p class="contact-form__message"></p> <div class="work-request--options"> <span class="options-a"> <input id="ART" type="checkbox" value="art" name="ART"> <label for="ART"> Арт </label> <input id="2D" type="checkbox" value="2d model" name="2D"> <label for="2D"> Модель 2D </label> <input id="3D" type="checkbox" value="3d model" name="3D"> <label for="3D"> Модель 3D </label> </span> <span class="options-b"> <input id="RIGlive2D" type="checkbox" value="rig" name="RIGlive2D"> <label for="RIGlive2D"> Риг live2D </label> <input id="OTHER" type="checkbox" value="other" name="OTHER"> <label for="OTHER"> Прочее </label> </span> </div> <div class="work-request--information"> <div class="information-name"> <input id="name" type="text" spellcheck="false" name="name" required> <label for="name">Имя</label> </div> <div class="information-email"> <input id="link" type="text" spellcheck="false" name="link" required> <label for="link">Ссылка для связи</label> </div> </div> <input name="theme" type="hidden" value="заявка с сайта DionWorld.ru"> <input type="submit" value="Оставить заявку"> </form> js на оочень всякий js (function ($) { $(".work-request").submit(function (event) { event.preventDefault(); // Сообщения формы let successSendText = "Сообщение успешно отправлено"; let errorSendText = "Сообщение не отправлено. Попробуйте еще раз!"; let requiredFieldsText = "Заполните поля с именем и контактом"; // Сохраняем в переменную класс с параграфом для вывода сообщений об отправке let message = $(this).find(".contact-form__message"); let form = $("#" + $(this).attr("id"))[0]; let fd = new FormData(form); $.ajax({ url: "../assets/php/stg.php", type: "POST", data: fd, processData: false, contentType: false, beforeSend: () => { $(".preloader").addClass("preloader_active"); }, success: function success(res) { $(".preloader").removeClass("preloader_active"); // Посмотреть на статус ответа, если ошибка // console.log(res); let respond = $.parseJSON(res); if (respond === "SUCCESS") { message.text(successSendText).css("color", "#6163a8"); setTimeout(() => { message.text(""); }, 4000); } else if (respond === "NOTVALID") { message.text(requiredFieldsText).css("color", "#d42121"); setTimeout(() => { message.text(""); }, 3000); } else { message.text(errorSendText).css("color", "#d42121"); setTimeout(() => { message.text(""); }, 4000); } } }); }); })(jQuery); JavaScript (function ($) { $(".work-request").submit(function (event) { event.preventDefault(); // Сообщения формы let successSendText = "Сообщение успешно отправлено"; let errorSendText = "Сообщение не отправлено. Попробуйте еще раз!"; let requiredFieldsText = "Заполните поля с именем и контактом"; // Сохраняем в переменную класс с параграфом для вывода сообщений об отправке let message = $(this).find(".contact-form__message"); let form = $("#" + $(this).attr("id"))[0]; let fd = new FormData(form); $.ajax({ url: "../assets/php/stg.php", type: "POST", data: fd, processData: false, contentType: false, beforeSend: () => { $(".preloader").addClass("preloader_active"); }, success: function success(res) { $(".preloader").removeClass("preloader_active"); // Посмотреть на статус ответа, если ошибка // console.log(res); let respond = $.parseJSON(res); if (respond === "SUCCESS") { message.text(successSendText).css("color", "#6163a8"); setTimeout(() => { message.text(""); }, 4000); } else if (respond === "NOTVALID") { message.text(requiredFieldsText).css("color", "#d42121"); setTimeout(() => { message.text(""); }, 3000); } else { message.text(errorSendText).css("color", "#d42121"); setTimeout(() => { message.text(""); }, 4000); } } }); }); })(jQuery);
if (!empty($_POST['name']) && !empty($_POST['link']) && !empty($_POST['ART']) && !empty($_POST['2D']) && !empty($_POST['3D']) && !empty($_POST['RIGlive2D']) && !empty($_POST['OTHER'])) Код if (!empty($_POST['name']) && !empty($_POST['link']) && !empty($_POST['ART']) && !empty($_POST['2D']) && !empty($_POST['3D']) && !empty($_POST['RIGlive2D']) && !empty($_POST['OTHER']))
Обменник, большое спасибо, помогло это, + почему-то когда форме присвоен name ни в какую не работало, заменил на id и успех