【问题标题】:Contact forms values goes into URL [closed]联系表格值进入 URL [关闭]
【发布时间】:2018-11-14 22:06:29
【问题描述】:

所以我目前正在开发一个网站,我希望客户能够通过联系表格直接将邮件发送到我的电子邮件。我现在正在通过 wamp 服务器 3 运行所有文件,现在我正在测试邮件功能是否适用于侦听端口 25 的测试邮件服务器。

这是表单的 PHP 代码:

<?php

$myemail  = "test.xample@xample.com";

if (isset($_POST['email'])) 
{
    echo "Thank you for contacting us!";

    /* Set e-mail recipient */

    /* Check all form inputs using check_input function */
    $name = ($_POST['name']);
    $subject  = ($_POST['subject']);
    $email    = ($_POST['email']);
    $message = ($_POST['message']);

    /* If e-mail is not valid show error message */
    if (!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/", $email))
    {
        show_error("E-mail address not valid");
    }

    if ($name = "") 
    {
        show_error("You need to write your name...");
    }

    if ($email = "") 
    {
        show_error("You need to enter a email...");
    }

    if ($message = "") 
    {
        show_error("A message is required if you wish to have out help...");
    }
    /* Let's prepare the message for the e-mail */
    $mail = "Hello!

    Your contact form has been submitted by:

    Name: $yourname
    E-mail: $email

    Message:
    $Message

    End of message
    ";

    /* Send the message using mail() function */
    mail($myemail, $subject, $message);

    /* Functions we used */
    function check_input($data, $problem='error')
    {
        $data = trim($data);
        $data = stripslashes($data);
        $data = htmlspecialchars($data);
        if ($problem && strlen($data) == 0)
        {
            show_error($problem);
        }
        return $data;
    }

    function show_error($myError)
    {
    ?>
        <html>
        <body>

        <b>Please correct the following error:</b><br />
        <?php echo $myError; ?>

        </body>
        </html>
    <?php
    exit();
    }
}
?>

这是表单的 HTML 部分:

<form class="mt-5 ml-5 mr-5" method="_POST" action="handler.php" id="reused_form">
        <p id="contactForm" class="h4 text-center mt-5"><strong>Kontakta oss</strong></p>

        <!-- input text(Name) -->
        <div class="md-form">
            <i class="fa fa-user prefix">*</i>
            <input type="text" name="name" id="name" class="form-control">
            <label for="name">Ditt namn</label>
        </div>

        <!-- input email -->
        <div class="md-form mt-5">
            <i class="fa fa-envelope prefix">*</i>
            <input type="email" name="email" id="email" class="form-control validate">
            <label for="email" data-error="Fel" data-success="Rätt">Din email</label>
        </div>

        <div class="md-form mt-5">
            <i class="fa fa-user prefix"></i>
            <input type="text" id="subject" class="form-control">
            <label for="subject">Ämne</label>
        </div>

        <!-- input message -->
        <div class="md-form mt-5">
            <i class="fa fa-pencil prefix">*</i>
            <textarea type="text" name="message" id="message" maxlength="5000" class="form-control md-textarea" rows="3"></textarea>
            <label for="textareaPrefix">Meddelande</label>
        </div>

        <div class="text-center mt-4 mb-4">
            <button class="btn danger-color" type="submit">Skicka</button>
        </div>
    </form>

当我按下提交按钮时,唯一发生的事情是它被添加到 URL:

我对此测试的输入:

  • 姓名:asd
  • 电子邮件:asd@ad
  • 消息:asd

/handler.php?name=asd&amp;email=asd%40ad&amp;message=asd

所以它只是在 URL 中添加输入的值...

我需要帮助的是如何解决这个问题并能够邮寄。如果有人可以提供帮助,我将非常高兴。

【问题讨论】:

  • 您能从表单方法_POST 中删除下划线吗? 编辑,声誉农民来了!由于错字而投票关闭。
  • 就可以了。投票结束只是一个简单的错字。
  • 我推荐你使用 PHPMailer 之类的 PHP 邮件库。它对我有用。
  • @Amauri 这如何解决他们的问题?问题不在于发送电子邮件。它是以他们期望的方式将数据获取到表单中。
  • 有点遗憾 - 有人竭尽全力提供 MCVE 并提出一个相当合理的问题(而不是 d/v -> close -> move on)......一切都是为了一点点_ :|

标签: php html wampserver mail-server


【解决方案1】:

您正在使用method=_POST,这是不正确的方法,因此默认情况下,表单使用GET method 发送数据。

请尝试使用method=POST 而不是method=_POST,它将完美运行。

<form method="POST">
   .........
</form>

【讨论】:

  • 当答案是“你有一个不需要的下划线”时,不需要回答。只需在问题下方发表评论并标记/投票以关闭为题外话:错字。由于该页面对研究人员完全无用,因此该页面将很快从网站上删除(您收到的任何点赞也会如此)。
  • 感谢您的回答!它工作:)
  • 如果对您有用,请标记为已接受的答案:)
猜你喜欢
  • 1970-01-01
  • 2019-07-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多