Forms 如何使用多个变量将多字段表单发送到电子邮件?
我花了今天的大部分时间和昨天的所有时间,只是想得到一个简单的、基本的发送到电子邮件的PHP代码。以下是我在本网站和其他网站上阅读的大量其他帖子的基础上,经过广泛的研究、检查和编辑后,我自己尝试整理的代码Forms 如何使用多个变量将多字段表单发送到电子邮件?,forms,email,variables,Forms,Email,Variables,我花了今天的大部分时间和昨天的所有时间,只是想得到一个简单的、基本的发送到电子邮件的PHP代码。以下是我在本网站和其他网站上阅读的大量其他帖子的基础上,经过广泛的研究、检查和编辑后,我自己尝试整理的代码 <?php $to='dustedpages@gmail.com'; $subject='Commission Inquiry'; $email = $_REQUEST['Email'] ; $headers = "From: $email"; $sent = mail($to
<?php
$to='dustedpages@gmail.com';
$subject='Commission Inquiry';
$email = $_REQUEST['Email'] ;
$headers = "From: $email";
$sent = mail($to, $subject, $message, $headers) ;
$message="Name: ".$name. "\r\n" . "Email: " .$email . "\r\n" . "Username: " .$user . "\r\n" . "Type: ".$position. "\r\n" . "Add-Ons: ".$addons. "\r\n" . "Price: ".$price. "\r\n" . "Brief Description: ".$briefdesc;
$name=$_POST['FirstName'],['LastName'];
$email=$_POST['Email'];
$user=$_POST['User'];
$position=$_POST['position'];
$addons=$_POST['cat'],['dog'];
$price=$_POST['price'];
$desc=$_POST['briefdesc'];
if($sent)
{print "Your mail was sent successfully. Please be patient and the artist will contact you soon. Thanks!"; }
else
{print "We encountered an error sending your mail"; }
?>
实际上,表单数据比基本信息多得多,但我甚至无法显示基本信息。对于从中提取的html代码部分,下面是它的一些外观
<!--NAME-->
</li> <li id="li_2" >
<label class="description" for="element_2">Name </label>
<span>
<input onkeypress="return handleEnter(this, event)" id="element_2_1" name="FirstName" class="element text" maxlength="255" size="14" value=""/>
<label>First</label>
</span>
<span>
<input onkeypress="return handleEnter(this, event)" id="element_2_2" name="LastName" class="element text" maxlength="255" size="18" value=""/>
<label>Last</label>
</span>
<p class="guidelines" id="guide_2"><small>Please fill this in as the name I will see on Paypal.</small></p>
<!--EMAIL-->
</li> <li id="li_1" >
<label class="description" for="element_1">Email </label>
<div>
<input onkeypress="return handleEnter(this, event)" id="element_1" name="Email" class="element text medium" type="text" maxlength="255" value=""/>
</div>
<p class="guidelines" id="guide_1"><small>Your Paypal email</small></p>
<!--USERNAME-->
</li> <li id="li_3" >
<label class="description" for="element_3">DA/Tumblr Username </label>
<div>
<input onkeypress="return handleEnter(this, event)" id="element_3" name="User" class="element text medium" type="text" maxlength="255" value=""/>
</div>
<p class="guidelines" id="guide_3"><small>If you have an account on either Deviantart or Tumblr and wish to be credited in the commission description, please note it here.</small></p>
</li>
<p>
<!--POSITION TYPE-->
</li> <li id="li_26" >
<label class="description" for="element_26">Comm. Type </label>
<div>
<select class="element select medium" id="element_26" name="position">
<option value="" selected="selected"></option>
<option value="1" >Bust</option>
<option value="2" >Waist</option>
<option value="3" >Full-Body</option>
</select>
</div>
<p class="guidelines" id="guide_26">
<small>Please choose what position you wish for your character(s) to be viewed from. Price will change depending on what type you choose.</small></p>
<!--ADD ONS-->
</li> <li id="li_27" >
<label class="description" for="element_27" name="addons">Add-Ons </label>
<span>
<input name="cat" type="checkbox" onClick="return KeepCount()">
+1 Character<br>
<input name="dog" type="checkbox" onClick="return KeepCount()">
+2 Characters
名称
弗斯特
最后
请将此填写为我将在Paypal上看到的名称。
电子邮件
您的贝宝电子邮件
DA/Tumblr用户名
如果您在Deviantart或Tumblr上有账户,并希望在佣金说明中记入贷方,请在此处注明。
通信类型
打破
腰围
全身
请选择希望从哪个位置查看角色。价格将根据您选择的类型而变化。
附加组件
+1个字符
+2个字符
我有多个字段(例如名字和姓氏),我需要在电子邮件代码中成为一个变量,并且我需要能够在电子邮件中显示所有填写的表单字段。在这一点上,我甚至不能得到一个以上的变量
表单本身还包括选择、复选框、文本区域和图像上传。我甚至还没说到这一点——我只是想让一些基本信息马上显示出来。我非常熟悉HTML和Javascript,只是不太熟悉PHP,尽管我以前使用过它。一些表单数据也在与HTML相同的页面上的Javascript代码中使用。实际的PHP数据位于我的表单从中提取的一个单独的文件中。我认为发生的情况是,您试图在变量具有您想要的值之前使用它们。试试下面的方法,让我知道它是怎么回事
<?php
$to = 'dustedpages@gmail.com';
$subject = 'Commission Inquiry';
$headers = "From: $email";
$fname = $_POST['FirstName'];
$lname = $_POST['LastName'];
$email = $_POST['Email'];
$user = $_POST['User'];
$position = "CHANGE-ME";
$addons = "CHANGE-ME";
$price = "CHANGE-ME";
$briefdesc = "CHANGE-ME";
$message = "Name: ".$fname.", ".$lname."\r\n";
$message .= "Email: $email \r\n";
$message .= "Username: $user \r\n";
$message .= "Type: $position \r\n";
$message .= "Add-Ons: $addons \r\n";
$message .= "Price: $price \r\n";
$message .= "Brief Description: $briefdesc \r\n";
$sent = mail($to, $subject, $message, $headers);
if($sent) {
echo "Success";
}
else {
echo "Failure";
}
?>
所以您遇到的问题是电子邮件无法发送?如果是这样,您确定您使用的服务器是为电子邮件设置的吗?它显示了一些分析错误,因此我从$name=$\u POST['FirstName'],['LastName']中删除了第二个变量;然后$addons=$_POST['cat'],['dog'];但它只是发送一条名为“佣金查询”的空消息。请在定义$message之后再尝试定义$sent,因为这次实际显示了一些东西!我仍然无法使两个表单字段“FirstName”和“LastName”显示为一个值,而不会给我一个错误。如果我只使用一个变量,它会显示一个变量。此外,我的选择输入(“位置”)只是显示为一个数字,即使它们有唯一的名称。“briefdesc”文本区域输入根本不会显示,而我的“addon”复选框只显示为“on”一词。有什么建议吗?对于名称,您需要连接“first name”变量和“last name”变量。对于您的选择输入,您将获得一个数字,因为这是您的值属性中的数字。您的代码中没有文本区域,因此不会显示该区域。我不知道为什么复选框不会显示,但很可能是因为您没有正确地关闭html标记,它工作得很好,谢谢!现在,如果我想从我的表单中添加更多的变量(我必须这么做),我是否只需要使用“$message.=”variables go here“;在最后一行$message之后?(我也不知道你可以使用超过一个$message行,我很傻)我注意到第一个$message字符串后面的行在等号之前有一个点。我只需要分配各个值并将它们串在一起,但你的建议非常有效。