为选择选项提供多个_post值

时间:2011-05-12 20:51:54

标签: php

我正在更改我的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,);

任何人都有任何想法如何编码我想要的东西?

3 个答案:

答案 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上运行一些验证,以确保它首先是干净的。