Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

fviriato

[Resolvido] PHP não recebe ou não reconhece variável passada pelo método post

Recommended Posts

Fala Galera, sou novo no PHP e preciso de uma ajuda urgente!

 

Seguinte, tenho um arquivo em php chamado clientes.php, que lista todos os clientes cadastrados no banco. Conforme segue abaixo....

 

<?php
     require './protege.php';
     require './config.php';
     require './lib/funcoes.php';
     require './lib/conexao.php';

     $q = '';
     if (isset($_GET['q'])) {
         $q = trim($_GET['q']);
     }
?>
<!DOCTYPE html>
<html lang="pt-br">
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <title>Clientes</title>

        <?php headCss(); ?>
    </head>
    <body>

        <?php include 'nav.php'; ?>

        <div class="container">

            <div class="page-header">
                <h2><i class="fa fa-users"></i> Clientes</h2>
            </div>

            <div class="panel panel-default">
                <div class="panel-heading">
                    <h3 class="panel-title">Clientes</h3>
                </div>
                <div class="panel-body">
                    <form class="form-inline" role="form" method="post" action="">
                        <div class="form-group">
                            <label class="sr-only" for="fq">Pesquisa</label>
                            <input type="search" class="form-control" id="fq" name="q" placeholder="Pesquisa" value="<?php echo $q; ?>">
                        </div>
                        <button type="submit" class="btn btn-default">Pesquisar</button>

                </div>

                <table class="table table-striped table-hover">
                    <thead>
                        <tr>
                            <th>#</th>
                            <th></th>
                            <th>Nome</th>
                            <th>E-mail</th>
                            <th>Tel. Fixo</th>
                            <th>Celular</th>
                            <th>Ação</th>
                        </tr>
                    </thead>
                    <tbody>
                        <?php
                             $sql = "select * from cliente";
                             if ($q != '') {
                                 $sql .= " where nome like '%$q%'";
                             }

                             $consulta = mysqli_query($con, $sql);
                             while ($resultado = mysqli_fetch_assoc($consulta)) {
                                 ?>
                                 <tr>
                                     <td><?php echo $resultado['idcliente']; ?></td>
                                     <td>
                                         <?php if ($resultado['ativo'] == CLIENTE_ATIVO) { ?>
                                             <span class="label label-success">ativo</span>
                                         <?php } else { ?>
                                             <span class="label label-warning">inativo</span>
                                         <?php } ?>
                                     </td>
                                     <td><?php echo $resultado['nome']; ?></td>
                                     <td><?php echo $resultado['email']; ?></td>
                                     <td><?php echo $resultado['telefonefixo']; ?></td>
                                     <td><?php echo $resultado['telefonecelular']; ?></td>
                                     <td>
                                         <a href="clientes-editar.php?idcliente=<?php echo $resultado['idcliente']; ?>" title="Editar cliente"><i class="fa fa-edit fa-lg"></i></a>
                                         <a href="clientes-apagar.php?idcliente=<?php echo $resultado['idcliente']; ?>" title="Remover cliente"><i class="fa fa-times fa-lg"></i></a>
                                         <a href="venda-nova.php?idcliente=<?php echo $resultado['idcliente']; ?>" title="Nova Venda"><i class="fa fa-share fa-lg"></i></a>

                                     </td>
                                 </tr><?php
                             }
                        ?>
                    </tbody>
                </table>
                </form>
            </div>

        </div>

        <script src="./lib/jquery.js"></script>
        <script src="./lib/bootstrap/js/bootstrap.min.js"></script>

    </body>
</html>

 

Neste arquivo clientes.php, tenho um link para editar os clientes. O arquivo é chamado clientes-editar.php. Conforme segue.

 

 

