Então, você já importou o cabeçalho nessa linha <?php include 'cabecalho.php';?>
, então, se o arquivo cabecalho.php estiver com tudo o que o cabeçalho deve ter, o código está sendo duplicado, para você entender melhor o que eu estou falando, roda a sua pagina de formulário mesmo, e sem preencher nada pede para exibir o código fonte, você vai ver que o código está ficando duplicado.
Limpa o código que está acima do include do cabeçalho e o que está abaixo o include do rodapé.
formulario:
<?php include 'cabecalho.php';?>
<h1>Formulario de cadastro</h1>
<form action="adiciona-produto.php">
<table class="table">
<tr>
<td>Nome:</td>
<td> <input class="form-control" type="text" name="nome"/><br/></td>
</tr>
<tr>
<td>Preço:</td>
<td><input class="form-control" type="number" name="preco"><br/></td>
</tr>
<tr>
<td><button class="btn btn-primary" type="submit">Cadastrar</button></td>
</tr>
</table>
</form>
<?php include 'rodape.php';?>
E depois na outra página, modifica o trecho que eu te falei, inserindo o echo
function insereProduto($conexao, $nome, $preco){
$query= "insert into produtos (nome, preco) values ('{$nome}', {$preco})";
echo $query; // Esse echo query irá imprimir a query que você está montando
return mysqli_query($conexao, $query);
}
Com esse echo o seu insert irá ser aprensentado no navegador, copia ele e roda no seu mysql para ver se executa ou se aparece algum erro.