我使用以下静态方法发送邮件警报,但是它引发了错误:warning:division by zero
...
Postman::MailAlert($_POST['email'],'Hello '.$_POST['name'].', Thanks for signing up.Your customer id is '.$_POST['city']/'/'.$product_id.'.');
我已经通过@解决了这个问题,但为什么会出现这个问题,我做错了什么?
答案 0 :(得分:3)
只是问题部分:
$_POST['city']/'/'.$product_id.'.');
需要像这样改变。
$_POST['city'] . '/'.$product_id.'.');
答案 1 :(得分:2)
接近该行代码的末尾:
[...]$_POST['city']/'/'[...]
添加一些空格以使其清晰:
[...] $_POST['city'] / '/' [...]
您试图将$_POST['city']
除以'/'
。如果PHP将非数字字符串('/'
)解释为数字值为0,则除以0。
也许你想连接而不是分裂?
答案 2 :(得分:1)
你应该使用
Postman::MailAlert($_POST['email'],'Hello '.$_POST['name'].', Thanks for signing up.Your customer id is '.$_POST['city'].'/'.$product_id);
答案 3 :(得分:1)
$_POST['city']/'/'
应该成为$_POST['city'].'/'
,当您输入快速
答案 4 :(得分:1)
$ _ POST [' city'] /< ---这里的斜线是什么?我认为这是多余的。 ;)
只是旁注 - 您是否清理用户输入?我看到你直接使用$ _POST数组变量 - 不要这样做。用户可能会在这里提交任何内容,甚至是一些讨厌的字符串,并且您有责任确保这些不会影响您的应用程序。
P.S。:添加@是一种不好的做法,因为它只会在不修复原因的情况下抑制错误消息(消除症状)。 http://php.net/manual/en/language.operators.errorcontrol.php