<?php
     require './protege.php';
     require './config.php';
     require './lib/funcoes.php';
     require './lib/conexao.php';

     $msg = array();

     if (isset($_GET['idcliente'])) {
         $idcliente = (int) $_GET['idcliente'];
     } else {
         $idcliente = (int) $_POST['idcliente'];
     }

     $sql = "select * from cliente where idcliente= $idcliente";

     $consulta = mysqli_query($con, $sql);
     $retorno = mysqli_fetch_assoc($consulta);

     if (!$retorno) {
         echo "Cliente não existe!";
         exit;
     }
     $nome = $retorno['nome'];
     $razaosocial = $retorno['razaosocial'];
     $cnpj = $retorno['cnpj'];
     $inscricaoestadual = $retorno['inscricaoestadual'];
     $inscricaomunicipal = $retorno['inscricaomunicipal'];
     $endereco = $retorno['endereco'];
     $complemento = $retorno['complemento'];
     $bairro = $retorno['bairro'];
     $cep = $retorno['cep'];
     $cidade = $retorno['cidade'];
     $estado = $retorno['estado'];
     $telefonefixo = $retorno['telefonefixo'];
     $telefonecelular = $retorno['telefonecelular'];
     $operadora = $retorno['operadora'];
     $whatsapp = $retorno['whatsapp'];
     $email = $retorno['email'];
     $ativo = $retorno['ativo'];
     
     


     if ($_POST) {
         $idcliente = trim($_POST['idcliente']);
         $nome = trim($_POST['nome']);
         $razaosocial = trim($_POST['razaosocial']);
         $cnpj = trim($_POST['cnpj']);
         $inscricaoestadual = trim($_POST['inscricaoestadual']);
         $inscricaomunicipal = trim($_POST['inscricaomunicipal']);
         $endereco = trim($_POST['endereco']);
         $complemento = trim($_POST['complemento']);
         $bairro = trim($_POST['bairro']);
         $cep = trim($_POST['cep']);
         $cidade = trim($_POST['cidade']);
         $estado = trim($_POST['estado']);
         $telefonefixo = trim($_POST['telefonefixo']);
         $telefonecelular = trim($_POST['telefonecelular']);
         $operadora = trim($_POST['operadora']);
         $whatsapp = trim($_POST['whatsapp']);
         $email = trim($_POST['email']);
         $ativo = trim($_POST['ativo']);

         if (isset($_POST['ativo'])) {
             $ativo = CLIENTE_ATIVO;
         } else {
             $ativo = CLIENTE_INATIVO;
         }

         // Validar informacoes
         if ($nome == '') {
             $msg[] = 'Informe o nome Fantasia';
         }
         if ($razaosocial == '') {
             $msg[] = 'Informe a Razão Social';
         }
         if ($cnpj == '') {
             $msg[] = 'Informe o CPF ou CNPJ';
         }
         if ($inscricaoestadual == '') {
             $msg[] = 'Informe a Inscrição Estadual';
         }
         if ($inscricaomunicipal == '') {
             $msg[] = 'Informe a Inscrição Municipal';
         }
         if ($endereco == '') {
             $msg[] = 'Informe o Endereço';
         }
         if ($bairro == '') {
             $msg[] = 'Informe o Bairro';
         }
         if ($cep == '') {
             $msg[] = 'Informe o CEP';
         }
         if ($cidade == '') {
             $msg[] = 'Informe a Cidade';
         }
         if ($estado == '') {
             $msg[] = 'Informe o Estado';
         }
         if ($telefonefixo == '') {
             $msg[] = 'Informe o Telefone Fixo';
         }
         if ($telefonecelular == '') {
             $msg[] = 'Informe o Celular';
         }
         if ($operadora == '') {
             $msg[] = 'Informe a operadora';
         }
         if ($whatsapp == '') {
             $msg[] = 'Informe se o cliente tem Whatsapp';
         }
         if ($email == '') {
             $msg[] = 'Informe um endereço de email';
         }


         if (!$msg) {
             // Salvar informacoes
             $sql = "Update cliente Set
                            nome = '$nome',
                            razaosocial = '$razaosocial',
                            cnpj = '$cnpj',
                            inscricaoestadual = '$inscricaoestadual',
                            inscricaomunicipal = '$inscricaomunicipal',
                            endereco = '$endereco',
                            complemento = '$complemento',
                            bairro = '$bairro',
                            cep = '$cep',
                            cidade = '$cidade',
                            estado = '$estado',
                            telefonefixo = '$telefonefixo',
                            telefonecelular = '$telefonecelular',
                            operadora = '$operadora',
                            whatsapp = '$whatsapp',
                            email = '$email',
                            ativo = '$ativo'
                            Where (idcliente = $idcliente)";
             $gravou = mysqli_query($con, $sql);
             if ($gravou) {
                 $msg[] = "Registro atualizado com sucesso!";
             } else {
                 $msg[] = "Falha ao atualizar dados";
                 $msg[] = mysqli_error($con);
             }
         }
     }
