NOTICE Notice: Undefined index

Asked

Viewed 201 times

0

EAE BLZ? I’m studying about php and doing a college job, I’ve been having this error in vps windows I have, when running on my own pc it shows no error, already in vps keeps returning these errors >

Notice: Undefined index: pergunta1 in C: xampp htdocs calculo.php on line 64

Notice: Undefined index: Pergunta2 in C: xampp htdocs calculo.php on line 65

Notice: Undefined index: pergunta3 in C: xampp htdocs calculo.php on line 66

Notice: Undefined index: pergunta4 in C: xampp htdocs calculo.php on line 67

Notice: Undefined index: pergunta5 in C: xampp htdocs calculo.php on line 68

Notice: Undefined index: questiona6 in C: xampp htdocs calculo.php on line 69

Notice: Undefined index: pergunta7 in C: xampp htdocs calculo.php on line 70

Notice: Undefined index: pergunta8 in C: xampp htdocs calculo.php on line 71

my code below >


<!DOCTYPE html>
<html lang="pt-br">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, height=device-height, initial-scale=1, maximum-scale=1, user-scalable=no">
  <title>Home - Trabalho Acadêmico</title>

  <!-- Links Site -->
  <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css" integrity="sha384-9aIt2nRpC12Uk9gS9baDl411NQApFmC26EwAOH8WgZl5MYYxFfc+NcPb1dKGj7Sk" crossorigin="anonymous">
  <link rel="icon" type="image/png" href="https://ufersa.edu.br/wp-content/themes/temaufersa/img/favicon.png" />
  <link href="https://fonts.googleapis.com/css2?family=Roboto:ital,wght@1,300&display=swap" rel="stylesheet">
  <link rel="stylesheet" type="text/css" href="assets/style.css">
  <link rel="stylesheet" type="text/css" href="assets/style.scss">
  <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css" integrity="sha384-9aIt2nRpC12Uk9gS9baDl411NQApFmC26EwAOH8WgZl5MYYxFfc+NcPb1dKGj7Sk" crossorigin="anonymous">
  <link href="https://fonts.googleapis.com/css?family=Fira+Sans" rel="stylesheet">
  <!-- Fim Links -->

</head>

