这是我第一次来这里,也是第一次使用PHP。我对html和PHP的零知识知之甚少。
我正在尝试使用免费模板设置网站。除了联系我们表格中的发送电子邮件部分外,一切正常。
<form action="send_email.php" method="post">
<div class="form-group">
<!--<label for="contact_name">Name:</label>-->
<input type="text" id="contact_name" class="form-control" placeholder="Name" />
</div>
<div class="form-group">
<!--<label for="contact_email">Email:</label>-->
<input type="text" id="contact_email" class="form-control" placeholder="Email Address" />
</div>
<div class="form-group">
<!--<label for="contact_message">Message:</label>-->
<textarea id="contact_message" class="form-control" rows="9" placeholder="Write a message"></textarea>
</div>
<button type="submit" class="btn btn-primary">Send</button>
</form>
模板构建器说我必须创建自己的send_email.php文件,我尽力了解它,这是我从谷歌找到的,它是如何创建send_email.php的指南
<?php
$where_form_is="http".($HTTP_SERVER_VARS["HTTPS"]=="on"?"s":"")."://".$SERVER_NAME.strrev(strstr(strrev($PHP_SELF),"/"));
$Name = $_POST['Name'];
$Email = $_POST['Email Address:']; // This is the name= from the form
$Message = $_POST['Write a message:'];
$sendthis="Name ".$Name."// This compiles all info into a single string
Email Address ".$Email."
Write a message: ".$Message."
";
$sendthis = stripslashes($sendthis);
mail("myemail@gmail.com","Email sent via www.mywebsite.com",$sendthis,"From: customer");
header("Refresh: 0;url=http://mywebsite.com");
?>
好吧,当我试图测试电子邮件时。我收到了电子邮件,然而,其中没有任何内容。只有
Name // This compiles all info into a single string
Email Address
Write a message:
我没有在表单中输入任何名称或任何内容。
那么,请问您能告诉我代码的问题在哪里?我试图解决它几个小时但没有任何作用。
提前谢谢你。现在我真的不知道如何解决这个问题。
答案 0 :(得分:2)
您需要在html中添加name
个属性:
<form action="send_email.php" method="post">
<div class="form-group">
<input type="text" name="contact_name" id="contact_name" class="form-control" placeholder="Name" />
</div>
<div class="form-group">
<!--<label for="contact_email">Email:</label>-->
<input type="text" name="contact_email" id="contact_email" class="form-control" placeholder="Email Address" />
</div>
<div class="form-group">
<textarea name="contact_message" id="contact_message" class="form-control" rows="9" placeholder="Write a message"></textarea>
</div>
<button type="submit" class="btn btn-primary">Send</button>
</form>
然后你会将它们放在$_POST
数组中:
$Name = $_POST['contact_name'];
$Email = $_POST['contact_email'];
$Message = $_POST['contact_message'];
正如@Dagon所说,你甚至可以直接写:
$sendthis = "Name " . $_POST['contact_name'] . "\n"
. "Email Address " . $_POST['contact_email'] . "\n"
. "Write a message: " . $_POST['contact_message'] . "\n";
也只是一个建议:正确格式化您的代码,尤其是变量名称。你学习的时候比以后更容易养成良好的习惯:)