【发布时间】:2011-10-21 03:56:53
【问题描述】:
我需要一个 html 网络表单,它可以根据用户的选择计算结果(每个选项都有一个特定的值),我想向用户显示结果并将用户选择的选项通过电子邮件发送给我。
我得到它的第一部分,它工作正常,但我无法制作脚本通过邮件向我发送信息。
这是我的 html 表单的示例:
1. Place
<select name="place[]">
<option value="zone1">You´re in Zone 1</option>
<option value="zone2">You´re in Zone 2</option>
<option value="zone3">You´re in Zone 3</option>
</select>
1. Role
<select name="role[]">
<option value="role1">You have Role 1</option>
<option value="role2">You have Role 2</option>
<option value="role3">You have Role 3</option>
</select>
这是一个 php 代码示例,我根据用户选择的内容对值进行求和(我在表单中有更多值):
$place = array (
"zone1" => 10,
"zone2" => 20,
"zone3" => 30,
);
$role = array (
"role1" => 1,
"role2" => 2,
"role3" => 3,
);
然后我为每个选项创建一个变量:
$user_place = array();
$user_role = array();
现在我告诉只根据用户输入的内容使用信息:
if(is_array($_POST['place']))
{
foreach( $_POST['place'] as $k => $v )
{
if( isset($place[ $v ]) )
$user_place [] = $place[ $v ];
}
}
if(is_array($_POST['role']))
{
foreach( $_POST['role'] as $k => $v )
{
if( isset($role[ $v ]) )
$user_role [] = $role[ $v ];
}
}
根据用户的选择,我创建一个新变量,其中每个变量都等于默认分配给该变量的值:
$place_sum = array_sum($user_place);
$role_sum = array_sum($user_role);
我总结了所有这些:
$total = $place_sum + $role_sum;
echo $total;
现在我想在每次用户填写表单时将选项邮寄给自己:
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$to = 'mymail@gmail.com';
$subject = 'USER RESULTS '.date("m/d/Y h:m:s");
现在我已经试过了:
$message = $user_place;
$message = $user_role;
还有这个:
$message = join(', ', $_POST['place']);
$message = join(', ', $_POST['role']);
还有这个:
$message = $_REQUEST['place'];
$message = $_POST['role'];
mail($to, $subject, $message);
}
这是我的问题:这些选项中没有任何一个能让我得到结果。我得到的只是一封空白电子邮件,$message 没有邮寄。
【问题讨论】:
-
您使用的是哪个操作系统?
-
呃...操作系统?我的服务器在 Apache 上运行,但我使用的是 windows XP...
-
在 CentOS 中默认的邮件配置是 sendmail,你可以通过 mail() 方法发送邮件,我认为其他操作系统不支持这种方法。您必须先进行身份验证。
-
但电子邮件已发送...只是空白。当我尝试其他东西(可能是一个默认字符串)时,它被发送了。
-
我在这里有点新,想知道我做错了什么或不准确而获得-1票(所以我以后不会再这样做了)。谢谢!