<body>

  <!-- Topo -->
  <header>
    <div class="topo">
      <div class="logo">
        <a href="index.php"><img src="img/logo.png" alt=""></a>
      </div>
      <nav class="menu">
        <ul>
          <li><a href="index.php">Home</a></li>
          <li><a href="sobre.php">Sobre o Projeto</a></li>
          <li><a href="sobre_nos.php">Sobre Nós</a></li>
        </ul>
    </div>
    </div>
  </header>
  <!-- Fim topo -->

  <!-- Slider -->

  <div id="carouselExampleControls" class="carousel slide" data-ride="carousel">
    <div class="carousel-inner">
      <div class="carousel-item active">
        <img class="d-block w-100" height="396px" src="https://www.slmandic.edu.br/wp-content/uploads/2020/03/BANNER-SITE-CORONAVIRUS.png" alt="First slide">
      </div>
      <div class="carousel-item">
        <img class="d-block w-100" height="396px" src="https://www4.infraero.gov.br/media/802252/banner_santafe_v01.png" alt="Second slide">
      </div>
      <div class="carousel-item">
        <img class="d-block w-100" src="https://www4.infraero.gov.br/media/802252/banner_santafe_v01.png" alt="Third slide">
      </div>
    </div>
    <a class="carousel-control-prev" href="#carouselExampleControls" role="button" data-slide="prev">
      <span class="carousel-control-prev-icon" aria-hidden="true"></span>
      <span class="sr-only">Previous</span>
    </a>
    <a class="carousel-control-next" href="#carouselExampleControls" role="button" data-slide="next">
      <span class="carousel-control-next-icon" aria-hidden="true"></span>
      <span class="sr-only">Next</span>
    </a>
  </div>

  <!-- Fim Slider -->

  <!-- Info Covid19 -->
  <section class="jumbotron text-center">
    <div class="container">
      <h1 class="jumbotron-heading">O QUE É CORONAVÍRUS? (COVID-19)</h1>
      <p class="lead text-muted">Coronavírus é uma família de vírus que causa infecções respiratórias, cujos primeiros casos foram isolados pela primeira vez em 1937, porém, apenas em 1965 foi descrito como coronavírus, em decorrência do aspecto apresentado a microscopia, similar a uma coroa.
        O novo agente do coronavírus (SARS-CoV-2) foi descoberto em 31 de dezembro de 2019 após casos registrados na China, e a doença, por determinação da Organização Mundial da Saúde (OMS), foi denominada de COVID19. Em 11 de março de 2020 foi decretada como pandemia pela OMS.</p>
      <p>
        <a href="sobre.php" class="btn btn-primary my-2">Saiba Mais</a>
      </p>
    </div>
  </section>

  <!-- Fim Info Covid19 -->

  <!-- Questionario Covid -->
  <div class="container">
    <div class="row featurette">
      <div class="col-md-7">
        <h2 class="featurette-heading">Realize o teste do novo <span class="text-muted"> NOVO CORONAVIRUS.</span></h2>
        <p class="lead">A sua jornada começa com um questionário de sintomas do novo coronavírus. As respostas são associadas às suas condições prévias de saúde, como doenças cardíacas e respiratórias e geram o resultado da triagem, é só clicar nos sintomas que está sentindo logo abaixo e enviar, logo será dado o resultado.</p>
      </div>
      <div class="col-md-5">
        <img src="https://testedocorona.com.br/assets/logo-teste-do-corona.webp" height="120px" alt="">
      </div>
    </div>
  </div>

  <hr class="featurette-divider">
        

  <form action="calculo.php" method="POST" name="questionario">
        <div class="container">

        <input id="toggle1" name="pergunta1" value="1" type="checkbox">
        <label for="toggle1">Teve contato com alguém sintomático nos últimos 30 dias ?</label>

        <input id="toggle2" name="pergunta2" value="2" type="checkbox">
        <label for="toggle2">Você teve problemas para respirar recentemente (respiração curta) ?</label>

        <input id="toggle3" name="pergunta3" value="3" type="checkbox">
        <label for="toggle3">Seus olhos tem coçado nos últimos dias ?</label>

        <input id="toggle4" name="pergunta4" value="4" type="checkbox">
        <label for="toggle4">Você está com coriza (nariz escorrendo) ?</label>

        <input id="toggle5" name="pergunta5" value="5" type="checkbox">
        <label for="toggle5">Teve frebre nos ultimos dias?</label>

        <input id="toggle6" name="pergunta6" value="6" type="checkbox">
        <label for="toggle6">Tem tossido muito ultimamente ?</label>

        <input id="toggle7" name="pergunta7" value="7" type="checkbox">
        <label for="toggle7">Você está com dor de garganta?</label>

        <input id="toggle8" name="pergunta8" value="8" type="checkbox">
        <label for="toggle8">Você teve diarréia nos últimos 10 dias?</label><br><br>

        <button name="enviar " type="submit" value="submit" class="btn btn-primary btn-lg btn-block">Resultado</button><br><br>

  </form>
  </div>
  <!-- Fim Questionario Covid -->

  <script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
  <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script>
  <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/js/bootstrap.min.js" integrity="sha384-OgVRvuATP1z7JjHLkuOU7Xw704+h835Lr+6QL9UvYjZE3Ipu6Tp75j7Bh/kR0JKI" crossorigin="anonymous"></script>

  <footer>
    <div class="logo_rodape">
      <img src="https://ufersa.edu.br/wp-content/themes/temaufersa/img/favicon.png" alt="">
      <a href="index.php">PROJETO BSI UFERSA - ANGICOS | <?= date('M, Y') ?></a>
    </div>
  </footer>

</body>

</html>

calculus.php


<!DOCTYPE html>
<html lang="pt-br">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, height=device-height, initial-scale=1, maximum-scale=1, user-scalable=no">
  <title>Home - Trabalho Acadêmico</title>

  <!-- Links Site -->
  <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css" integrity="sha384-9aIt2nRpC12Uk9gS9baDl411NQApFmC26EwAOH8WgZl5MYYxFfc+NcPb1dKGj7Sk" crossorigin="anonymous">
  <link rel="icon" type="image/png" href="https://ufersa.edu.br/wp-content/themes/temaufersa/img/favicon.png" />
  <link href="https://fonts.googleapis.com/css2?family=Roboto:ital,wght@1,300&display=swap" rel="stylesheet">
  <link rel="stylesheet" type="text/css" href="assets/style.css">
  <link rel="stylesheet" type="text/css" href="assets/style.scss">
  <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css" integrity="sha384-9aIt2nRpC12Uk9gS9baDl411NQApFmC26EwAOH8WgZl5MYYxFfc+NcPb1dKGj7Sk" crossorigin="anonymous">
  <link href="https://fonts.googleapis.com/css?family=Fira+Sans" rel="stylesheet">
  <!-- Fim Links -->

</head>

