PHP表单到数据库和电子邮件 [英] PHP form to database and email
问题描述
这是一个很大的形式,我想要的是我接收到我的数据库中的所有输入(我已经完成这到目前为止),并且我收到一封电子邮件,其中包括我的表单中的所有结果。最后,我想要的是一个整洁的程式化电子邮件,它提供了完整的问题和客户填写的答案。
简而言之:我想从我的所有问题和答案表格放在一个电子邮件中。
< 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屋!