Na minha segunda tentativa (após colocar a msg de erro) o adiciona-produto.php exibia tanto a mensagem de erro quanto a mensagem de que o produto tinha sido adicionado com sucesso, mas sem o css e sem o nome do produto na string. Tentei ajeitar e agora o adiciona-produto.php apenas mostra todo o código no navegador, tanto eu colocando os parâmetros direto no link quanto acessando pelo formulário.
O adiciona-produto.php tá assim:
<?php include("cabecalho.php")?>
<h1>Formulário de produto</h1>
<?php
$nome = $_GET["nome"];
$preco = $_GET["preco"];
$conexao = mysqli_connect('localhost','root','','loja');
$query = "insert into produtos (nome, preco) values ('{$nome}', {$preco})";
if (msqli_query($conexao, $query)) {
?>
<p class="alert-success">Produto <?= $nome; ?>, <?= $preco; ?> adicionado com sucesso!</p>
<? php } else { ?>
<p class="alert-danger">Produto <?= $nome; ?> não foi adicionado.</p>
<? php
}
mysqli_close($conexao);
?>
<?php include("rodape.php")?>