<body>

  <!-- Topo -->
  <header>
    <div class="topo">
      <div class="logo">
        <a href="index.php"><img src="img/logo.png" alt=""></a>
      </div>
      <nav class="menu">
        <ul>
          <li><a href="index.php">Home</a></li>
          <li><a href="sobre.php">Sobre o Projeto</a></li>
          <li><a href="sobre_nos.php">Sobre Nós</a></li>
        </ul>
    </div>
    </div>
  </header>
  <br>
  <br>
  <br>
  <!-- Fim topo -->

  <!-- Questionario Covid -->
  <div class="container">
    <div class="row featurette">
      <div class="col-md-7">
        <h2 class="featurette-heading">Realize o teste do novo <span class="text-muted"> NOVO CORONAVIRUS.</span></h2>
        <p class="lead">A sua jornada começa com um questionário de sintomas do novo coronavírus. As respostas são associadas às suas condições prévias de saúde, como doenças cardíacas e respiratórias e geram o resultado da triagem, é só clicar nos sintomas que está sentindo logo abaixo e enviar, logo será dado o resultado.</p>
      </div>
      <div class="col-md-5">
        <img src="https://testedocorona.com.br/assets/logo-teste-do-corona.webp" height="120px" alt="">
      </div>
    </div>
  </div>

  <hr class="featurette-divider">



  <div class="container">
<div class="alert alert-primary" role="alert">
<?php
 
$pergunta1 = $_POST["pergunta1"];
$pergunta2 = $_POST["pergunta2"];
$pergunta3 = $_POST["pergunta3"];
$pergunta4 = $_POST["pergunta4"];
$pergunta5 = $_POST["pergunta5"];
$pergunta6 = $_POST["pergunta6"];
$pergunta7 = $_POST["pergunta7"];
$pergunta8 = $_POST["pergunta8"];


$resposta1 = "1";
$resposta2 = "2";
$resposta3 = "3";
$resposta4 = "4";
$resposta5 = "5";
$resposta6 = "6";
$resposta7 = "7";
$resposta8 = "8";


 
$acertou = 0;
$errou = 0;
 
if ($pergunta1 == $resposta1)
{
    $acertou++;
    echo "<font color = blue> Pergunta 1 | Sua resposta foi sim<br></font>";
}
else
{
    $errou++;
    echo "<font color = red> Pergunta 1 | Sua resposta foi Não<br></font>";
}
 
if ($pergunta2 == $resposta2)
{
    $acertou++;
    echo "<font color = blue> Pergunta 2 | Sua resposta foi sim<br></font>";
}
else
{
    $errou++;
    echo "<font color = red> Pergunta 2 | Sua resposta foi Não<br></font>";
}
 
if ($pergunta3 == $resposta3)
{
    $acertou++;
    echo "<font color = blue> Pergunta 3 | Sua resposta foi sim<br></font>";
}
else
{
    $errou++;
    echo "<font color = red> Pergunta 3 | Sua resposta foi Não<br></font>";
}

if ($pergunta4 == $resposta4)
{
    $acertou++;
    echo "<font color = blue> Pergunta 4 | Sua resposta foi sim<br></font>";
}
else
{
    $errou++;
    echo "<font color = red> Pergunta 4 | Sua resposta foi Não<br></font>";
}

if ($pergunta5 == $resposta5)
{
    $acertou++;
    echo "<font color = blue> Pergunta 5 | Sua resposta foi sim<br></font>";
}
else
{
    $errou++;
    echo "<font color = red> Pergunta 5 | Sua resposta foi Não<br></font>";
}
 
if ($pergunta6 == $resposta6)
{
    $acertou++;
    echo "<font color = blue> Pergunta 6 | Sua resposta foi sim<br></font>";
}
else
{
    $errou++;
    echo "<font color = red> Pergunta 6 | Sua resposta foi Não<br></font>";
}

if ($pergunta7 == $resposta7)
{
    $acertou++;
    echo "<font color = blue> Pergunta 7 | Sua resposta foi sim<br></font>";
}
else
{
    $errou++;
    echo "<font color = red> Pergunta 7 | Sua resposta foi Não<br></font>";
}

if ($pergunta8 == $resposta8)
{
    $acertou++;
    echo "<font color = blue> Pergunta 8 | Sua resposta foi sim<br></font>";
}
else
{
    $errou++;
    echo "<font color = red> Pergunta 8 | Sua resposta foi Não<br></font>";
}

 
 
 
 

 
$calc = 10;
$porcent = $calc * $acertou;
 
 
?>
</div>
</div>
</div>




