修复PHP通知和警告?

修复PHP通知和警告?,php,Php,我收到了关于这个BMR计算器PHP脚本的通知和警告,但我不确定是什么原因导致了它们,因为这些消息只出现在Firefox中 我将php/html直接添加到模板文件中,并为该文件打开了php,对吗 您的问题在于: $gender = $_REQUEST['gender']; $met = $_REQUEST['metric']; 它们未在查询字符串或发布的数据中定义 您可以通过isset检查来解决此问题 # If gender is not set, set it to male

我收到了关于这个BMR计算器PHP脚本的通知和警告,但我不确定是什么原因导致了它们,因为这些消息只出现在Firefox中

我将php/html直接添加到模板文件中,并为该文件打开了php,对吗

您的问题在于:

$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'; 

这是基于您提供的图像的假设。您有两个未定义或在定义之前使用的变量。被零除是因为,你被零除了。可能使用php
ini\u集('display\u errors',false)
将解决问题(只是一种预感)。
empty()
是一个比
isset()
更好的检查,因为如果变量设置为空(
#u POST['gender']=''
),您仍然希望默认为
male
。在检查请求变量时,我通常避免使用空,因为值0在空()检查时返回TRUE,我相信一个未定义变量的空检查会给出一个警告?你可能在第1点上是对的(从未具体经历过),但你的第2点是错误的
empty()
的缩写!isset($var)| |(isset($var)&$var==FALSE)
。来自:“如果变量不存在或其值等于FALSE,则视为空。如果变量不存在,则empty()不会生成警告。”