Использование сырых $show_tools
не хватает инкапсуляции. Каждый может перезаписать его, даже вы по ошибке, не говоря уже о том, что злоумышленник внедрил код в вашу программу. Кроме того, вы должны сделать его глобальным по мере роста вашей программы. Рассмотрим следующий подход:
function show_tools($flag = null) {
static $value = false;
if (is_bool($flag)) {
// you can run other checks here too
$value = $flag;
}
return $value;
}
Использование:
// authenticate
show_tools(true);
if (show_tools()) { // if authenticated
// show the tools
}
// deauthenticate
show_tools(false);
Функции предназначены для того, чтобы их нельзя было переопределить, поэтому никто не может перезаписать функцию и изменить то, что вы не хотите изменять без вашей воли. При таком подходе вы в безопасности. Без этого все может произойти:
<?php
$show_tools = true;
include("your_insecure_script.php");
// Cool! I can see special editing boxes!
?>