簡體   English   中英

PHP變量未顯示在郵件中

[英]Php variables is not showing up in the mail

我正在建立一個在Wamp server 3下運行的網站,並且我有一個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']);
    $mail = "Hello!

    Your contact form has been submitted by:

    Name: $name
    E-mail: $email

    Message:
    $Message

    End of message
    ";

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

我已經通過運行SMTP Servermail()函數測試了代碼,並且一切正常,但是我的問題是我的變量$name, $message, $email沒有顯示在郵件中

這是郵件的外觀:

$mail = "Hello!

    Your contact form has been submitted by:

    Name: $name
    E-mail: $email

    Message:
    $Message

    End of message
    ";

但是郵件的結果如下所示:

你好!

您的聯系表格是由以下人員提交的:

名稱:

電子郵件:

信息:

訊息結束

所以變量的值是空的...

這是以下形式的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">Your name</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="Wrong" data-success="Right">Your 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">Subject</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">Message</label> </div> <div class="text-center mt-4 mb-4"> <button class="btn danger-color" type="submit">Submit</button> </div> </form> 

如果有人可以幫助我解決這個問題,我將非常高興。

像下面這樣在帖子中刪除這些大括號()

$name = $_POST['name'];
$subject  = $_POST['subject'];
$email    = $_POST['email'];
$message = $_POST['message'];

和下面的郵件mail($ myemail,$ subject,$ mail);

調試101:

檢查是否按預期發布了變量。 添加一個var_dump選項

if (isset($_POST['email'])) 
{
   var_dump( $_POST );

如果一切正確,請在處理后檢查值:

    $name = ($_POST['name']);
    $subject  = ($_POST['subject']);
    $email    = ($_POST['email']);
    $message = ($_POST['message']);
    var_dump( $name, $subject, $email, $message );

如果一切正確,則通過將變量括在大括號中來確保對變量進行了處理。

$mail = "Hello!

    Your contact form has been submitted by:

    Name: $name
    E-mail: {$email}

    Message:
    {$Message}

    End of message
    ";

您的代碼還有其他“問題”,因為您在發送數據之前沒有檢查或清理數據。

暫無
暫無

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

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