Ответ 1
Просто проблема:
$_POST['city']/'/'.$product_id.'.');
Нужно изменить, как это.
$_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.'.');
Я решил эту проблему, поставив @, но почему возникает эта проблема, и что я делаю неправильно?
Просто проблема:
$_POST['city']/'/'.$product_id.'.');
Нужно изменить, как это.
$_POST['city'] . '/'.$product_id.'.');
В конце этой строки кода:
[...]$_POST['city']/'/'[...]
Добавьте несколько пробелов, чтобы было ясно:
[...] $_POST['city'] / '/' [...]
Вы пытаетесь разделить $_POST['city']
на '/'
. Если нечисловые строки ('/'
) интерпретируются PHP как имеющие числовое значение 0, то вы делите на 0.
Возможно, вы хотели объединиться, а не делиться?
вы должны использовать
Postman::MailAlert($_POST['email'],'Hello '.$_POST['name'].', Thanks for signing up.Your customer id is '.$_POST['city'].'/'.$product_id);
$_POST['city']/'/'
должен стать $_POST['city'].'/'
, распространенной ошибкой при быстром вводе
$_ POST ['city']/< --- что это за косая черта здесь? Я считаю это излишним.;)
И просто примечание - вы санируете вход пользователя? Я вижу, что вы напрямую используете переменные массива $_POST - не делайте этого. Пользователи могут представить что угодно, даже некоторые неприятные строки, и это ваша ответственность, чтобы убедиться, что они не будут компрометировать ваше приложение.
P.S.: Добавление @является плохой практикой, поскольку оно только подавляет сообщения об ошибках (удаление симптомов), не исправляя причину. http://php.net/manual/en/language.operators.errorcontrol.php