我正在更改我的php邮件表单的标题,以便显示它的发送者。我有一个联系人姓名选项。我想给这些选项两个值,以便我可以在一个位置查询值,在另一个位置查询第二个值。我觉得必须将值分配给不同的选择名称以便能够查询它,但我不知道如何去做。例如:
PHP表格
Contact:
<select name="contactname">
<option></option>
<option value1="John Smith" value2="jsmith@email.com">John Smith</option>
</select>
PHP帖子
$contactname = $_POST [contactname];
$header = "From: " . $value 1 here . " <" . $value 2 here . ">\r\n";
$message = "
Contact: $value 1 here
";
mail("email.email.com", $subject, $message, $header,);
任何人都有任何想法如何编码我想要的东西?
答案 0 :(得分:2)
HTML
<select name="contactname">
<option value="John Smith|jsmith@email.com">John Smith</option>
</select>
PHP
$pieces = explode('|', $_POST['contactname']);
$from = $pieces[0]; // John Smith
$to = $pieces[1]; // jsmith@email.com
请注意,这实际上并不是正确的方法,因为它可以被欺骗。
答案 1 :(得分:2)
如果选项列表来自数据库,请改为放入表的主键值,然后在表单提交时查找相应的值。这可以节省您必须验证电子邮件地址的麻烦,因为没有任何说恶意用户无法破解脚本说“president@whitehouse.gov”并在邮件中加入一些威胁。他们发送了这条消息,但你是那个让特勤局开门的人。
答案 2 :(得分:1)
联系人:
<select name="contactname">
<option></option>
<option value="John Smith,jsmith@email.com">John Smith</option>
</select>
PHP
$contactname = $_POST['contactname'];
$contact_arr = explode(",", $contactname);
$header = "From: ".$contact_arr[0]." <".$contact_arr[1].">";
$message = "
Contact: ".$contact_arr[0]."
";
mail("email@email.com", $subject, $message, $header);
爆炸和分隔符将执行此操作。你应该在$ _POST上运行一些验证,以确保它首先是干净的。