考虑到我使用PHP的经验有限,我使用的联系表单生成器几乎可以按照我的意愿运行。表单及其所有变量都能正常运行,但是在收到电子邮件后,它会将我自己的域添加为发件人电子邮件。我希望将填写联系表单的电子邮件的人作为发件人,这样我就可以轻松回复邮件(而不是复制并粘贴邮件中的电子邮件地址)。
以下是代码的一部分:
<?php
$where_form_is="http://".$_SERVER['SERVER_NAME'].strrev(strstr(strrev($_SERVER['PHP_SELF']),"/"));
session_start();
if( ($_SESSION['security_code']==$_POST['security_code']) && (!empty($_POST['security_code'])) ) {
// Checkbox handling
$field_4_opts = $_POST['field_4'][0].",". $_POST['field_4'][1].",". $_POST['field_4'][2];
// Checkbox handling
$field_5_opts = $_POST['field_5'][0].",". $_POST['field_5'][1].",". $_POST['field_5'][2].",". $_POST['field_5'][3];
mail("mail@mail.com","phpFormGenerator - Form submission","Form data:
Your Name:: " . $_POST['field_1'] . "
Country:: " . $_POST['field_2'] . "
Your Email:: " . $_POST['field_3'] . "
Your areas of interest:: $field_4_opts
What type of articles are you interested in writing?:: $field_5_opts
Any other types of articles that interest you?:: " . $_POST['field_6'] . "
Approximately how often will you contribute?: " . $_POST['field_7'] . "
Your blog/website:: " . $_POST['field_8'] . "
What would make you a good contributor?: " . $_POST['field_9'] . "
powered by phpFormGenerator.
");
include("confirm.html");
}
else {
echo "Invalid Captcha String.";
}
?>
install.php了
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>testing2 - created by phpFormGenerator</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"><link href="style.css" rel="stylesheet" type="text/css">
<!-- calendar stuff -->
<link rel="stylesheet" type="text/css" href="calendar/calendar-blue2.css" />
<script type="text/javascript" src="calendar/calendar.js"></script>
<script type="text/javascript" src="calendar/calendar-en.js"></script>
<script type="text/javascript" src="calendar/calendar-setup.js"></script>
<!-- END calendar stuff -->
<!-- expand/collapse function -->
<SCRIPT type=text/javascript>
<!--
function collapseElem(obj)
{
var el = document.getElementById(obj);
el.style.display = 'none';
}
function expandElem(obj)
{
var el = document.getElementById(obj);
el.style.display = '';
}
//-->
</SCRIPT>
<!-- expand/collapse function -->
<!-- expand/collapse function -->
<SCRIPT type=text/javascript>
<!--
// collapse all elements, except the first one
function collapseAll()
{
var numFormPages = 1;
for(i=2; i <= numFormPages; i++)
{
currPageId = ('mainForm_' + i);
collapseElem(currPageId);
}
}
//-->
</SCRIPT>
<!-- expand/collapse function -->
<!-- validate -->
<SCRIPT type=text/javascript>
<!--
function validateField(fieldId, fieldBoxId, fieldType, required)
{
fieldBox = document.getElementById(fieldBoxId);
fieldObj = document.getElementById(fieldId);
if(fieldType == 'text' || fieldType == 'textarea' || fieldType == 'password' || fieldType == 'file' || fieldType == 'phone' || fieldType == 'website')
{
if(required == 1 && fieldObj.value == '')
{
fieldObj.setAttribute("class","mainFormError");
fieldObj.setAttribute("className","mainFormError");
fieldObj.focus();
return false;
}
}
else if(fieldType == 'menu' || fieldType == 'country' || fieldType == 'state')
{
if(required == 1 && fieldObj.selectedIndex == 0)
{
fieldObj.setAttribute("class","mainFormError");
fieldObj.setAttribute("className","mainFormError");
fieldObj.focus();
return false;
}
}
else if(fieldType == 'email')
{
if((required == 1 && fieldObj.value=='') || (fieldObj.value!='' && !validate_email(fieldObj.value)))
{
fieldObj.setAttribute("class","mainFormError");
fieldObj.setAttribute("className","mainFormError");
fieldObj.focus();
return false;
}
}
}
function validate_email(emailStr)
{
apos=emailStr.indexOf("@");
dotpos=emailStr.lastIndexOf(".");
if (apos<1||dotpos-apos<2)
{
return false;
}
else
{
return true;
}
}
function validateDate(fieldId, fieldBoxId, fieldType, required, minDateStr, maxDateStr)
{
retValue = true;
fieldBox = document.getElementById(fieldBoxId);
fieldObj = document.getElementById(fieldId);
dateStr = fieldObj.value;
if(required == 0 && dateStr == '')
{
return true;
}
if(dateStr.charAt(2) != '/' || dateStr.charAt(5) != '/' || dateStr.length != 10)
{
retValue = false;
}
else // format's okay; check max, min
{
currDays = parseInt(dateStr.substr(0,2),10) + parseInt(dateStr.substr(3,2),10)*30 + parseInt(dateStr.substr(6,4),10)*365;
//alert(currDays);
if(maxDateStr != '')
{
maxDays = parseInt(maxDateStr.substr(0,2),10) + parseInt(maxDateStr.substr(3,2),10)*30 + parseInt(maxDateStr.substr(6,4),10)*365;
//alert(maxDays);
if(currDays > maxDays)
retValue = false;
}
if(minDateStr != '')
{
minDays = parseInt(minDateStr.substr(0,2),10) + parseInt(minDateStr.substr(3,2),10)*30 + parseInt(minDateStr.substr(6,4),10)*365;
//alert(minDays);
if(currDays < minDays)
retValue = false;
}
}
if(retValue == false)
{
fieldObj.setAttribute("class","mainFormError");
fieldObj.setAttribute("className","mainFormError");
fieldObj.focus();
return false;
}
}
//-->
</SCRIPT>
<!-- end validate -->
</head>
<body onLoad="collapseAll()">
<div id="mainForm">
<div id="formHeader">
<h2 class="formInfo">testing2</h2>
<p class="formInfo"></p>
</div>
<BR/><div id="footer"><p class="footer"><a class=footer href=http://phpformgen.sourceforge.net>Generated by phpFormGenerator</a></p></div>
</body>
</html>
你能找到我需要改变的东西吗?
答案 0 :(得分:1)
在PHP中调用mail函数之前添加相关标题。
$headers = 'From: user@example.com' . "\r\n" .
'Reply-To: user@example.com' . "\r\n";
mail($to, $subject, $message, $headers);
在您的情况下:
<?php
$where_form_is="http://".$_SERVER['SERVER_NAME'].strrev(strstr(strrev($_SERVER['PHP_SELF']),"/"));
session_start();
if( ($_SESSION['security_code']==$_POST['security_code']) && (!empty($_POST['security_code'])) ) {
// Checkbox handling
$field_4_opts = $_POST['field_4'][0].",". $_POST['field_4'][1].",". $_POST['field_4'][2];
// Checkbox handling
$field_5_opts = $_POST['field_5'][0].",". $_POST['field_5'][1].",". $_POST['field_5'][2].",". $_POST['field_5'][3];
$message = "Form data:
Your Name:: " . $_POST['field_1'] . "
Country:: " . $_POST['field_2'] . "
Your Email:: " . $_POST['field_3'] . "
Your areas of interest:: $field_4_opts
What type of articles are you interested in writing?:: $field_5_opts
Any other types of articles that interest you?:: " . $_POST['field_6'] . "
Approximately how often will you contribute?: " . $_POST['field_7'] . "
Your blog/website:: " . $_POST['field_8'] . "
What would make you a good contributor?: " . $_POST['field_9'] . "
powered by phpFormGenerator.
";
$headers = 'From: '.$_POST['field_3']. "\r\n" .
'Reply-To: '.$_POST['field_3'] . "\r\n" .
'X-Mailer: PHP/' . phpversion();
mail("mail@mail.com","phpFormGenerator - Form submission", $message, $headers);
include("confirm.html");
}
else {
echo "Invalid Captcha String.";
}
?>
答案 1 :(得分:1)
你应该去学习PHP,自动生成的表单代码很糟糕。
<?php
$where_form_is="http://".$_SERVER['SERVER_NAME'].strrev(strstr(strrev($_SERVER['PHP_SELF']),"/"));
session_start();
if( ($_SESSION['security_code']==$_POST['security_code']) && (!empty($_POST['security_code'])) ) {
// Checkbox handling
$field_4_opts = $_POST['field_4'][0].",". $_POST['field_4'][1].",". $_POST['field_4'][2];
// Checkbox handling
$field_5_opts = $_POST['field_5'][0].",". $_POST['field_5'][1].",". $_POST['field_5'][2].",". $_POST['field_5'][3];
mail("mail@mail.com","phpFormGenerator - Form submission","Form data:
Your Name:: " . $_POST['field_1'] . "
Country:: " . $_POST['field_2'] . "
Your Email:: " . $_POST['field_3'] . "
Your areas of interest:: $field_4_opts
What type of articles are you interested in writing?:: $field_5_opts
Any other types of articles that interest you?:: " . $_POST['field_6'] . "
Approximately how often will you contribute?: " . $_POST['field_7'] . "
Your blog/website:: " . $_POST['field_8'] . "
What would make you a good contributor?: " . $_POST['field_9'] . "
powered by phpFormGenerator.
", 'From: ' . $_POST['field_3']);
include("confirm.html");
}
else {
echo "Invalid Captcha String.";
}
?>
我在mail()函数中添加了一个新参数,用于设置from标头。 , 'From: ' . $_POST['field_3']
是我添加的内容。看来field_3应该包含用户的电子邮件。试一试,看看它是否有效。
答案 2 :(得分:0)
只需让你的代码看起来很漂亮,并为它做一些标题..它会完成你的工作 使用标题,你可以做任何你可以用你的电子邮件客户端做的事情,如GMAIL ..(附加文件或其他任何东西)
<pre>
$headers = 'From: abc@example.com' . "\r\n" .
'Reply-To: def@example.com' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
$message = "Form data:
Your Name:: " . $_POST['field_1'] . "
Country:: " . $_POST['field_2'] . "
Your Email:: " . $_POST['field_3'] . "
Your areas of interest:: $field_4_opts
What type of articles are you interested in writing?:: $field_5_opts
Any other types of articles that interest you?:: " . $_POST['field_6'] . "
Approximately how often will you contribute?: " . $_POST['field_7'] . "
Your blog/website:: " . $_POST['field_8'] . "
What would make you a good contributor?: " . $_POST['field_9'] . "
powered by phpFormGenerator.
";
$subject = "phpFormGenerator - Form submission"
$to = "mail@mail.com"
mail($to ,$subject,$message, $headers);