PHP在日志(log)中写下了这个错误:"注意:使用未定义的常量".

Error in logs:

PHP Notice:  Use of undefined constant department - assumed 'department' (line 5)
PHP Notice:  Use of undefined constant name - assumed 'name' (line 6)
PHP Notice:  Use of undefined constant email - assumed 'email' (line 7)
PHP Notice:  Use of undefined constant message - assumed 'message' (line 8)

Relevant lines of code:

$department = mysql_real_escape_string($_POST[department]);
$name = mysql_real_escape_string($_POST[name]);
$email = mysql_real_escape_string($_POST[email]);
$message = mysql_real_escape_string($_POST[message]);

这是什么意思?为什么我会看到它?

推荐答案

department意味着是string(在这里用作数组键).PHP中的字符串必须用引号括起来.在过go 很长一段时间里,PHP对单字字符串使用引号的做法很不严格,但现在已经不复存在了.

因此,它必须是'department'"department".

其他错误也是如此.

实际上,它正在寻找名为departmentnameemailmessage等的常量.当它没有找到这样一个常量时,PHP(奇怪地)将其解释为字符串("department"等),但会警告您.显然,如果以后定义了这样一个常量,这很容易被打破(尽管使用小写常量是不好的风格).

Php相关问答推荐

为WooCommerce中的特定用户角色指定促销价格

管理员订单列表中的自定义列与WooCommerce 8.6.1一起消失

PHP:从数组中获取唯一的数字组合

如何使用php-amqplib连接到ActiveMQ Classic Docker镜像

在WooCommerce产品中按类型对产品属性术语进行分类以供显示

如何在php中生成包含第100秒的时间序列?

这是在可召回的背景下吗?

Codeigniter 3中SMTP.office 365.com的截断问题

如何从Laravel中的Spatie\Dns\Records\A对象中提取IP地址

从两个日期创建日期范围,然后为范围中的每个日期复制子数组

HTTPPost请求在从php脚本调用时返回404,但在从node.js脚本调用时有效.终结点有效

如果 Select 的县不是store 所在的县,如何隐藏本地自提?

如何处理 Null 上的 array_shift() ?

在 Heroku 上部署 Sylius - 路由不正确

Laravel 发送邮箱问题 Swift_TransportException

设置GA4 PHP API的setSubject以允许访问所有管理员账户属性

PHP删除具有相同键的项目,除了具有最低值的项目

Laravel Factory - 在单列中生成具有随机迭代量的假 json 数组数据

将变量从中间件传递到控制器 Laravel

来自命令行的 PHP 没有给出正确的结果