PHP is writing this error in the logs: “Notice: Use of undefined constant”.
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]);
What does it mean and why am I seeing it?
departmentis meant to be a string (to be used here as array key). Strings in PHP must be enclosed in quotes. In the days of the long past PHP was lax about using quotes for single-word strings but these days are long gone.Therefore, it must be
'department'or"department".The same goes for the other errors as well.
As is, it was looking for constants called
department,name,email,message, etc. When it doesn’t find such a constant, PHP (bizarrely) interprets it as a string (‘department’, etc) but warns you about that. Obviously, this can easily break if you do defined such a constant later (though it’s bad style to have lower-case constants).