【问题标题】:Why a php file cannot get data from html file using get method?为什么 php 文件无法使用 get 方法从 html 文件中获取数据?
【发布时间】:2015-09-10 04:40:38
【问题描述】:

我已经开始学习 php。我还尝试从 html 文件中获取数据并将所有这些数据打印到 phpfile 中。但它不起作用。我在这里我想使用 php 发送电子邮件。

这是我的 html 文件:

contact.html

<form id="contact-form" action="contact_email.php" method="get">
    <div class="contact-form-loader"></div>
    <fieldset>

        <label class="name">
            <input type="text" name="name" placeholder="Name:" value=""
                   data-constraints="@Required @JustLetters"/>
            <span class="empty-message">*This field is required.</span>
            <span class="error-message">*This is not a valid name.</span>
        </label>

        <label class="email">
            <input type="text" name="email" placeholder="Email:" value=""
                   data-constraints="@Required @Email"/>
            <span class="empty-message">*This field is required.</span>
            <span class="error-message">*This is not a valid email.</span>
        </label>

        <label class="phone">
            <input type="text" name="phone" placeholder="Phone:" value=""
                   data-constraints="@JustNumbers"/>
            <span class="empty-message">*This field is required.</span>
            <span class="error-message">*This is not a valid phone.</span>
        </label>


        <label class="message">
            <textarea name="message" placeholder="Message:"
                      data-constraints='@Required @Length(min=20,max=999999)'></textarea>
            <span class="empty-message">*This field is required.</span>
            <span class="error-message">*The message is too short.</span>
        </label>

        <div class="btn-wrapper">
            <a class="btn_2 text_3 color_7" href="#" data-type="reset">Clear</a>
            <a class="btn_2 text_3 color_7" name="submit" href="#" data-type="submit">Send</a>
        </div>
    </fieldset>
    <div class="modal fade response-message">
        <div class="modal-dialog">
            <div class="modal-content">
                <div class="modal-header">
                    <button type="button" class="close" data-dismiss="modal"
                            aria-hidden="true">&times;</button>
                    <h4 class="modal-title">Modal title</h4>
                </div>
                <div class="modal-body">
                    You message has been sent! We will be in touch soon.
                </div>
            </div>
        </div>
    </div>
</form>

contact_email.php

<?php
    if(isset($_GET['submit'])){

        $name=$_GET['name'];
        $email=$_GET['email'];
        $phone=$_GET['phone'];  
        $message=$_GET['message'];

        echo $name;
        echo $email;
        echo $phone;
        echo $message;

        $to='mmm@xxxx.com';
        $subject='New mail';
        $headers='From : '.$email."r\n".
                 'Reply-To : '.$email."r\n".
                 'X-Mailer: PHP/' . phpversion(); 
        mail($to,$subject,$message,$headers);

    }

    ?>

为什么无法从 html 文件中获取数据?

【问题讨论】:

  • 你是如何提交form的?
  • @b0s3 :我已经更改了代码。参考它。我已经为它使用了 Send

标签: php html


【解决方案1】:

您的提交按钮在哪里。试试下面的html

<form id="contact-form" action="contact_email.php" method="get">

                        <div class="contact-form-loader"></div>

                        <fieldset>



                            <label class="name">

                                <input type="text" name="name" placeholder="Name:" value=""

                                       data-constraints="@Required @JustLetters"/>

                                <span class="empty-message">*This field is required.</span>

                                <span class="error-message">*This is not a valid name.</span>

                            </label>



                            <label class="email">

                                <input type="text" name="email" placeholder="Email:" value=""

                                       data-constraints="@Required @Email"/>

                                <span class="empty-message">*This field is required.</span>

                                <span class="error-message">*This is not a valid email.</span>

                            </label>



                            <label class="phone">

                                <input type="text" name="phone" placeholder="Phone:" value=""

                                       data-constraints="@JustNumbers"/>

                                <span class="empty-message">*This field is required.</span>

                                <span class="error-message">*This is not a valid phone.</span>

                            </label>





                            <label class="message">

                                <textarea name="message" placeholder="Message:"

                                          data-constraints='@Required @Length(min=20,max=999999)'></textarea>

                                <span class="empty-message">*This field is required.</span>

                                <span class="error-message">*The message is too short.</span>

                            </label>



                            <div class="btn-wrapper">

                                <a class="btn_2 text_3 color_7" href="#" data-type="reset">Clear</a>

                                <input type="submit" name="submit" value="send" class="btn_2 text_3 color_7" data-type="submit"/>

                            </div>

                        </fieldset>

                        <div class="modal fade response-message">

                            <div class="modal-dialog">

                                <div class="modal-content">

                                    <div class="modal-header">

                                        <button type="button" class="close" data-dismiss="modal"

                                                aria-hidden="true">&times;</button>

                                        <h4 class="modal-title">Modal title</h4>

                                    </div>

                                    <div class="modal-body">

                                        You message has been sent! We will be in touch soon.

                                    </div>

                                </div>

                            </div>

                        </div>

                    </form>

顺便说一句,您应该使用 POST 方法而不是 GET 情况,例如联系表格。

【讨论】:

  • 谢谢,我会尽快尝试。
【解决方案2】:

a 标签不会成为$_GET 的一部分,因为它们不会作为表单数据提交。您必须有一些名称为 submitinput 字段才能使您的代码正常工作。或者您可以将其更改为其他一些字段。对于这种情况,email 应该是强制性的,因此您可以尝试使用 -

if(isset($_GET['email'])){ 
    // rest of the code 
}

如果没有必要使用GET 方法,请尝试使用POST 方法。

【讨论】:

    猜你喜欢
    • 2018-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-10
    • 1970-01-01
    • 2018-07-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多