【问题标题】:Checking posted contact using php to sent to selected contacts email using mail() function使用 php 检查已发布的联系人以使用 mail() 函数发送到选定的联系人电子邮件
【发布时间】:2012-05-16 08:47:28
【问题描述】:

大家好,

我正在尝试使用 php mail() 函数向从选项下拉框中选择的人发布表单。

我的下拉框显示

<label for="contact">Job Contact:*</label>

<select id='contact' name='contact'>
<option value='' selected='selected'>Please select</option>
<option value='name1'>Name2</option>
<option value='name2'>Name1</option>
</select> 

我得到了价值。

$contact =  $_POST['contact'];

与用户比较

switch ($contact) {

            case "name1":
            $to         = "name1@example.co.uk";
            break;
            case "name2":
            $to         = "name2@example.co.uk";
            break;

        }

邮件($to, ..., ..., ...);

我看不出为什么 switch 不起作用?

如果我单独使用 $to 表单发送。

任何想法都会有很大帮助。

【问题讨论】:

  • var_dump($to);mail() 之前。并且始终使用var_dump() 输出 实际 值,而不是 猜测

标签: php html forms email post


【解决方案1】:

这里有几个故障点;

您可以尝试扩展您的开关(仅用于调试目的)以执行以下操作:

switch ($contact) {

            case "name1":
            $to         = "name1@example.co.uk";
            break;
            case "name2":
            $to         = "name2@example.co.uk";
            break;
            default:
            var_dump($contact);
            exit();

        }

如果$contact 的内容与任何开关都不匹配,这将强制您的开关处理它。

其次,尝试确保$to 确实包含一个值。

通过添加 'var_dump($to); 来做到这一点就在mail() 函数之前。

这是基本调试 - 我怀疑其中之一会告诉您错误在哪里。

【讨论】:

  • 然后 $contact 包含 NULL 这反过来又使您的脚本没有设置 $to 并且您的邮件发送失败。尝试var_dump($_POST['contact']); 看看那个 POST 变量是否有任何内容。
  • 好吧,这是你的问题; $_POST['contact'] 不包含任何值。你现在要做的就是找出原因。
  • 你认为如果 select 包含 disabled='disabled' 会有什么不同
  • 可能 - 因为浏览器不会发送禁用的输入字段(因为它已禁用)。
  • 这是我删除它的问题,它对我有用,感谢您的帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-03
  • 1970-01-01
  • 1970-01-01
  • 2016-01-27
  • 1970-01-01
  • 2015-07-12
相关资源
最近更新 更多