PHP 联系表未确认已发送的消息
PHP Contact Form Does Not Confirm Sent Message
在对单页网站进行重新设计后,我发现联系表无法正常工作。它接受输入,但随后页面不会重新加载。 PHP 确认消息甚至在您单击 "submit" 之前也是可见的。我也没有收到包含所收集数据的电子邮件。我从我网站的旧版本中以前的工作联系表中复制了这个 PHP,并试图让它适应新代码。我匹配了所有变量并检查了拼写错误。到目前为止,我没有看到代码有任何差异,但它显然不起作用。 ?
在错误日志中,代码显示:
[24-Jan-2015 15:07:54 UTC] PHP Parse error: syntax error, unexpected '{', expecting '(' in /home/website/public_html/index.php on line 664
听 664 是下面那行开始的“
<?php
if(isset($_POST['submit'])){
$name = $_POST['name'];
$email = $_POST['email'];
$number = $_POST['number'];
$message = $_POST['message'];
$from = 'From: Contact Form';
$to = 'me@email.com';
$subject = 'Inquiry';
$body = "From: $name\n E-Mail: $email\n Phone: $phone\n Message:\n $message";
if ($name != '' && $email != '')
{
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>';
}
}
else
{
echo '<p>You need to fill in all required fields.</p>';
}
}
?>
这里是所有的联系方式:
<div class="col-md-6 contact-form">
<h1>Get In touch</h1>
<div class="contact" data-scroll-reveal="enter left">
<form id="contact-form" action="index.php" method="post">
<ul>
<li>
<input type="text" name="name" id="name" placeholder="Name">
</li>
<li>
<input type="text" name="number" id="number" placeholder="Number">
</li>
<li>
<input type="email" name="email" id="email" placeholder="E-Mail">
</li>
<li>
<textarea name="message" id="message" placeholder="Message"> </textarea>
<input class="btnsend" name="submit" type="submit" id="submit" value="Send">
</li>
</ul>
</form>
</div>
</div>
将所有代码放入 if 中,如@jeroen 所说,使用 isset,您还可以将最后一个 else 放入 if ($name
,例如:
if(isset($_POST['submit'])){
$name = $_POST['name'];
$email = $_POST['email'];
$number = $_POST['number'];
$message = $_POST['message'];
$from = 'From: Blue Mountain Website Contact Form';
$to = 'cassidy@blumount.com';
$subject = 'Inquiry';
$body = "From: $name\n E-Mail: $email\n Phone: $phone\n Message:\n $message";
if ($name != '' && $email != '') {
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>';
}
} else {
echo '<p>You need to fill in all required fields.</p>';
}
}
在对单页网站进行重新设计后,我发现联系表无法正常工作。它接受输入,但随后页面不会重新加载。 PHP 确认消息甚至在您单击 "submit" 之前也是可见的。我也没有收到包含所收集数据的电子邮件。我从我网站的旧版本中以前的工作联系表中复制了这个 PHP,并试图让它适应新代码。我匹配了所有变量并检查了拼写错误。到目前为止,我没有看到代码有任何差异,但它显然不起作用。 ?
在错误日志中,代码显示:
[24-Jan-2015 15:07:54 UTC] PHP Parse error: syntax error, unexpected '{', expecting '(' in /home/website/public_html/index.php on line 664
听 664 是下面那行开始的“
<?php
if(isset($_POST['submit'])){
$name = $_POST['name'];
$email = $_POST['email'];
$number = $_POST['number'];
$message = $_POST['message'];
$from = 'From: Contact Form';
$to = 'me@email.com';
$subject = 'Inquiry';
$body = "From: $name\n E-Mail: $email\n Phone: $phone\n Message:\n $message";
if ($name != '' && $email != '')
{
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>';
}
}
else
{
echo '<p>You need to fill in all required fields.</p>';
}
}
?>
这里是所有的联系方式:
<div class="col-md-6 contact-form">
<h1>Get In touch</h1>
<div class="contact" data-scroll-reveal="enter left">
<form id="contact-form" action="index.php" method="post">
<ul>
<li>
<input type="text" name="name" id="name" placeholder="Name">
</li>
<li>
<input type="text" name="number" id="number" placeholder="Number">
</li>
<li>
<input type="email" name="email" id="email" placeholder="E-Mail">
</li>
<li>
<textarea name="message" id="message" placeholder="Message"> </textarea>
<input class="btnsend" name="submit" type="submit" id="submit" value="Send">
</li>
</ul>
</form>
</div>
</div>
将所有代码放入 if 中,如@jeroen 所说,使用 isset,您还可以将最后一个 else 放入 if ($name
,例如:
if(isset($_POST['submit'])){
$name = $_POST['name'];
$email = $_POST['email'];
$number = $_POST['number'];
$message = $_POST['message'];
$from = 'From: Blue Mountain Website Contact Form';
$to = 'cassidy@blumount.com';
$subject = 'Inquiry';
$body = "From: $name\n E-Mail: $email\n Phone: $phone\n Message:\n $message";
if ($name != '' && $email != '') {
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>';
}
} else {
echo '<p>You need to fill in all required fields.</p>';
}
}