В вашей функции:
function add($url, $category) {
// code
}
Вы пытаетесь использовать переменную $conn
. Который определяется вне функции.
Вы должны передать эту переменную в функцию:
function add($url, $category, &$conn) {
// code
}
if(function_exists($_GET['f'])){
$_GET['f']($_GET['url'], $_GET['cat'], $conn);
}
Вы можете просто использовать global $conn;
внутри функции, но рекомендуется избегать использования global
полностью. Это создает грязные и опасные условия кода в больших проектах. Меньше контроля. Передавая $ conn по ссылке, вы определенно гарантируете, что будет использоваться правильное значение.
В качестве примечания: подготовленные операторы были бы полезны для вашего SQL, поскольку вы передаете значения, которые могут содержать вредоносный SQL.
В качестве примечания: этот процесс, который вы выполняете, выглядит немного нестабильным, и следует очень внимательно относиться к именам функций белого списка и их настройке. Вы также можете переместить все это в класс.