AMP Project不会将PHP代码作为Form甚至作为echo来执行

时间:2019-03-17 17:39:02

标签: php amp-html

我有一个网站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>

通过单击提交,POST的file_put_contents是:


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 :(得分:0)

我认为您无法在显示文档上执行PHP代码。 PHP正在提供数据,以通过this post中所述的POST在显示的Web文档上显示。

答案 1 :(得分:0)

我的解决方案(检查PHP是否正在运行,并检查通过表单发布的数据)是将所有内容都写入文本文件。

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

打开文件,查看传递了哪些数据。如果要在提交表单后显示消息,并传递一些日期,例如姓名或电子邮件。您需要使用amp-mustache。然后返回JSON形式的PHP,以将其传递回您的AMP页面。

例如,在您的PHP文件中:         header('Content-Type:application / json');         回声json_encode(array('name'=> $ _POST ['name]'));

当然不要忘记在PHP或.htaccess文件中放置适当的CORS标头。