我使用下面的靜態方法用於發送郵件提醒,但它拋出一個錯誤:warning:division by zero
...警告:除零
Postman::MailAlert($_POST['email'],'Hello '.$_POST['name'].', Thanks for signing up.Your customer id is '.$_POST['city']/'/'.$product_id.'.');
我已經把@解決了這個問題,但是這是爲什麼問題提出了,我做錯了什麼?
我使用下面的靜態方法用於發送郵件提醒,但它拋出一個錯誤:warning:division by zero
...警告:除零
Postman::MailAlert($_POST['email'],'Hello '.$_POST['name'].', Thanks for signing up.Your customer id is '.$_POST['city']/'/'.$product_id.'.');
我已經把@解決了這個問題,但是這是爲什麼問題提出了,我做錯了什麼?
你應該使用
Postman::MailAlert($_POST['email'],'Hello '.$_POST['name'].', Thanks for signing up.Your customer id is '.$_POST['city'].'/'.$product_id);
$_POST['city']/'/'
應該成爲$_POST['city'].'/'
,當你鍵入快速
感謝您的回答 – seoppc 2011-04-04 13:35:33
歡迎您 – 2011-04-04 13:40:04
接近該行代碼的結尾常見的錯誤:
[...]$_POST['city']/'/'[...]
添加一些空間,以明確:
[...] $_POST['city']/'/' [...]
您正在嘗試劃分$_POST['city']
通過'/'
。如果非數字字符串('/'
)被PHP解釋爲數值爲0,那麼您除以0.
也許你打算連接而不是分裂?
我想這只是一個錯字 – pt2ph8 2011-04-04 13:20:08
$ _POST ['city']/< ---此斜線在這裏做什麼?我相信這是多餘的。 ;)
而只是一個側面說明 - 你消毒用戶輸入?我看到你直接使用$ _POST數組變量 - 不這樣做。用戶可能會在這裏提交任何東西,甚至是一些討厭的字符串,這是你的責任,以確保這些不會危害你的應用程序。
P.S .:添加@是一種不好的做法,因爲它只會抑制錯誤消息(消除症狀),而不能解決原因。 http://php.net/manual/en/language.operators.errorcontrol.php
PHP.net:'目前,「@」錯誤控制運算符前綴將甚至禁用關鍵錯誤的錯誤報告,以終止腳本執行。除此之外,這意味着如果您使用「@」來抑制某個函數的錯誤,並且它不可用或錯誤輸入,那麼腳本就會在那裏死掉,而不會顯示爲什麼。「因此,解決問題,它使這個問題被忽略。 – Wh1T3h4Ck5 2011-04-04 13:22:26
@ Wh1T3h4Ck5感謝您的建議。 – seoppc 2011-04-04 13:37:13