Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Fatal error: Cannot redeclare mostraAlerta()

Erro: "Fatal error: Cannot redeclare mostraAlerta() (previously declared in C:\xampp\htdocs\curso_php\loja\mostra-alerta.php:3) in C:\xampp\htdocs\curso_php\loja\mostra-alerta.php on line 10"

Código do "mostra-alerta.php"

<?php
session_start();
 function mostraAlerta($tipo) {
     if(isset($_SESSION[$tipo])) {
?>
    <p class="alert-<?= $tipo ?>"><?= $_SESSION[$tipo]?></p>
<?php
        unset($_SESSION[$tipo]);
     }
 }

Código do "cabecalho.php"

<?php
error_reporting(E_ALL ^ E_NOTICE);
include("mostra-alerta.php"); 
?>
<html>
<head>
    <title>Minha loja</title>
    <meta charset="utf-8">
    <link href="css/bootstrap.css" rel="stylesheet" />
    <link href="css/loja.css" rel="stylesheet" />
</head>

<body>

    <div class="navbar navbar-inverse navbar-fixed-top">
        <div class="container">
            <div class="navbar-header">
                <a href="index.php" class="navbar-brand">Minha Loja</a>
            </div>
            <div>
                <ul class="nav navbar-nav">
                    <li><a href="produto-formulario.php">Adiciona Produto</a></li>
                    <li><a href="produto-lista.php">Lista Produtos</a></li>
                    <li><a href="sobre.php">Sobre</a></li>
                </ul>
            </div>
        </div> 
    </div>

    <div class="container">

        <div class="principal">
<?php mostraAlerta("success"); ?>
<?php mostraAlerta("danger"); ?>
3 respostas

Oi Rodrigo, o que pode estar acontecendo é que a cada página, o header inclui novamente o arquivo que tem a função "mostraAlerta", tenta trocar o include por include_once.

Depois verifica se você não está incluindo duas vezes o arquivo em alguma página.

solução!

Tem outro arquivo que está inserindo esta linha?

include("mostra-alerta.php");

Se tiver, troque o "include" por "include_once".

Pessoal, obrigado pela ajuda. Com o comentário do amigo GABRIEL DE JESUS FILHO vi que o include estava sendo dado em mais de um lugar, quando deveria estar somente no cabeçalho.php Obrigado a todos.