@Napisator

Почему форма обратной связи php выдаёт ошибку?

Доброго времени суток !
пишу свой первый лендинг, проблема в форме обратной связи.
после заполнения и нажатия кнопки "отправить", перекидывает на страницу localhost:3000/php/send.php

где одна срока: Cannot POST /php/send.php

и вылетает ошибка в консоли:

Refused to execute inline script because it violates the following Content Security Policy directive: "default-src 'self'". Either the 'unsafe-inline' keyword, a hash ('sha256-KpHv3zgivMSB4dPnfYfqMt2lBibsYvM36EdoBBAsfbM='), or a nonce ('nonce-...') is required to enable inline execution. Note also that 'script-src' was not explicitly set, so 'default-src' is used as a fallback.


содержание файла send.php :

<?php
$back = "<p><a href=\"javascript: history.back()\">Вернуться назад</a></p>";

if(!empty($_POST['name']) and !empty($_POST['phone']) and !empty($_POST['mail'])
    and !empty($_POST['message'])){
    $name = trim(strip_tags($_POST['name']));
    $phone = trim(strip_tags($_POST['phone']));
    $mail = trim(strip_tags($_POST['mail']));
    $message = trim(strip_tags($_POST['message']));

    mail('byfokrr1@mail.ru', 'Пледы',
        'Вам написал: '.$name.'<br />Его номер: '.$phone.'<br />Его почта: '.$mail.'<br />
      Его сообщение: '.$message,"Content-type:text/html;charset=windows-1251");

    echo "Ваши данные успешно отправлено!<Br> Вы получите ответ в 
      ближайшее время<Br> $back";

    exit;
}
else {
    echo "Для отправки сообщения заполните все поля! $back";
    exit;
}
?>


файл pug:

form(method="post" action="../../php/send.php")
  label(for="name") Имя:
  input(maxlength="30" type="text" name="name")
  label(for="phone") Телефон:
  input(maxlength="30" type="text" name="phone")
  input(type="submit" value="Отправить")


файл js:

function checkForm(form) {

    var name = form.name.value;
    var n = name.match(/^[A-Za-zА-Яа-я ]*[A-Za-zА-Яа-я ]+$/);
    if (!n) {
        alert("Имя введено неверно, пожалуйста исправьте ошибку");
        return false;
    }

    var phone = form.phone.value;
    var p = phone.match(/^[0-9+][0-9- ]*[0-9- ]+$/);
    if (!p) {
        alert("Телефон введен неверно");
        return false;
    }
return true;
}


P.S. сайт запускаю через gulp
в gulpfile.js упоминаний о php файлах нет, этот первый, нужно ли прописывать блок, для того чтобы он так же перебрасывался в папку build ? И если нужно, то как это сделать ?
  • Вопрос задан
  • 962 просмотра
Пригласить эксперта
Ответы на вопрос 1
@LemonFox
stateless mind
Потому что для работы php нужен веб-сервер с php-интерпретатором может?
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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