?>
<!DOCTYPE html>
<html lang="pt-br">
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <title>Alterar Cliente</title>

        <?php headCss(); ?>
    </head>
    <body>

        <?php include 'nav.php'; ?>

        <div class="container">

            <div class="page-header">
                <h1><i class="fa fa-cubes"></i> Cadastrar Cliente:<?php echo $nome; ?></h1>
            </div>

            <?php
                 if ($msg) {
                     msgHtml($msg);
                 }
            ?>

            <form role="form" method="POST" action="clientes-editar.php">

                <div class="row">

                    <div class="form-group col-xs-12 col-sm-6 col-md-6">
                        <label for="fnome">Nome Fantasia</label>
                        <input type="text" class="form-control" id="fnome" name="nome" placeholder="Nome Fantasia" value="<?php echo $nome; ?>">
                    </div>  

                    <div class="form-group col-xs-12 col-sm-6 col-md-6">
                        <label for="razaosocial">Razão Social</label>
                        <input type="text" class="form-control" id="fnome" name="razaosocial" placeholder="Razão Social" value="<?php echo $razaosocial; ?>">
                    </div>

                    <div class="form-group col-xs-12 col-sm-6 col-md-4">
                        <label for="fcnpj">CPF/CNPJ</label>
                        <input type="text" class="form-control" id="fnome" name="cnpj" placeholder="CPF/CNPJ" value="<?php echo $cnpj; ?>">
                    </div>  

                    <div class="form-group col-xs-12 col-sm-6 col-md-4">
                        <label for="finscricaoestadual">Inscrição Estadual</label>
                        <input type="text" class="form-control" id="fnome" name="inscricaoestadual" placeholder="Inscrição Estadual" value="<?php echo $inscricaoestadual; ?>">
                    </div>

                    <div class="form-group col-xs-12 col-sm-6 col-md-4">
                        <label for="finscricaomunicipal">Inscrição Municipal</label>
                        <input type="text" class="form-control" id="fnome" name="inscricaomunicipal" placeholder="Inscrição Municipal" value="<?php echo $inscricaomunicipal; ?>">
                    </div>

                    <div class="form-group col-xs-12 col-sm-6 col-md-6">
                        <label for="fendereco">Endereço</label>
                        <input type="text" class="form-control" id="fnome" name="endereco" placeholder="Endereço" value="<?php echo $endereco; ?>">
                    </div>

                    <div class="form-group col-xs-12 col-sm-6 col-md-6">
                        <label for="fcomplemento">Comlemento</label>
                        <input type="text" class="form-control" id="fnome" name="complemento" placeholder="Complemento" value="<?php echo $complemento; ?>">
                    </div>

                    <div class="form-group col-xs-12 col-sm-6 col-md-4">
                        <label for="fbairro">Bairro</label>
                        <input type="text" class="form-control" id="fnome" name="bairro"" placeholder="Bairro"" value="<?php echo $bairro; ?>">
                    </div>

                    <div class="form-group col-xs-12 col-sm-6 col-md-2">
                        <label for="fcep">CEP</label>
                        <input type="text" class="form-control" id="fnome" name="cep" placeholder="CEP" value="<?php echo $cep; ?>">
                    </div>

                    <div class="form-group col-xs-12 col-sm-6 col-md-3">
                        <label for="fcidade">Cidade</label>
                        <input type="text" class="form-control" id="fnome" name="cidade" placeholder="Cidade" value="<?php echo $cidade; ?>">
                    </div>

                    <div class="form-group col-xs-12 col-sm-6 col-md-3">
                        <label for="festado">Estado</label>
                        <input type="text" class="form-control" id="fnome" name="estado" placeholder="Estado" value="<?php echo $estado; ?>">
                    </div>

                    <div class="form-group col-xs-12 col-sm-6 col-md-4">
                        <label for="ftelefonefixo">Telefone Fixo</label>
                        <input type="text" class="form-control" id="fnome" name="telefonefixo" placeholder="(##) ####-####" value="<?php echo $telefonefixo; ?>">
                    </div>
                    <div class="form-group col-xs-12 col-sm-6 col-md-4">
                        <label for="ftelefoneceluar">Telefone Celular</label>
                        <input type="text" class="form-control" id="fnome" name="telefonecelular" placeholder="(##) #####-####" value="<?php echo $telefonecelular; ?>">
                    </div>

                    <div class="form-group col-xs-12 col-sm-6 col-md-2">
                        <label for="foperadora">Operadora</label>
                        <select id="fidproduto" name="operadora" class="form-control" required >
                            <?php
                                 $sql = "select operadora from cliente where idcliente= $idcliente";
                                 $result = mysqli_query($con, $sql);
                                 $linha = mysqli_fetch_assoc($result);
                            ?>
                            <option value="8">Claro</option>
                        </select>
                    </div>

                    <div class="form-group col-xs-12 col-sm-6 col-md-2">
                        <label for="foperadora">WhatsApp?</label>
                        <select id="fidproduto" name="whatsapp" class="form-control" required >
                            <option></option>
                            <option value="sim">SIM</option>
                            <option value="não">NÃO</option>
                        </select>
                    </div>


                    <div class="form-group col-xs-12 col-sm-6 col-md-4">
                        <label for="femail">Email</label>
                        <input type="email" class="form-control" id="femail" name="email" placeholder="email@email.com" value="<?php echo $email; ?>">
                    </div>
                    <div class="checkbox col-xs-12 col-sm-6 col-md-4">
                        <label for="fativo">
                            <input type="checkbox" name="ativo" id="fativo"<?php if ($ativo == CLIENTE_ATIVO) { ?> checked<?php } ?>> Cliente ativo
                        </label>
                    </div>


                </div>     

                <button type="submit" class="btn btn-success">Atualizar</button>
                <a href="index.php"><button type="button" class="btn btn-danger">Cancelar</button></a>               
                <a href="index.php"><input type="button" class="btn btn-primary" value="Painel"></a>  

            </form>
        </div>

        <script src="./lib/jquery.js"></script>
        <script src="./lib/bootstrap/js/bootstrap.min.js"></script>

    </body>
