Проект AMP не исключает PHP-код как форму или даже как эхо - PullRequest
0 голосов
/ 17 марта 2019

У меня есть проект AMP для веб-сайта, и я хотел использовать PHP для форм.

В форме веб-страницы, в которой есть метод post, в бэкэнд-коде не возвращается никаких действий.Поэтому я думаю, что данные не передаются.


изменить при ответе:

Мой код формы:

        <form method="POST" class="sit-form" action-xhr="ampsend.php" data-form-title="contactForm">
                    <div class="sit-row">
                        <div submit-success="" class="sit-col-lg-12 sit-col-md-12 sit-col-sm-12">
                            <template data-form-alert="" type="amp-mustache">success!
                            </template>
                        </div>
                        <div submit-error="" class="sit-col-lg-12 sit-col-md-12 sit-col-sm-12">
                            <template data-form-alert="" type="amp-mustache">failed! {{error}}</template>
                        </div>
                    </div>
                    <div class="dragArea sit-row">
                        <div class="sit-col-md-12 field sit-col-sm-12">
                            <input type="hidden" name="firstnameHidden" value="Firstname"
                                   id="firstnameHidden"
                                   data-form-field="">
                            <input type="text" name="firstname" placeholder="Firstname" data-form-field="Name"
                                   required="required" class="field-input display-4" value=""
                                   id="firstname">
                        </div>
                        <div class="sit-col-md-12 field sit-col-sm-12">
                            <input type="hidden" name="lastnameHidden" value="Lastname"
                                   id="lastnameHidden"
                                   data-form-field="">
                            <input type="text" name="lastname" placeholder="Lastname" data-form-field="Name"
                                   class="field-input display-4" required="required" value=""
                                   id="lastname">
                        </div>
                        <div class="sit-col-md-12 field sit-col-sm-12">
                            <input type="hidden" name="emailHidden" value="Email" id="emailHidden"
                                   data-form-field="">
                            <input type="email" name="email" placeholder="Email" data-form-field="Email"
                                   required="required" class="field-input display-4" value=""
                                   id="email">
                        </div>
                        <div class="sit-col-md-12 sit-col-sm-12 field">
                            <input type="hidden" name="messageHidden" value="Message"
                                   id="messageHidden"
                                   data-form-field="">
                            <textarea name="message" placeholder="Message" data-form-field="Message"
                                      class="field-input display-4" required="required" value=""
                                      id="message"></textarea>
                        </div>
                        <div data-for=""
                             class="sit-col-md-12 sit-section-btn sit-pt-4 align-center sit-col-sm-12 field">
                            <button type="submit" class="btn btn-primary display-4">
                                send
                            </button>
                        </div>
                    </div>
                </form>

file_put_contents POST byнажмите на отправить:


a:8:{
s:15:"firstnameHidden";
s:9:"Firstname";
s:9:"firstname";
s:8:"TestName";
s:14:"lastnameHidden";
s:8:"Lastname";
s:8:"lastname";
s:12:"TestLastname";
s:11:"emailHidden";
s:5:"Email";
s:5:"email";
s:13:"test@test.com";
s:13:"messageHidden";
s:7:"Message";
s:7:"message";
s:11:"testMessage";}

Так это работает правильно?потому что в ответ я получаю "не удалось!"- сообщение из шаблона AMP.

Ответы [ 2 ]

0 голосов
/ 20 марта 2019

Мое решение проверить, работает ли PHP, и проверить, какие данные были отправлены через форму, - записать все в текстовый файл.

$serializedData = serialize($_POST);
file_put_contents('your_file_name.txt', $serializedData);

Открыть файл и посмотреть, какие данные были переданы.Если вы хотите отобразить сообщение после отправки формы и указать дату, например, имя или адрес электронной почты.Вам нужно использовать ампер усы.И верните JSON-форму PHP, чтобы передать ее обратно на страницу AMP.

Например, в вашем PHP-файле: header ('Content-Type: application / json');echo json_encode (array ('name' => $ _POST ['name]'));

Конечно, не забудьте поместить соответствующие заголовки CORS в PHP или в ваш файл .htaccess.

0 голосов
/ 18 марта 2019

Я думаю, что вы не можете выполнить код PHP в отображаемом документе. PHP предоставляет данные для показа через POST в отображаемом веб-документе, как описано в этом сообщении .

...