I'm having problems with undefined index

0
 <?php 
$con = "";

function Conectar(){
$servidor = "localhost";
$usuario = "root";
$senha = "usbw";
$banco = "localcar";
$GLOBALS['con'] = new mysqli($servidor,$usuario,$senha,$banco);
}

//chamamos a função aqui para toda vez que fizermos include a conexão ser feita automaticamente..
Conectar();

function CadastrarCliente($nome,$cnh,$endereco){

    //comando da linguagem sql (do banco de dados mysql) para inserção de dados na tabela cliente
    $sql = 'INSERT INTO cliente VALUES (null,"'.$nome.'","'.$cnh.'","'.$endereco.'")';

    $res = $GLOBALS['con']->query($sql);
        if($res){
        //caso o comando seja executado sem problema, exibimos a mensagem abaixo
            alert("Cliente Cadastrado");
        }
}
function CadastrarVeiculo($placa,$modelo,$cor,$ano,$qntd_passageiro){

    //comando da linguagem sql (do banco de dados mysql) para inserção de dados na tabela veiculo
    $sql = 'INSERT INTO veiculo VALUES (null,"'.$placa.'","'.$modelo.'","'.$cor.'","'.$ano.'","'.$qntd_passageiro.'")';

    $res = $GLOBALS['con']->query($sql);
        if($res){
        //caso o comando seja executado sem problema, exibimos a mensagem abaixo
            alert("Veiculo Cadastrado");
        }
}
function alert($msg){
    echo '<script> alert("'.$msg.'");</script>';
}
function MostrarCliente(){
    //comando para listar todas os clientes
    $sql = 'SELECT * FROM cliente LIMIT 0,4';
    //executando comando no banco
    $resultado = $GLOBALS['con']->query($sql);
    //verificando se existem clientes cadastrados
    if($resultado->num_rows > 0){
        //enquanto houver clientes, iremos mostrar
        while($cliente = $resultado->fetch_array()){
            //como será exibido (codigo html embutido)
            echo '<div class="row">
                    <div class="col-md-8 col-md-offset-2">
                      <p>Nome: '.$cliente['nome'].'</p>
                      <p>CNH: '.$cliente['cnh'].'</p>
                      <p>Endereco: '.$cliente['endereco'].'</p>
                    </div> 
                  </div>';
        }
    }else{
        //nao tem Clientes
    }
}
function MostrarVeiculo(){
    //comando para listar todos os veiculos
    $sql = 'SELECT * FROM veiculo LIMIT 0,4';
    //executando comando no banco
    $resultado = $GLOBALS['con']->query($sql);
    //verificando se existem veiculos cadastrados
    if($resultado->num_rows > 0){
        //enquanto houver veiculos, iremos mostrar
        while($veiculo = $resultado->fetch_array()){
            //como será exibido (codigo html embutido)
            echo '<div class="row">
                    <div class="col-md-8 col-md-offset-2">
                      <p>Placa: '.$veiculo['placa'].'</p>
                      <p>Modelo: '.$veiculo['modelo'].'</p>
                      <p>Cor: '.$veiculo['cor'].'</p>
                      <p>Ano: '.$veiculo['ano'].'</p>
                      <p>Quantidade de Passageiros: '.$veiculo['qntd_passageiro'].'</p>
                    </div> 
                  </div>';
        }
    }else{
        //nao tem Veiculos
    }
}
?>

'

<?php 
include("funcoes.php");
if($_POST){
    CadastrarCliente($_POST['id'], $_POST['nome'],$_POST['cnh'],$_POST['endereco']);
CadastrarVeiculo($_POST['placa'],$_POST['modelo'],$_POST['cor'],$_POST['ano'],$_POST['qntd_passageiro']);
}
?>
<link href="../css/bootstrap.min.css" rel="stylesheet">
<link href="../css/style.css" rel="stylesheet">
<script src="../js/jquery.min.js"></script>
<script src="../js/bootstrap.min.js"></script>
<script src="../js/scripts.js"></script>
<meta charset="utf-8">

<script type="text/javascript">
  $(document).ready(function(){
    $('#cliente').click(function(){
      $('#formCliente').slideToggle();
    });
    $('#veiculo').click(function(){
      $('#formVeiculo').slideToggle();
    });
    $('#formCliente').hide();
    $('#formVeiculo').hide();
  });
</script>

<div class="container-fluid">
  <div class="row">
    <div class="col-md-4">

      <li class="btn btn-success" id="cliente">
        Cadastrar Cliente
      </li>

      <li class="btn btn-success" id="veiculo">
        Cadastrar Veiculo
      </li>

    </div>
<div class="col-md-8">
  <div class="row">
      <div class="col-md-6">
          <form action="index.php" method="post" id="formCliente">
          <p>
              <label for="">Nome</label><br>
              <input type="text" name="nome">
          </p>
          <p>
              <label for="">CNH</label><br>
              <input type="text" name="cnh">
          </p>
          <p>
              <label for="">Endereço</label><br> 
              <input type="text" name="endereco">
          </p>
          <p>
            <input type="submit" value="Cadastrar">
          </p>
          </form>
      </div>
      <div class="col-md-6">
          <form action="index.php" method="post" id="formVeiculo">
              <p>
                  <label for="">Placa</label><br>
                  <input type="text" name="placa">
              </p>
              <p>
                  <label for="">Modelo</label><br>
                  <input type="text" name="modelo">
              </p>
              <p>
                  <label for="">Cor</label><br> 
                  <input type="text" name="cor">
              </p>
              <p>
                  <label for="">Ano</label><br> 
                  <input type="text" name="ano">
              </p>
              <p>
                  <label for="">Quantidade de Passageiros</label><br> 
                  <input type="text" name="qntd_passageiro">
              </p>
              <p>
                <input type="submit" value="Cadastrar">
              </p>
          </form>
      </div>
  </div>
</div>  

'

What was modified with Francisco's help.

    if($_POST)
{
    if(isset($_POST['nome']))
        CadastrarCliente($_POST['nome'],$_POST['cnh'],$_POST['endereco']);
    else if (isset($_POST['placa']))
        CadastrarVeiculo($_POST['placa'],$_POST['modelo'],$_POST['cor'],$_POST['ano'],$_POST['qntd_passageiro']);
}

I am a student of a course where I have as an exercise to develop a small vehicle rental system where I have to register vehicle and customer data, the functions are all correct and I can already display the information on the user page as well, I did 4 functions one to register customer, for vehicle, one to display customer information and another for vehicle, I also used two forms to send to same page using method post.

I'm probably missing this first php tag:

Complementing...

Icanonlyregisterthecustomerwhoregistersthevehicletogether

    
asked by anonymous 15.06.2017 / 18:06

1 answer

1

The problem is that you are requiring variables from $_POST without first instantiating them.

For example:

You have created your form and sent the information by $_POST method to the index.php page, ie you can only use these variables after the form is validated. And in your case, it's not what you're doing (line 7). You are asking for the variables before you have created (validated the form).

Right way:

if($_POST)
{
    if(isset($_POST['id']))
        CadastrarCliente($_POST['id'], $_POST['nome'],$_POST['cnh'],$_POST['endereco']);
    else if (isset($_POST['placa']))
        CadastrarVeiculo($_POST['placa'],$_POST['modelo'],$_POST['cor'],$_POST['ano'],$_POST['qntd_passageiro']);
}
    
15.06.2017 / 18:24