PHP 基于部门选择的联系表
PHP Contact form based on selection of department
我在使用 e-mail 表格时遇到了一些问题,希望你们能帮助我。问题很简单,当我提交消息时,消息没有发送给我。 (我已将 $to= 和 header 位置更改为 "fake" 地址)。但是,提交邮件后我被重定向到正确的页面。
HTML:
<section id="contact">
<div class="container">
<div class="row">
<div class="col-lg-12">
<form name="sentMessage"form action="contact.php" method="post" enctype="multipart/form-data id="contactForm" novalidate>
<div class="row">
<div class="col-md-6">
<div class="form-group">
<input type="text" class="form-control" placeholder="Your name *" id="name" required data-validation-required-message="Write your name">
<p class="help-block text-danger"></p>
</div>
<div class="form-group">
<input type="email" class="form-control" placeholder="Your email *" id="email" required data-validation-required-message="Write your email">
<p class="help-block text-danger"></p>
</div>
<div class="form-group">
<input type="tel" class="form-control" placeholder="Your phone number *" id="phone" required data-validation-required-message="Write your phone number">
</div>
<div class="form-group">
<select name="department" class="form-control">
<option value="support">Contact support</option>
<option value="department1">Contact department 1</option>
<option value="department2">Contact department 2</option>
<option value="department3">Contact department 3</option>
</select>
</div>
<!-- <div class="form-group">
<p>Last opp et vedlegg</p>
<input type="file" class="form-control" name="vedlegg" accept="image/*">
</div>
</div>-->
<div class="col-md-6">
<div class="form-group">
<textarea class="form-control" placeholder="Message *" id="message" required data-validation-required-message="Type a message"></textarea>
</div>
</div>
<div class="clearfix"></div>
<div class="col-lg-12 text-center">
<div id="success"></div>
<button type="submit" class="btn btn-xl">Send E-mail</button>
</div>
</div>
</form>
</div>
</div>
</div>
</section>
这里是 contact.php:
<?php
$name = $_POST['name'];
$email = $_POST['email'];
$phone = $_POST['phone'];
$message = $_POST['message'];
$from = 'From contact form';
if( $_POST['department'] == "support" )
{
$subject = 'Mail to customer support';
$to = "customer.support@mail.com";
header("Location: www.domain.com/supportSuccess.html");
}
else if( $_POST['department'] == "department1" )
{
$subject = 'Mail to department1';
$to = "department1@mail.com";
header("Location: www.domain.com/departmentSucess.html");
}
else if( $_POST['department'] == "department2" )
{
$subject = 'Mail to department2';
$to = "department2@mail.com";
header("Location: www.domain.com/departmentSucess.html");
}
else if( $_POST['department'] == "department3" )
{
$subject = 'Mail to department3';
$to = "department3@mail.com";
header("Location: www.domain.com/departmentSucess.html");
}
$body = "$name\n $email\n $phone\n $message";
?>
<?php
if ($_POST['submit']) {
if (mail ($to, $subject, $body, $from)) {
header("Location:www.google.com");
} else {
echo '<p>Seems like something went wrong!</p>';
}
}
?>
如果有人能指点一下,我将不胜感激。
谢谢!
- 首先,您的 HTML 代码中的 enctype 部分缺少一个 "。
您应该检查用户是否单击了提交按钮,然后开始验证您的数据。我做了一个快速修复。
// First you check if the button submit is been clicked
if ( isset($_POST['submit']) ) {
$name = $_POST['name'];
$email = $_POST['email'];
$phone = $_POST['phone'];
$message = $_POST['message'];
$from = 'From contact form';
if( $_POST['department'] == "support" )
{
$subject = 'Mail to customer support';
$to = "customer.support@mail.com";
header("Location: www.domain.com/supportSuccess.html");
}
// You could better wrap this into a switch case statement.
else if( $_POST['department'] == "department1" )
{
$subject = 'Mail to department1';
$to = "department1@mail.com";
header("Location: www.domain.com/departmentSucess.html");
}
else if( $_POST['department'] == "department2" )
{
$subject = 'Mail to department2';
$to = "department2@mail.com";
header("Location: www.domain.com/departmentSucess.html");
}
else if( $_POST['department'] == "department3" )
{
$subject = 'Mail to department3';
$to = "department3@mail.com";
header("Location: www.domain.com/departmentSucess.html");
}
$body = "$name\n $email\n $phone\n $message";
if (mail ($to, $subject, $body, $from)) {
header("Location:www.google.com");
} else {
echo '<p>Seems like something went wrong!</p>';
}
}
现在你HTML
<section id="contact">
<div class="container">
<div class="row">
<div class="col-lg-12">
<form name="sentMessage"form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data" id="contactForm" novalidate>
<div class="row">
<div class="col-md-6">
<div class="form-group">
<input type="text" class="form-control" placeholder="Your name *" id="name" required data-validation-required-message="Write your name">
<p class="help-block text-danger"></p>
</div>
<div class="form-group">
<input type="email" class="form-control" placeholder="Your email *" id="email" required data-validation-required-message="Write your email">
<p class="help-block text-danger"></p>
</div>
<div class="form-group">
<input type="tel" class="form-control" placeholder="Your phone number *" id="phone" required data-validation-required-message="Write your phone number">
</div>
<div class="form-group">
<select name="department" class="form-control">
<option value="support">Contact support</option>
<option value="department1">Contact department 1</option>
<option value="department2">Contact department 2</option>
<option value="department3">Contact department 3</option>
</select>
</div>
<!-- <div class="form-group">
<p>Last opp et vedlegg</p>
<input type="file" class="form-control" name="vedlegg" accept="image/*">
</div>
</div>-->
<div class="col-md-6">
<div class="form-group">
<textarea class="form-control" placeholder="Message *" id="message" required data-validation-required-message="Type a message"></textarea>
</div>
</div>
<div class="clearfix"></div>
<div class="col-lg-12 text-center">
<div id="success"></div>
<button type="submit" name="submit" class="btn btn-xl">Send E-mail</button>
</div>
</div>
</form>
</div>
</div>
</div>
</section>
您忘记检查 $_POST['submit']
变量是否已设置
改变
if ($_POST['submit']) {//...
到
if (isset($_POST['submit'])) {//...
我在使用 e-mail 表格时遇到了一些问题,希望你们能帮助我。问题很简单,当我提交消息时,消息没有发送给我。 (我已将 $to= 和 header 位置更改为 "fake" 地址)。但是,提交邮件后我被重定向到正确的页面。
HTML:
<section id="contact">
<div class="container">
<div class="row">
<div class="col-lg-12">
<form name="sentMessage"form action="contact.php" method="post" enctype="multipart/form-data id="contactForm" novalidate>
<div class="row">
<div class="col-md-6">
<div class="form-group">
<input type="text" class="form-control" placeholder="Your name *" id="name" required data-validation-required-message="Write your name">
<p class="help-block text-danger"></p>
</div>
<div class="form-group">
<input type="email" class="form-control" placeholder="Your email *" id="email" required data-validation-required-message="Write your email">
<p class="help-block text-danger"></p>
</div>
<div class="form-group">
<input type="tel" class="form-control" placeholder="Your phone number *" id="phone" required data-validation-required-message="Write your phone number">
</div>
<div class="form-group">
<select name="department" class="form-control">
<option value="support">Contact support</option>
<option value="department1">Contact department 1</option>
<option value="department2">Contact department 2</option>
<option value="department3">Contact department 3</option>
</select>
</div>
<!-- <div class="form-group">
<p>Last opp et vedlegg</p>
<input type="file" class="form-control" name="vedlegg" accept="image/*">
</div>
</div>-->
<div class="col-md-6">
<div class="form-group">
<textarea class="form-control" placeholder="Message *" id="message" required data-validation-required-message="Type a message"></textarea>
</div>
</div>
<div class="clearfix"></div>
<div class="col-lg-12 text-center">
<div id="success"></div>
<button type="submit" class="btn btn-xl">Send E-mail</button>
</div>
</div>
</form>
</div>
</div>
</div>
</section>
这里是 contact.php:
<?php
$name = $_POST['name'];
$email = $_POST['email'];
$phone = $_POST['phone'];
$message = $_POST['message'];
$from = 'From contact form';
if( $_POST['department'] == "support" )
{
$subject = 'Mail to customer support';
$to = "customer.support@mail.com";
header("Location: www.domain.com/supportSuccess.html");
}
else if( $_POST['department'] == "department1" )
{
$subject = 'Mail to department1';
$to = "department1@mail.com";
header("Location: www.domain.com/departmentSucess.html");
}
else if( $_POST['department'] == "department2" )
{
$subject = 'Mail to department2';
$to = "department2@mail.com";
header("Location: www.domain.com/departmentSucess.html");
}
else if( $_POST['department'] == "department3" )
{
$subject = 'Mail to department3';
$to = "department3@mail.com";
header("Location: www.domain.com/departmentSucess.html");
}
$body = "$name\n $email\n $phone\n $message";
?>
<?php
if ($_POST['submit']) {
if (mail ($to, $subject, $body, $from)) {
header("Location:www.google.com");
} else {
echo '<p>Seems like something went wrong!</p>';
}
}
?>
如果有人能指点一下,我将不胜感激。
谢谢!
- 首先,您的 HTML 代码中的 enctype 部分缺少一个 "。
您应该检查用户是否单击了提交按钮,然后开始验证您的数据。我做了一个快速修复。
// First you check if the button submit is been clicked if ( isset($_POST['submit']) ) { $name = $_POST['name']; $email = $_POST['email']; $phone = $_POST['phone']; $message = $_POST['message']; $from = 'From contact form'; if( $_POST['department'] == "support" ) { $subject = 'Mail to customer support'; $to = "customer.support@mail.com"; header("Location: www.domain.com/supportSuccess.html"); } // You could better wrap this into a switch case statement. else if( $_POST['department'] == "department1" ) { $subject = 'Mail to department1'; $to = "department1@mail.com"; header("Location: www.domain.com/departmentSucess.html"); } else if( $_POST['department'] == "department2" ) { $subject = 'Mail to department2'; $to = "department2@mail.com"; header("Location: www.domain.com/departmentSucess.html"); } else if( $_POST['department'] == "department3" ) { $subject = 'Mail to department3'; $to = "department3@mail.com"; header("Location: www.domain.com/departmentSucess.html"); } $body = "$name\n $email\n $phone\n $message"; if (mail ($to, $subject, $body, $from)) { header("Location:www.google.com"); } else { echo '<p>Seems like something went wrong!</p>'; } }
现在你HTML
<section id="contact">
<div class="container">
<div class="row">
<div class="col-lg-12">
<form name="sentMessage"form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data" id="contactForm" novalidate>
<div class="row">
<div class="col-md-6">
<div class="form-group">
<input type="text" class="form-control" placeholder="Your name *" id="name" required data-validation-required-message="Write your name">
<p class="help-block text-danger"></p>
</div>
<div class="form-group">
<input type="email" class="form-control" placeholder="Your email *" id="email" required data-validation-required-message="Write your email">
<p class="help-block text-danger"></p>
</div>
<div class="form-group">
<input type="tel" class="form-control" placeholder="Your phone number *" id="phone" required data-validation-required-message="Write your phone number">
</div>
<div class="form-group">
<select name="department" class="form-control">
<option value="support">Contact support</option>
<option value="department1">Contact department 1</option>
<option value="department2">Contact department 2</option>
<option value="department3">Contact department 3</option>
</select>
</div>
<!-- <div class="form-group">
<p>Last opp et vedlegg</p>
<input type="file" class="form-control" name="vedlegg" accept="image/*">
</div>
</div>-->
<div class="col-md-6">
<div class="form-group">
<textarea class="form-control" placeholder="Message *" id="message" required data-validation-required-message="Type a message"></textarea>
</div>
</div>
<div class="clearfix"></div>
<div class="col-lg-12 text-center">
<div id="success"></div>
<button type="submit" name="submit" class="btn btn-xl">Send E-mail</button>
</div>
</div>
</form>
</div>
</div>
</div>
</section>
您忘记检查 $_POST['submit']
变量是否已设置
改变
if ($_POST['submit']) {//...
到
if (isset($_POST['submit'])) {//...