<div class="d-flex justify-content-center">
<div class="alert alert-primary" role="alert">
  <?php 
  
 
  if ($acertou >=6)
  {
  echo "<br><br><b><blink>Considerando seus sintomas, seu quadro é suspeito do novo coronavírus como uma probabilidade de $porcent %  é importante procurar um médico para proceder com os exames necessários para obtenção de um diagnóstico.</blink></b>";
  }
  else
  {
  echo "<br><br><b><blink> Considerando seus sintomas, seu quadro é suspeito do novo coronavírus como uma probabilidade de $porcent% suas chances são baixas de ter no covid, fique atento e evite sair de casa.</blink></b>";
  }
    
  ?>
</div>
</div>


<br /><input  type="button" value="voltar" id="botao_voltar" onclick="history.go(-1)">

<footer>
    <div class="logo_rodape">
        <img src="https://ufersa.edu.br/wp-content/themes/temaufersa/img/favicon.png" alt="">
    </div>
    <a href="index.php">PROJETO BSI UFERSA - ANGICOS | <?= date('M, Y') ?></a>
</footer>
    
</body>
</html>

if anyone can explain to me why this happens, I thank you from the outset.

  • @Mike565, if any answer helped you, mark the question as answered. :)

  • I did it in an automated way, which makes it easier if you add some extra question, just change the $totalPerguntas!

3 answers

0

This mistake you say is actually just a WARNING (Notice).

It happens when there is no INDEX defined in the Array, in the case $_POST.

HTML: When a CHECKBOX is not checked, it is not submitted with FORM.

Whereas you want to know only the number of questions that have been answered and the unverified checkboxes not submitted with the form, you can greatly simplify your code:

<?php 

if(isset($_POST)){

    $totalPerguntas = 8;
    $respostasPositivas = 0;
        
    for($i=1;$i<=$totalPerguntas;$i++){

        $pergunta = 'pergunta' . $i;

        if(isset($_POST[ $pergunta ])){

            $respostasPositivas++;

            echo "<font color = blue> Pergunta $i | Sua resposta foi sim<br></font>";

        }else{

            echo "<font color = red> Pergunta $i | Sua resposta foi não<br></font>";

        }



    }

     // porcentagem de positivas
     $porcentagemPositivas = round( ($respostasPositivas/$totalPerguntas*100),2);

    // AQUI VOCÊ FAZ O RESTANTE QUE TER QUE FAZER......

}else{

    echo '<p>Favor responder o formulário para efetuar os cálculos</p>';

}

?>

Tip:

  • Before you start validating the answers, put a check if there really is $_POST, if it doesn’t exist, redirect the user to the question page again. Otherwise, it will show that the user missed all responses, but he did not even reply...

0

What happens is that the variables that have the name "question1" until "question8" receive the content of a form field of the same name, sent through the method "POST". When opening the page, the POST data does not exist, so the error message.

To solve this, you can use the isset() function to check if the POST field exists. Your code that receives the form data would look like this:

$pergunta1 = "";
$pergunta2 = "";
$pergunta3 = "";
$pergunta4 = "";
$pergunta5 = "";
$pergunta6 = "";
$pergunta7 = "";
$pergunta8 = "";

if (isset($_POST["pergunta1"])){
$pergunta1 = $_POST["pergunta1"];
}
if (isset($_POST["pergunta2"])){
$pergunta2 = $_POST["pergunta2"];
}
if (isset($_POST["pergunta3"])){
$pergunta3 = $_POST["pergunta3"];
}
if (isset($_POST["pergunta4"])){
$pergunta4 = $_POST["pergunta4"];
}
if (isset($_POST["pergunta5"])){
$pergunta5 = $_POST["pergunta5"];
}
if (isset($_POST["pergunta6"])){
$pergunta6 = $_POST["pergunta6"];
}
if (isset($_POST["pergunta7"])){
$pergunta7 = $_POST["pergunta7"];
}
if (isset($_POST["pergunta8"])){
$pergunta8 = $_POST["pergunta8"];
}
  • 1

    thanks for the help, I did what you all told me the error no longer appears.

0

Taking advantage of the friend’s answer above, simplify using null coalesce:

$pergunta1 = $_POST["pergunta1"]?? "";    
$pergunta2 = $_POST["pergunta2"]?? "";    
$pergunta3 = $_POST["pergunta3"]?? "";    
$pergunta4 = $_POST["pergunta4"]?? "";    
$pergunta5 = $_POST["pergunta5"]?? "";    
$pergunta6 = $_POST["pergunta6"]?? "";    
$pergunta7 = $_POST["pergunta7"]?? "";    
$pergunta8 = $_POST["pergunta8"]?? "";
  • 1

    thanks for the help, I did what you all told me the error no longer appears.

Browser other questions tagged

You are not signed in. Login or sign up in order to post.