</html>

Ao clicar no botão Atualizar, recebo um erro do PHP de que a variável idcliente não existe. Veja na imagem abaixo:

 

( ! ) Notice: Undefined index: idcliente in C:\wamp64\www\SistemaVendasDescartaveis\clientes-editar.php on line 12
Call Stack
# Time Memory Function Location
1 0.0007 294104 {main}( ) ...\clientes-editar.php:0

 

 

Poderiam me ajudar com este erro. Tenho que entregar o trabalho na segunda de manha.

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites
9 minutos atrás, fviriato disse:

if (isset($_GET['idcliente'])) { $idcliente = (int) $_GET['idcliente']; } else { $idcliente = (int) $_POST['idcliente']; }

Você está mandando ele captar direto os valores.

Ou seja mesmo se o usuário não tiver esse idcliente via post/get você manda receber.

 

usa operador ternário

(isset($_POST["idcliente"]))?$_POST["idcliente"] : 0;
(isset($_GET["idcliente"]))?$_GET["idcliente"] : 0;

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
10 horas atrás, jamesbond disse:

Você está mandando ele captar direto os valores.

Ou seja mesmo se o usuário não tiver esse idcliente via post/get você manda receber.

 

usa operador ternário


(isset($_POST["idcliente"]))?$_POST["idcliente"] : 0;
(isset($_GET["idcliente"]))?$_GET["idcliente"] : 0;

 

