【问题标题】:PHP form to database and emailPHP 表单到数据库和电子邮件
【发布时间】:2016-01-29 10:06:44
【问题描述】:

我对我制作的表格有疑问。

这是一个很大的表格,我想要的是接收到我的数据库中的所有输入(到目前为止我已经完成了),并且我会收到一封电子邮件,其中包含我的表格中的所有结果。最终,我想要的是一封简洁的风格化电子邮件,提供完整的问题和客户填写的答案。

简而言之:我希望将表单中的所有问题和答案放在一封电子邮件中。

<div class="formulier">
  <form method="post" enctype="multipart/form-data" action="action.php"> 
    <div id="alginfo">
      <div class="col-md-12 red">
        <div class="container">
          <h3 class="numbers">1</h3>
          <h3 class="title">Algemene informatie</h3>
        </div>
      </div>
      <div class="container">
        <div class="col-md-6">
          <div class="tekstenveld">
            <input type="text" class="bigv bedrijfsnaam" name="bedrijfsnaam" required>
            <p>Bedrijfsnaam</p>
          </div>

          <div class="tekstenveld">
            <input type="text" class="bigv volledigenaam" name="volledigenaam" required>
            <p>Volledige naam</p>
          </div>
        </div>

        <div class="col-md-6">
          <div class="tekstenveld">
            <input type="text" class="bigv telefoonnummer" name="telefoonnummer" required>
            <p>Telefoonnummer</p>
          </div>

          <div class="tekstenveld">
            <input type="text" class="bigv email" name="email" required>
            <p>E-mail</p>
          </div>
        </div>

        <div class="col-md-6">
          <div class="multikeuze">
            <h4>Betreft het een:</h4>
            <ul>
              <li><span class="error"></span>
              <input class="multikeuzes" type="checkbox" name="website" id="website" value="website">
              <label for="website" name="website">Website</label></li>
              <li><input type="checkbox" name="webshop" id="webshop" value="webshop">
              <label for="website" name="webshop">Webshop</label></li>
              <li><input type="checkbox" name="app" id="app" value="app">
              <label for="website" name="app">App</label></li>
              <li><input type="checkbox" name="onlinemarketing" id="onlinemarketing" value="onlinemarketing">
              <label for="website" name="onlinemarketing">Online marketing</label></li>
            </ul>
            <p>Anders</p>
            <input type="text" class="bigv anders" name="alginfoanders">
          </div>
        </div>
      </div>
    </div>
   </div>
<div class="col-md-12 text-center" id="finish">
      <input type="submit" name="submit" value="submit">
    </div>
</form>

这就是我的 html,它只是表单的一小部分,因为包含所有内容会使它变得不必要地大。 现在我的action.php来了,它也被缩短了,所以我希望你仍然能理解发生了什么。

<?php
$servername = "youdliketoknowthat.com";
$username = "butitssecret";
$password = "hunter123";
$dbname = "yougettheidea";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 

if(isset($_POST['submit'])){
$to = 'me@myemail.com';

$subject = 'Content formulier';

$headers = "From: me@myemail.com\r\n";

$message = 'Bedrijfsnaam: ' . $bedrijfsnaam;
$message .= 'Volledige naam: ' . $volledigenaam;
$message .= 'Telefoonnummer: ' . $telefoonnummer;
$message .= 'email: ' . $email;

mail($to, $subject, $message, $headers);

$bedrijfsnaam = $_POST['bedrijfsnaam'];
$volledigenaam = $_POST['volledigenaam'];
$telefoonnummer = $_POST['telefoonnummer'];
$email = $_POST['email'];
if($volledigenaam !=''||$email !='');
$website = $_POST['website'];
$webshop = $_POST['webshop'];
$app = $_POST['app'];
$onlinemarketing = $_POST['onlinemarketing'];

{

$sql = "INSERT INTO intake_formulier_test (bedrijfsnaam, volledigenaam, telefoonnummer, email, website, webshop, app, onlinemarketing)
VALUES ('$bedrijfsnaam', '$volledigenaam', '$telefoonnummer', '$email', '$website', '$webshop', '$app', '$onlinemarketing')";
}
if ($conn->query($sql) === TRUE) {
    echo "New record created successfully";
} else {
    echo "Error: " . $sql . "<br>" . $conn->error;
}
}

$conn->close();
?>

我希望我清楚地说明了我想要完成的工作。 我觉得这应该很容易,但我在 Google 上找不到适用于我正在尝试做的事情的答案。

【问题讨论】:

  • 那又怎样?有什么问题吗?
  • 我投票结束这个问题,因为它属于codereview.stackexchange.com
  • @Toto 这个问题是关于一个特定的编程问题(我的代码应该通过电子邮件向我发送摘要,但它没有)。到底怎么不适合这里?即使不是,这个问题是off-topic for codereview,因为它包含损坏的代码。

标签: php html database forms email


【解决方案1】:

简而言之:

不要这样说:

$message = 'Bedrijfsnaam: ' . $bedrijfsnaam;

在此之前:

$bedrijfsnaam = $_POST['bedrijfsnaam'];

用于您的 mail() 函数的所有其他变量也是如此

你的 php 脚本应该是这样的:

<?php
$servername = "youdliketoknowthat.com";
$username = "butitssecret";
$password = "hunter123";
$dbname = "yougettheidea";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 

if(isset($_POST['submit'])){

$bedrijfsnaam = $_POST['bedrijfsnaam'];
$volledigenaam = $_POST['volledigenaam'];
$telefoonnummer = $_POST['telefoonnummer'];
$email = $_POST['email'];
if($volledigenaam !=''||$email !='');
$website = $_POST['website'];
$webshop = $_POST['webshop'];
$app = $_POST['app'];
$onlinemarketing = $_POST['onlinemarketing'];

{

$sql = "INSERT INTO intake_formulier_test (bedrijfsnaam, volledigenaam, telefoonnummer, email, website, webshop, app, onlinemarketing)
VALUES ('$bedrijfsnaam', '$volledigenaam', '$telefoonnummer', '$email', '$website', '$webshop', '$app', '$onlinemarketing')";
}
if ($conn->query($sql) === TRUE) {
    echo "New record created successfully";
    // Now we can send email
    $to = 'me@myemail.com';
    $subject = 'Content formulier';
    $headers = "From: me@myemail.com\r\n";
    $message = 'Bedrijfsnaam: ' . $bedrijfsnaam;
    $message .= 'Volledige naam: ' . $volledigenaam;
    $message .= 'Telefoonnummer: ' . $telefoonnummer;
    $message .= 'email: ' . $email;
    mail($to, $subject, $message, $headers);
} else {
    echo "Error: " . $sql . "<br>" . $conn->error;
}
}

$conn->close();
?>

您正在向 $message var 添加内容,如下所示: $message = 'Bedrijfsnaam: ' . $bedrijfsnaam; 但是在那个时候,对于这个特定的例子,没有声明 var $bedrijfsnaam ...... 所以你的 $message 变量是空的! 在我的示例中,我将所有与电子邮件信息相关的内容放在数据库查询之后,毕竟你的 $var = $_POST["var"]..

【讨论】:

  • 提示:对于“简洁的风格化电子邮件”,您可以在 $message 中使用 html 和 css,为此,请阅读 Usman Khan 的回答! ;)
猜你喜欢
  • 1970-01-01
  • 2011-12-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-22
  • 1970-01-01
  • 2020-04-22
相关资源
最近更新 更多