PHP表单到数据库和电子邮件 [英] PHP form to database and email

查看:150
本文介绍了PHP表单到数据库和电子邮件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述



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



简而言之:我想从我的所有问题和答案表格放在一个电子邮件中。

 < div class =formulier> 
< form method =postenctype =multipart / form-dataaction =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 =textclass =bigv bedrijfsnaamname =bedrijfsnaamrequired>
< p> Bedrijfsnaam< / p>
< / div>

< div class =tekstenveld>
< input type =textclass =bigv volledigenaamname =volledigenaamrequired>
< p> Volledige naam< / p>
< / div>
< / div>

< div class =col-md-6>
< div class =tekstenveld>
< input type =textclass =bigv telefoonnummername =telefoonnummerrequired>
< p> Telefoonnummer< / p>
< / div>

< div class =tekstenveld>
< input type =textclass =bigv emailname =emailrequired>
< p>电子邮件< / p>
< / div>
< / div>

< div class =col-md-6>
< div class =multikeuze>
< h4> Betreft het een:< / h4>
< ul>
< li>< span class =error>< / span>
< input class =multikeuzestype =checkboxname =websiteid =websitevalue =website>
< label for =websitename =website>网站< / label>< / li>
< li>< input type =checkboxname =webshopid =webshopvalue =webshop>
< label for =websitename =webshop>网上商店< / label>< / li>
< li>< input type =checkboxname =appid =appvalue =app>
< label for =websitename =app> App< / label>< / li>
< li>< input type =checkboxname =onlinemarketingid =onlinemarketingvalue =onlinemarketing>
< label for =websitename =onlinemarketing>网上营销< / label>< / li>
< / ul>
< p> Anders< / p>
< input type =textclass =bigv andersname =alginfoanders>
< / div>
< / div>
< / div>
< / div>
< / div>
< div class =col-md-12 text-centerid =finish>
< input type =submitname =submitvalue =submit>
< / div>
< / form>



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

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

//创建连接
$ conn = new mysqli($ servername,$ username,$ password,$ dbname);
//检查连接
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\\\
;

$ message ='Bedrijfsnaam:'。 $ bedrijfsnaam;
$ message。='Volledige naam:'。 $ volledigenaam;
$ message。='Telefoonnummer:'。 $ telefoonnummer;
$ message。='email:'。 $电子邮件;

邮件($ 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,电子邮件,网站,网上商店,应用程序,onlinemarketing)
VALUES('$ bedrijfsnaam ','$ volledigenaam','$ telefoonnummer','$ email','$ website','$ webshop','$ app','$ onlinemarketing');

if($ conn-> query($ sql)=== TRUE){
echoNew record created successfully;
} else {
echoError:。 $ sql。 <峰; br> 中。 $ conn->误差;
}
}

$ conn-> close();
?>

我希望我明确了自己想要达成的目标。
我觉得这应该是那么容易,但我无法在Google上找到适用于我正在尝试执行的操作的答案。

解决方案

总之:

不要把这个:

  $ message ='Bedrijfsnaam:'。 $ bedrijfsnaam; 

在此之前:

  $ bedrijfsnaam = $ _POST ['bedrijfsnaam']; 

所有其他变量用于您的mail()函数 b

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

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

//创建连接
$ conn = new mysqli($ servername,$ username,$ password,$ dbname);
//检查连接
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,电子邮件,网站,网上商店,应用程序,onlinemarketing)
VALUES('$ bedrijfsnaam ','$ volledigenaam','$ telefoonnummer','$ email','$ website','$ webshop','$ app','$ onlinemarketing');

if($ conn-> query($ sql)=== TRUE){
echoNew record created successfully;
//现在我们可以发送电子邮件
$到='me@myemail.com';
$ subject ='Content formulier';
$ headers =From:me@myemail.com\r\\\
;
$ message ='Bedrijfsnaam:'。 $ bedrijfsnaam;
$ message。='Volledige naam:'。 $ volledigenaam;
$ message。='Telefoonnummer:'。 $ telefoonnummer;
$ message。='email:'。 $电子邮件;
邮件($ to,$ subject,$ message,$ headers);
} else {
echoError:。 $ sql。 <峰; br> 中。 $ conn->误差;
}
}

$ conn-> close();
?>

您正在向$ message var添加如下内容:
$ message ='Bedrijfsnaam :'。 $ bedrijfsnaam;
但是在这一点上,对于这个特殊的例子,var $ bedrijfsnaam没有被声明...
所以你的$ message var是空的!
在我的示例中,我将所有与电子邮件相关的信息放在数据库查询后,并在所有$ var = $ _POST [var]之后。


I have a question regarding a form I made.

It's a big form and what I want is that I receive all the input in my database (I have accomplished this so far) and that I get an email including all the results from my form. Eventually what I want is a neat stylized email that provides the complete question and the answer filled in by the client.

In short: I want all the questions and answers from my form put together in an email.

<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>

So that's my html, it's only a small part of the form because including everything would make it unnecessarily big. Now here comes my action.php it is also shortened so I hope you can still understand what's going on.

<?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();
?>

I hope I made it clear what I am trying to accomplish. I feel like this should be so easy yet I can't find an answer on Google that applies to what I am trying to do.

解决方案

In short:

Dont put this :

$message = 'Bedrijfsnaam: ' . $bedrijfsnaam;

Before this:

$bedrijfsnaam = $_POST['bedrijfsnaam'];

Same things for all others variables used for your mail() function

Your php script should be like this:

<?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();
?>

You were adding things to your $message var like this: $message = 'Bedrijfsnaam: ' . $bedrijfsnaam; But at that point, for this particular exemple, the var $bedrijfsnaam wasn't declared... So your $message var was empty ! In my example, i put all the things related to emailing infos after DB query, and after all your $var = $_POST["var"]..

这篇关于PHP表单到数据库和电子邮件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