2013-03-08 55 views
1

我收到有关此BMR计算器PHP脚本的通知和警告,但我不确定是什么导致它们,因为这些消息仅在Firefox中显示。 Heres a screenshot修复PHP通知和警告?

我将php/html直接添加到我的模板文件中,并将该文件转换为php是正确的? Here is the php/html

+0

这是基于您提供的图像的假设。您有2个变量未定义或在定义之前使用。除以零发生是因为,你除以零。也许使用php'ini_set('display_errors',false);'将解决问题(只是一个预感)。 – Mic1780 2013-03-08 19:15:11

回答

2

您的问题是:

$gender = $_REQUEST['gender']; 
$met  = $_REQUEST['metric']; 

他们不是在查询字符串或发布的数据定义。

您可以使用isset检查来解决问题。

# If gender is not set, set it to male by default. 
$gender = isset($_REQUEST['gender']) ? $_REQUEST['gender'] : 'male'; 
+0

'empty()'比isset()更好一些,因为如果变量被设置,但是为空('#_POST ['gender'] ='''),你仍然需要默认' male'。 – 2013-03-08 20:30:26

+0

我通常避免在REQUEST变量的检查中为空,因为值0在空()检查上返回TRUE - 我相信一个未定义变量的空检查会给出警告? – 2013-03-08 21:12:52

+0

你可能对第1点(从未体验过这个问题)有所了解,但你的第2点是不正确的。 'empty()'是''的简写! isset($ var)|| (isset($ var)&& $ var == FALSE)'。从[PHP文档](http://php.net/manual/en/function.empty.php):“一个变量被认为是空的,如果它不存在或者它的值等于FALSE。empty()不会生成如果该变量不存在,则会发出警告。“ – 2013-03-08 21:22:54