jamesbond, não deu certo usando o operador ternário.

 

Toda vez que houver alguma edição, é porque há algum cliente selecionado, então eu tenho um idcliente. Isso é que não esto entendendo nem conseguindo resolver....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dei uma olhada no formulário e não encontrei nenhum campo com o resultado de "idcliente" da solicitação sql. 

 

Dentro da tag <form> introduza um input tipo hidden com a identificação, como por exemplo:

<input type="hidden" id="idcliente" name="idcliente" value="<?php echo $idcliente; ?>">

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
5 minutos atrás, Rodrigo Patricio disse:

Dei uma olhada no formulário e não encontrei nenhum campo com o resultado de "idcliente" da solicitação sql. 

 

Dentro da tag <form> introduza um input tipo hidden com a identificação, como por exemplo:


<input type="hidden" id="idcliente" name="idcliente" value="<?php echo $idcliente; ?>">

 

Rodrigo, agora deu certo!

 

Era isso que faltava

 

Show, muito obrigado cara!!!!!

 

Salvou minha pele..........Valeu

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por landerbadi
      Boa tarde pessoal. Estou tentado fazer uma consulta no banco de dados porém estou tendo dificuldades. Tenho uma tabela chamada "itens" com os seguintes campos: id, item, ativo. Nela tem cadastrado vários itens. No campo ativo eu coloco a letra "S" para informar que este item está ativo no sistema. Por exemplo: 1, casa, S 2, mesa, S 3, cama, S 4, moto S 5, rádio O quinto registro "radio" não está ativo no sistema pois não tem um "S" no campo ativo. E outra tabela chamada "produtos" com os seguintes campos (id, item1, item2, item3) com os seguintes registros: 1, casa, mesa, moto 2, mesa, casa, cama 3, rádio, cama, mesa Eu preciso fazer uma busca na tabela produtos da seguinte maneira: Eu escolho um registro na tabela "itens", por exemplo "mesa". Preciso fazer com que o php me liste todos os registros da tabela "produtos" que contenham a palavra "mesa". Até aqui tudo bem eu consigo listar. Estou fazendo assim: <?php $item = "mesa" $sql = mysqli_query($conn, "SELECT * FROM produtos WHERE item1 LIKE '$item' OR item2 LIKE '$item' OR item3 LIKE '$item' LIMIT 10"); while($aux = mysqli_fetch_assoc($sql)) { $id = $aux["id"]; $item1 = $aux["item1"]; $item2 = $aux["item2"]; $item3 = $aux["item3"]; echo $id . " - " . $item1 . ", " . $item2 . ", " $item3 . "<br>"; } ?> O problema é que está listando todos os registros que contém o item mesa. Eu preciso que o php verifique os demais item e me liste somente os registro em que todos os registros estejam ativos no sistema. No exemplo acima ele não deveria listar o registro 3. pois nesse registro contém o item "radio" e este item não está ativo no sistema. Ou seja, o registro "radio" na tabela itens não possui um "S" na coluna "ativo". Alguém sabe como resolver isso?
    • Por ILR master
      Fala galera.
      Espero que todos estejam bem.
      Seguinte: Tenho um arquivo xml onde alguns campos estão com : (dois pontos), como o exemplo abaixo:
       
      <item>
      <title>
      d sa dsad sad sadasdas
      </title>
      <link>
      dsadas dsa sad asd as dsada
      </link>
      <pubDate>sadasdasdsa as</pubDate>
      <dc:creator>
      d sad sad sa ad as das
      </dc:creator>
      </item>
       
      Meu código:
       
      $link = "noticias.xml"; 
      $xml = simplexml_load_file($link); 
      foreach($xml -> channel as $ite) {     
           $titulo = $ite -> item->title;
           $urltitulo = $ite -> item->link;
           print $urltitulo = $ite -> item->dc:creator;
      } //fim do foreach
      ?>
       
      Esse campo dc:creator eu não consigo ler. Como faço?
       
      Agradeço quem puder me ajudar.
       
      Abs
       
       
    • Por First
      Olá a todos!
       
      Eu estou criando um sistema do zero mas estou encontnrando algumas dificuldades e não estou sabendo resolver, então vim recorrer ajuda de vocês.
      Aqui está todo o meu código: https://github.com/PauloJagata/aprendizado/
       
      Eu fiz um sistema de rotas mas só mostra o conteúdo da '/' não sei porque, quando eu tento acessar o register nada muda.
      E eu também quero que se não estiver liberado na rota mostra o erro de 404, mas quando eu tento acessar um link inválido, nada acontece.
      Alguém pode me ajudar com isso? E se tiver algumas sugestão para melhoria do código também estou aceitando.
       
       
      Desde já, obrigado.
    • Por landerbadi
      Olá pessoal, boa tarde
       
      Tenho uma tabela chamada "produtos" com os seguintes campos (id, produto) e outra tabela chamada "itens" com os seguintes campos (id, prod_01, prod_02, prod_03, prod_04).
       
      Na tabela produtos eu tenho cadastrado os seguintes produtos: laranja, maçã, uva, goiaba, arroz, feijão, macarrão, etc.
       
      Na tabela itens eu tenho cadastrado os itens da seguinte maneira:
       
      1, laranja, uva, arroz, feijão;
      2, maçã, macarrão, goiaba, uva;
      3, arroz, feijão, maçã, azeite
       
      Meu problema é o seguinte: 
      Eu escolho um produto da tabela "produtos", por exemplo "uva".  Preciso fazer uma consulta na tabela "itens" para ser listado todos os registros que contenham o produto "uva" e que todos os demais produtos estejam cadastrados na tabela "produtos".
       
      No exemplo acima seria listado apenas dois registros, pois o terceiro registro não contém o produto "uva". 
       
      Alguém pode me ajudar? Pois estou quebrando a cabeça a vários dias e não consigo achar uma solução.
    • Por landerbadi
      Boa tarde pessoal. Estou tentado fazer uma consulta no banco de dados porém estou tendo dificuldades. Tenho uma tabela chamada "itens" com os seguintes campos: id, item, plural, ativo. Nela tem cadastrado vários itens e seu respectivo plural. No campo ativo eu coloco a letra "S" para informar que esta palavra está ativa no sistema. Por exemplo: 1, casa, casas, S 2, mesa, mesas, S 3, cama, camas, S 4, moto, motos, S 5, rádio, rádios O quinto registro "radio" não está ativo no sistema pois não tem um "S" no campo ativo. E outra tabela chamada "variações" com os seguintes campos (id, item1, item2, item3) com os seguintes registros: 1, casa, camas, moto 2, mesas, casas, radio 3, rádio, cama, mesa Eu preciso fazer uma busca na tabela variações da seguinte maneira: Eu escolho um registro na tabela "itens", por exemplo "casa". Preciso fazer com que o php me liste todos os registros da tabela "variações" que contenham a palavra "casa". Porém se tiver algum registro com a palavra "casas" também tem que ser listado. Neste caso ele irá encontrar dois registros. Agora eu preciso que o php verifique os demais itens e faça a listagem apenas dos item que estão ativos (que contenham um "S" no campo ativo. Neste caso ele irá encontrar apenas um registro, pois o segundo registro contém a palavra "rádio". E "rádio" não está ativo na tabela itens. Como faço isso?
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.