Как подключить PHP скрипт для отправки данных из HTML формы?

У меня запущено Node.js-приложение на сервере с установленной на нем виртуальной машиной (ОС: Linux Debian 9). В приложении есть страница для отправки заказов на email.

Сама страница (templates/views/trips.hbs):

<!DOCTYPE html>

<html lang="en">
<head>
    <title>{{#if data.trip}}{{data.trip.title}}{{/if}}</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" type="text/css" href="/styles/custom/trip.css">
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
    <script>
        function showDiv () {
            let order = document.getElementById("order");
            if (order.style.display === 'flex') {
                order.style.display = 'none';
            } else {
                order.style.display = 'flex';
            }
        }
    </script>
</head>
<body>
    {{#if data.trip}}
        <div class="container" style="background: url('{{ cloudinaryUrl data.trip.coverImage }}') center no-repeat; background-size: cover; ">
            <div class="tour">
                <div class="content">
                    <h1 class="title">{{data.trip.title}}</h1>
                    <div class="info">
                        <p class="item">Duration: <br>{{data.trip.duration}}</p>
                        <p class="item">Distance: <br>{{data.trip.distance}}</p>
                        <p class="item">Price: <br>{{data.trip.price}}€</p>    
                    </div>
                    {{#if data.trip.content.additional}}
                        <div class="additional">
                            <p>{{{data.trip.content.additional}}}</p>
                        </div>
                    {{/if}}
                </div>
            </div>
        </div>
        <div class="extended">
            <p class="text">{{# if data.trip.content.extended }} {{{data.trip.content.extended}}} {{/if}}</p>
        </div>
        <div class="photos">
            {{#each data.trip.images }}
                <img src="{{cloudinaryUrl}}" class="list-photo" alt="{{../data.trip.title}} Photo">
            {{/each}}
        </div>
        <div class="order-container">
            <button class="order" onclick="showDiv()">Order</button>
            <div id="order" class="order-form">
                <h1 class="form-title">Order</h1>
                <form 
                        class="form-container" 
                        id="order-trip-form" 
                        name="simple-contact-form" 
                        accept-charset="utf-8" 
                        action="../../public/scripts/email.php" 
                        method="post"
                >
                    <div class="input-1">
                        <input class="input name" type="text" name="name" placeholder="Name" required="required">
                        <input class="input email" type="email" name="email" placeholder="Email" required="required">
                        <input class="input phone" type="text" name="phone" placeholder="Phone (Optional)" required="">
                        <input class="input number" type="number" name="number" placeholder="Number of people" required="required">
                    </div>
                    <div class="input-2">
                        <input class="input place" type="text" name="place" placeholder="Place to meet" required="required">
                        <input class="input date" type="date" name="date" placeholder="Date" required="required">
                        <textarea class="comments" name="comments" placeholder="Any comments" required=""></textarea>
                    </div>
                    <div class="submit-buttons">
                        <input type="hidden" name="_subject" id="email-subject" value="Contact Form Submission">
                        <input type="submit" name="submit" value="Submit" class="submit" id="submit">
                    </div>
                </form>
            </div>
        </div>
    {{/if}}
</body>
</html>

PHP-скрипт (public/scripts/email.php):

<?php
    if($_POST["submit"]) {
        $to = "[email protected]";
        $subject = "Order submission";
        $name = $_POST['name'];
        $from = $_POST['email'];
        $phone = $_POST['phone'];
        $number = $_POST['number'];
        $place = $_POST['place'];
        $date = $_POST['date'];
        $message = $_POST['comments'];

        $headers = "Name: $name \r\n";
        $headers .= "Email: $from \r\n";
        $headers .= "Phone: $email \r\n";
        $headers .= "Number of people: $number \r\n";
        $headers .= "Place to meet: $place \r\n";
        $headers .= "Date: $date \r\n";

        mail($to,$subject,$message,$headers);

        if (mail($to,$subject,$message,$headers)) {
            echo 'Success';
        } else {
            echo 'Failure';
        }
    }
?>

В форме указан путь к файлу emai.php На сервере вот он:

action="../../public/scripts/email.php"

введите сюда описание изображения

Но когда я нажимаю Submit при отправке формы я получаю ошибку 404 http://seebelarus.by/public/scripts/email.php Sorry, no page could be found at this address

Как мне правильно указать путь к файлу?

Отрекдатировано:

Путь к файлу нужно было изменить на ../../scripts/email.php, теперь файл скачивается, при нажатии на кнопку Submit. Каким образом можно заставить файл выполняться, а не скачиваться?


Ответы (0 шт):