Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

10
respostas

Include funciona apenas no index.php

Verifiquei as dúvidas aqui, mas nada se aplicou :/ Estou usando o Atom. Segue meu codigo... e depois, o erro que aparece em "adiciona produto.php" quando eu atualizei a pagina:

<?php include("cabecalho.php");?>

$nome = $_GET["nome"];
$preco = $_GET["preco"];

<p class="alert-success">Produto <?= $nome;?>,<?= $preco ?> adicionado com sucesso!</p>

<?php include ("rodape.php");?>
$nome = $_GET["nome"]; $preco = $_GET["preco"];
Produto 
Notice: Undefined variable: nome in /opt/lampp/htdocs/loja/adiciona-produto.php on line 6
,
Notice: Undefined variable: preco in /opt/lampp/htdocs/loja/adiciona-produto.php on line 6
adicionado com sucesso!

O Próximo erro é em "produto-formulario.php", que perdeu toda configuração do CSS aplicada anteriormente porque o include não funcionou:

<?php include ("cabecalho.php");?>
<form action="adiciona-produto.php">
Nome:
<input type="text" name="nome"><br/>
Preco:
<input type="number" name="preco"><br/>

<input type="submit" value="Cadastrar">
</form>
<?php include ("rodape.php");?>

Obrigada!

10 respostas

Oi Jéssica,

Antes de declarar as variáveis, ficou faltando abrir código php.

<?php
$nome = $_GET["nome"];
$preco = $_GET["preco"];
?>

Felipe, obrigada pela ajuda! Mas eu acho que ainda estou fazendo algo errado e não percebi...desculpe se minhas dúvidas são muito de iniciante, comecei a ver tudo isso na sexta rsrs

1- Adiciona Produto:

<?php include ("cabecalho.php");?>

<?php
$nome = $_GET["nome"];
$preco = $_GET["preco"];
?>

<p class="alert-success">Produto <?= $nome;?>,<?= $preco ?> adicionado com sucesso!</p>

<?php include ("rodape.php");?>

2- Produto Formulário:

<?php include ("cabecalho.php");?>
<?php
<form action="adiciona-produto.php">
Nome:
<input type="text" name="nome"><br/>
Preco:
<input type="number" name="preco"><br/>

<input type="submit" value="Cadastrar">
</form>
?>
<?php include ("rodape.php");?>

Obrigada!

Oi Jéssica, é natural ter dúvidas mesmo rs

Acredito que o erro pode estar no código do produto formulário, já que o código do adiciona produto você arrumou.

Antes do form, não precisamos abrir código php, ficaria assim:

<?php include ("cabecalho.php");?>

<form action="adiciona-produto.php">
Nome:
<input type="text" name="nome"><br/>
Preco:
<input type="number" name="preco"><br/>

<input type="submit" value="Cadastrar">
</form>

<?php include ("rodape.php");?>

Bom, eu copiei inclusive seu código e não consegui :/

O que eu acho mais estranho é que pro index.php foi direitinho...

Vamos resolver isso rsrs, pode mandar outra vez os códigos do:

index.php adiciona-produto.php produto-formulario.php

Oi Jéssica, tudo bom? =)

Seu código do cabecalho está parecido com o código a seguir?

<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="container">
        <div class="principal">

E seu rodapé está parecido com o código a seguir?

        </div>
    </div>
</body>
</html>

O código entre os includes não parece ter mais nada de errado.

Se você quiser, pode baixar o projeto pronto desse capitulo aqui e dar uma conferida. As vezes é bom pra comparar e dar um norte =)

Qualquer problema, compartilha um pouco mais do seu código com a gente, assim fica mais fácil até de simular seu problema e ir descobrindo.

Abraço

Me ajudou muito ver o código fonte para comparação! Tinham pequenas coisas faltando, como ausência de / em algumas linhas. O único que ainda não aceitou a formatação foi o "adiciona-produto.php", vou revisar mais uma vez e copiar a pasta fonts que não veio na versão do Bootstrap que eu baixei e ver se isso está influenciando em algo e já retorno para vocês.

Meu "adiciona_produto.php continua não recebendo o css do cabeçalho e do rodapé...faltou algo no código?

<?php include ("cabecalho.php");?>

<?php
$nome = $_GET["nome"];
$preco = $_GET["preco"];
?>

<p class="alert-success">Produto <?= $nome;?>,<?= $preco; ?> adicionado com sucesso!</p>

<?php include ("rodape.php");?>

Vou colocar o rodapé e o cabeçalho aqui também para ficar mais fácil:

1- rodape.php

    </div>
    <div>


</body>
</html>

2- cabecalho.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="container">
      <div class="principal">

Oi Jéssica,

No primeiro link o caminho que a gente quer usar é:

<link href="css/bootstrap.css" rel="stylesheet"/>

No seu código tem um ponto ao invés da barra