Php 带有联系人表单的自定义Wordpress页面
我正在尝试为Wordpress网站创建一个联系人表单。仅供参考:客户希望表单是静态的,因此他们不需要在将来更改表单。我在网上找到了这张表格。我把它放在Wordpress的自定义页面中。我还在服务器上放了一个mail.php文件。当我点击提交时,它会将我劫持到我的主页/主主题页,而我的消息永远不会被发送。我不明白为什么我要去参拜,以及我如何解决这个问题Php 带有联系人表单的自定义Wordpress页面,php,wordpress,Php,Wordpress,我正在尝试为Wordpress网站创建一个联系人表单。仅供参考:客户希望表单是静态的,因此他们不需要在将来更改表单。我在网上找到了这张表格。我把它放在Wordpress的自定义页面中。我还在服务器上放了一个mail.php文件。当我点击提交时,它会将我劫持到我的主页/主主题页,而我的消息永远不会被发送。我不明白为什么我要去参拜,以及我如何解决这个问题 <table width="400" border="0" align="center" cellpadding="3" cellspaci
<table width="400" border="0" align="center" cellpadding="3" cellspacing="1">
<tr>
<td><strong>Contact Form </strong></td>
</tr>
</table>
<table width="400" border="0" align="center" cellpadding="0" cellspacing="1">
<tr>
<td><form name="form1" method="post" action="mail.php">
<table width="100%" border="0" cellspacing="1" cellpadding="3">
<tr>
<td width="16%">Subject</td>
<td width="2%">:</td>
<td width="82%"><input name="subject" type="text" id="subject" size="50"></td>
</tr>
<tr>
<td>Detail</td>
<td>:</td>
<td><textarea name="detail" cols="50" rows="4" id="detail"></textarea></td>
</tr>
<tr>
<td>Name</td>
<td>:</td>
<td><input name="name" type="text" id="name" size="50"></td>
</tr>
<tr>
<td>Email</td>
<td>:</td>
<td><input name="customer_mail" type="text" id="customer_mail" size="50"></td>
</tr>
<tr>
<td> </td>
<td> </td>
<td><input type="submit" name="Submit" value="Submit"> <input type="reset" name="Submit2" value="Reset"></td>
</tr>
</table>
</form>
</td>
</tr>
</table>
联系方式
主题
:
细节
:
名称
:
电子邮件
:
Mail.php
<?php
// Contact subject
$subject ="$subject";
// Details
$message="$detail";
// Mail of sender
$mail_from="$customer_mail";
// From
$header="from: $name <$mail_from>";
// Enter your email address
$to ='someone@somewhere.com';
$mail=mail($to,$subject,$message,$header);
// Check, if message sent to your email
// display message "We've recived your information"
if($mail){
echo "We've recived your contact information";
}
else {
echo "ERROR";
}
?>
这是最简单的形式,可以注入
$subject ="write something here";
// Details
$message = "write something here";
// Mail of sender
$mail_from = $_POST['customer_mail'];
// From
$header="fromfrom: yourname <yourdomain@yourdomain.con>";
// Enter your email address
$to ='$mail_from';
最终编辑:
<?
if (isset($_POST['customer_mail'])) {
$subject = $_POST['detail'];
// Mail of sender
$mail_from = $_POST['customer_mail'];
// From
$name = $_POST['name'];
// Details
$message = 'E-mail sent from: '.$mail_from.'\r\nName: '.$name.'\r\n'.$_POST['detail'];
// Enter your email address
$to ='yourdomain@yourdomain.com'; //edit this
$mail=mail($to,$subject,$message);
echo "Your mail has been sent";
} else {
?>
<table width="400" border="0" align="center" cellpadding="3" cellspacing="1">
<tr>
<td><strong>Contact Form </strong></td>
</tr>
</table>
<table width="400" border="0" align="center" cellpadding="0" cellspacing="1">
<tr>
<td>
<form name="form1" method="post" action="<? echo $_SERVER['PHP_SELF']; ?>">
<table width="100%" border="0" cellspacing="1" cellpadding="3">
<tr>
<td width="16%">Subject</td>
<td width="2%">:</td>
<td width="82%">
<input name="subject" type="text" id="subject" size="50">
</td>
</tr>
<tr>
<td>Detail</td>
<td>:</td>
<td>
<textarea name="detail" cols="50" rows="4" id="detail"></textarea>
</td>
</tr>
<tr>
<td>Name</td>
<td>:</td>
<td>
<input name="name" type="text" id="name" size="50">
</td>
</tr>
<tr>
<td>Email</td>
<td>:</td>
<td>
<input name="customer_mail" type="text" id="customer_mail" size="50">
</td>
</tr>
<tr>
<td> </td>
<td> </td>
<td>
<input type="submit" name="Submit" value="Submit">
<input type="reset" name="Submit2" value="Reset">
</td>
</tr>
</table>
</form>
</td>
</tr>
</table>
<?
}
?>
联系方式
mail.php是否在web根目录中?如果是这样,请尝试将表单操作更改为“/mail.php”。更好的是,使用众多优秀的联系人表单插件中的一个——它们将提供更好的用户反馈,甚至使用AJAX。我需要能够完全自定义插件将提供的内容和/mail.php不起作用的内容。mail.php在哪里?你已经发布了mail.php的完整内容了吗,因为你那里的内容肯定不起作用-它没有使用$\u POST的内容。是的,这就是mail.phpI的全部内容。你不认为你的php达到了你应该编写自己的邮件脚本的水平。请慎重考虑使用插件。很多都是可定制的(我喜欢联系人表单7);写任何介于“
”
之间的内容我需要人们能够键入表单并通过不可编辑的方式发送。我的意思是,客户将无法更改发送给我的电子邮件。我发布了一个已编辑的更改yourdomain@yourdomain.com到你的地址,它应该是你的域名的有效电子邮件,否则邮件将不会被发送。它仍然不起作用。url上写着mail.php,但我会把我带到主页
<?
if (isset($_POST['customer_mail'])) {
$subject = $_POST['detail'];
// Mail of sender
$mail_from = $_POST['customer_mail'];
// From
$name = $_POST['name'];
// Details
$message = 'E-mail sent from: '.$mail_from.'\r\nName: '.$name.'\r\n'.$_POST['detail'];
// Enter your email address
$to ='yourdomain@yourdomain.com'; //edit this
$mail=mail($to,$subject,$message);
echo "Your mail has been sent";
} else {
?>
<table width="400" border="0" align="center" cellpadding="3" cellspacing="1">
<tr>
<td><strong>Contact Form </strong></td>
</tr>
</table>
<table width="400" border="0" align="center" cellpadding="0" cellspacing="1">
<tr>
<td>
<form name="form1" method="post" action="<? echo $_SERVER['PHP_SELF']; ?>">
<table width="100%" border="0" cellspacing="1" cellpadding="3">
<tr>
<td width="16%">Subject</td>
<td width="2%">:</td>
<td width="82%">
<input name="subject" type="text" id="subject" size="50">
</td>
</tr>
<tr>
<td>Detail</td>
<td>:</td>
<td>
<textarea name="detail" cols="50" rows="4" id="detail"></textarea>
</td>
</tr>
<tr>
<td>Name</td>
<td>:</td>
<td>
<input name="name" type="text" id="name" size="50">
</td>
</tr>
<tr>
<td>Email</td>
<td>:</td>
<td>
<input name="customer_mail" type="text" id="customer_mail" size="50">
</td>
</tr>
<tr>
<td> </td>
<td> </td>
<td>
<input type="submit" name="Submit" value="Submit">
<input type="reset" name="Submit2" value="Reset">
</td>
</tr>
</table>
</form>
</td>
</tr>
</table>
<?
}
?>