努力使联系表有效 (HTML5/PHP)
Struggling to make contact form work (HTML5/PHP)
我在网站上使用联系表时遇到了一些困难。每当我尝试提交时,它都会打开 index.php,一个空白页面,而不是实际执行脚本并发送电子邮件。
这是表格。
<form method="post" action="index.php">
<div class="field">
<label for="name">Name</label>
<input type="text" name="name" id="name" />
</div>
<div class="field">
<label for="email">Email</label>
<input type="email" name="email" id="email" />
</div>
<div class="field">
<label for="message">Message</label>
<textarea name="message" id="message" rows="4"></textarea>
</div>
<ul class="actions">
<li><input type="submit" type="submit" value="Send Message" /></li>
</ul>
</form>
这是我正在使用的 index.php 文件。
<?php
$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];
$from = 'From: Test';
$to = 'brett@edge.yt';
$subject = 'Hello';
$body = "From: $name\n E-Mail: $email\n Message:\n $message";
if ($_POST['submit']) {
if (mail ($to, $subject, $body, $from)) {
echo '<p>Your message has been sent!</p>';
} else {
echo '<p>Something went wrong, go back and try again!</p>';
}
}
?>
PHP 似乎已正确安装在我的服务器上,我可以使用 PHPInfo()
文件没问题。
电子邮件永远不会尝试发送,因为 $_POST['submit']
未设置。您没有名为 submit
的表单的控件。如果你想让它成为提交按钮,你需要给它一个 name
属性。
<input type="submit" name="submit" value="Send Message" />
然后,在您的 PHP 脚本中,检查提交 isset
而不是仅将其评估为布尔值。
if (isset($_POST['submit'])) { ...
这样,如果表单尚未提交,您将不会收到未定义索引通知。
我在网站上使用联系表时遇到了一些困难。每当我尝试提交时,它都会打开 index.php,一个空白页面,而不是实际执行脚本并发送电子邮件。
这是表格。
<form method="post" action="index.php">
<div class="field">
<label for="name">Name</label>
<input type="text" name="name" id="name" />
</div>
<div class="field">
<label for="email">Email</label>
<input type="email" name="email" id="email" />
</div>
<div class="field">
<label for="message">Message</label>
<textarea name="message" id="message" rows="4"></textarea>
</div>
<ul class="actions">
<li><input type="submit" type="submit" value="Send Message" /></li>
</ul>
</form>
这是我正在使用的 index.php 文件。
<?php
$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];
$from = 'From: Test';
$to = 'brett@edge.yt';
$subject = 'Hello';
$body = "From: $name\n E-Mail: $email\n Message:\n $message";
if ($_POST['submit']) {
if (mail ($to, $subject, $body, $from)) {
echo '<p>Your message has been sent!</p>';
} else {
echo '<p>Something went wrong, go back and try again!</p>';
}
}
?>
PHP 似乎已正确安装在我的服务器上,我可以使用 PHPInfo()
文件没问题。
电子邮件永远不会尝试发送,因为 $_POST['submit']
未设置。您没有名为 submit
的表单的控件。如果你想让它成为提交按钮,你需要给它一个 name
属性。
<input type="submit" name="submit" value="Send Message" />
然后,在您的 PHP 脚本中,检查提交 isset
而不是仅将其评估为布尔值。
if (isset($_POST['submit'])) { ...
这样,如果表单尚未提交,您将不会收到未定义索引通知。