感谢所有在这里回答我最近相关问题的人,所有的答案都很有帮助,它给了我进步,也给了我一点教育。我不知道原作者写这些代码是多久以前的事了,所以其中可能有一些古老的方法。
在后面的代码中,表单捕获一些用户输入并分配一个变量名(如下面的$dateofbirth),然后在给所有者的电子邮件中使用,是否也适用类似的原则?换句话说,目前出生日期和其他字段不包括在电子邮件<p>Date of Birth <i>(dd/mm/yyyy)</i><br /><input name="dateofbirth" value="<? echo $dateofbirth;?>" type="text" style="width: 350px;" /></p>
<p><br /><input type="hidden" name="service" value="<?
echo $service;
?>" />
<input type="hidden" name="p" value="<?
echo $p;
?>" />
<input type="submit" value="Order now" /></p>
</form>
发送邮件代码在这里
$emailtext = "From: " . $clientname . "'r'n";
$emailtext .= "Service ordered: " . $service . "'r'n";
$emailtext .= "Price to pay: £" . $p . "'r'n";
$emailtext .= "Date of birth: " . $dateofbirth . "'r'n";
$emailtext .= "Questions:'r'n'r'n" . $questions . "'r'n'r'n";
$emailtext .= "Comments:'r'n'r'n" . $comments . "'r'n'r'n";
$emailtext .= $email;
总之,上面的代码是旧的,过时的,不支持的,需要现代化使其工作吗?
谢谢。
是的,如果PHP配置选项register_globals被打开,上面的代码只能按原样工作。启用这个PHP选项是非常不安全的,根本不建议使用。您只需要将电子邮件模板中的所有变量替换为实际的$_POST数组值:
$emailtext = "From: " . $_POST['clientname'] . "'r'n";
$emailtext .= "Service ordered: " . $_POST['service'] . "'r'n";
$emailtext .= "Price to pay: £" . $_POST['p'] . "'r'n";
$emailtext .= "Date of birth: " . $_POST['dateofbirth'] . "'r'n";
$emailtext .= "Questions:'r'n'r'n" . $_POST['questions'] . "'r'n'r'n";
$emailtext .= "Comments:'r'n'r'n" . $_POST['comments'] . "'r'n'r'n";
$emailtext .= $_POST['email'];
我假设所有这些变量都是在修改后的代码中通过表单发送的。这些行以上的处理函数中设置的任何变量,都不需要像上面那样进行转换。