Ir ao conteúdo

Posts recomendados

Postado

Boa noite,

Toda vez que executo o index de minha página pela primeira vez, aparece as seguintes mensagens de erro:

 

Notice: Undefined index: caixa1 in C:\xampp\htdocs\Cubico\index.php on line 6
Notice: Undefined index: caixa2 in C:\xampp\htdocs\Cubico\index.php on line 7
Notice: Undefined index: caixa3 in C:\xampp\htdocs\Cubico\index.php on line 8
Notice: Undefined index: caixa4 in C:\xampp\htdocs\Cubico\index.php on line 9

 

Mas depois que executo o programa a prmeira vez, ele gera o resultado que eu queria e a mensagem de erro some, mas quando é a primeira vez sempre aparece. E no codigo aparentemente não tem nada incorreto.

<

<?php
  require("CalcPreco-class.php");
  $cp = new CalcPreco();
  $preco = 0;
  
  $caixa1 = $_POST["caixa1"];
  $caixa2 = $_POST["caixa2"];
  $caixa3 = $_POST["caixa3"];
  $caixa4 = $_POST["caixa4"];

  


    if (isset($_POST['caixa1']) && ($_POST['caixa2']) && ($_POST['caixa3']) && ($_POST['caixa4']) )
    {
      $preco = $cp->calculaPreco($caixa1, $caixa2, $caixa3, $caixa4);
    }
    
   
    

?>

>

 

Os erros são nessas linhas

  $caixa1 = $_POST["caixa1"];
  $caixa2 = $_POST["caixa2"];
  $caixa3 = $_POST["caixa3"];
  $caixa4 = $_POST["caixa4"];

 

Gostaria de ajuda para que esses erros não apareçam mais.

Obrigado desde já!

Postado

Você está atribuindo o valor sem verificar se ele realmente foi inserido na super global $_POST

 

Quando se utiliza a variável super global $_POST, se espera uma requisição utilizando o método POST, é recomendado utilizar uma condicional para verificar se houve essa requisição.

 

Caso você queira verificar se ocorreu uma requisição utilizando o método POST, você deve verificar o cabeçalho da requisição utilizando a super global $_SERVER.

 

$_SERVER é uma variável super global do PHP que contém informações sobre cabeçalhos, caminhos e localizações de scripts.

if ($_SERVER["REQUEST_METHOD"] == "POST") 
{
 // Seu código vai aqui dentro
}

O elemento "REQUEST_METHOD" da super global $_SERVER retorna o método de solicitação usado para acessar a página (como POST ou GET).

 

Depois de verificar o método, você deve verificar se cada valor foi inserido devidamente na super global $_POST.

if(isset($_POST['caixa1']) and !empty($_POST['caixa1'])){
 	// Caso ele tenha sido inserido e não esteja com o valor em branco, você pode fazer a atribuição
	$caixa1 = $_POST['caixa1'];
}

Um exemplo de como ficaria sua página

<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") 
{
  
	require("CalcPreco-class.php");
    $cp = new CalcPreco();
    $preco = 0;
    $caixa1 = $caixa2 = $caixa3 = $caixa4 = 0; // Definindo o valor default 0
  
    if(isset($_POST['caixa1']) and !empty($_POST['caixa1']))
    {
      // Caso ele tenha sido inserido e não esteja com o valor em branco, você pode fazer a atribuição
      $caixa1 = $_POST["caixa1"];
    }
  
    if(isset($_POST['caixa2']) and !empty($_POST['caixa1']))
    {
      $caixa2 = $_POST["caixa2"];
    }
  
    if(isset($_POST['caixa3']) and !empty($_POST['caixa1']))
    {
      $caixa3 = $_POST["caixa3"];
    }
  
    if(isset($_POST['caixa4']) and !empty($_POST['caixa1']))
    {
      $caixa4 = $_POST["caixa4"];
    }
  
	$preco = $cp->calculaPreco($caixa1, $caixa2, $caixa3, $caixa4);
}
?>

Caso você ainda tenha duvidas, você pode ler esses tutoriais.

https://www.w3schools.com/php7/php7_forms.asp

https://www.w3schools.com/php7/php7_superglobals.asp

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!