簡體   English   中英

基本聯系表單未在電子郵件PHP HTML5中顯示輸入信息

[英]Basic contact form not displaying input info in email PHP HTML5

我有一個使用PHP提交的基本聯系表。 提交后,我會收到一封電子郵件,但是不會顯示在該字段中輸入的信息。 但是,該信息已發送。 它顯示在瀏覽器的地址欄中,例如

../contact.phpurl=antispam&name=dfsaa&number=fdfd&email=fdsafds%40fds.com&message=Please+contact+me+regarding+this

面前:

<form action="contact.php">
<input class="form-control" id="name" name="name" placeholder="Name" type="text" required>
<input class="form-control" id="number" name="number" placeholder="Contact Number" type="text" required>
<input class="form-control" id="email" name="email" placeholder="Email" type="email" required>
<textarea class="form-control" id="message" name="message" placeholder="Message" rows="5">Please contact me regarding this...</textarea><br>
<button class="btn btn-default pull-right" type="submit">Send</button>
</form>

PHP:

    <?php
    $name = @trim(stripslashes($_POST["name"])); 
    $email = @trim(stripslashes($_POST["email"]));
    $number = @trim(stripslashes($_POST["number"]));
    $message = @trim(stripslashes($_POST["message"])); 

    $email_from = $email;
    $email_to = "sarah@blockcpm.com";

    $body = "Name: " . $name . "\n\n" . "Email: " . $email . "\n\n" . "Number: " . $number . "\n\n" . "\n\n" . "Message: " . $message;

    $success = @mail($email_to, $body, "Name: " . $name . "\n\n" . "Email: " . $email . "\n\n" . "Number: " . $number . "\n\n" . "Message: " . $message);


 ?>

 <!DOCTYPE HTML>
 <html lang="en-US">

 <head>
    <script>
        alert("Thank you for contacting us. A member of our team will be in touch as soon as possible.");

    </script>
    <meta HTTP-EQUIV="REFRESH" content="0; url= index.html">
  </head>

該聯系表單可以在另一個站點上完美地工作...這個站點在我未創建的godaddy網站上,我只是在擴展。

我收到的電子郵件具有所有字段標題,但沒有任何輸入信息。

有什么想法嗎?

默認情況下,表單的類型為GET,而不是POST,因為您要檢入PHP,因此數據通過$_GET而不是$_POST全局PHP變量可見。

由於您需要POST,因此請修改表單結構

<form action="contact.php">

應該

<form action="contact.php" type="post">

在您的PHP中,首先檢查請求方法是否為POST

<?php 
if (strtoupper($_SERVER['REQUEST_METHOD']) == 'POST') {
    //Get data and send email
    $name = trim($_POST['....']);
    ...
}

您尚未設置表單的method ,因此默認情況下會發出GET請求。

您在URL中看到的數據將用於填充$_GET

您需要在<form>元素上設置method="POST"來發出POST請求,使數據放入請求正文中,並顯示在$_POST

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM