Ir para conteúdo

POWERED BY:

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 violin101
      Caros amigos, saudações.
       
      Por favor, me permita tirar uma dúvida com os amigos.

      Tenho um Formulário onde o Usuário digita todos os Dados necessários.

      Minha dúvida:
      --> como faço após o usuário digitar os dados e salvar, o Sistema chamar uma Modal ou mensagem perguntando se deseja imprimir agora ?

      Grato,
       
      Cesar
    • Por Carcleo
      Tenho uma abela de usuarios e uma tabela de administradores e clientes.
      Gostaria de uma ajuda para implementar um cadastro
       
      users -> name, login, passord (pronta) admins -> user_id, registratiom, etc.. client -> user_id, registratiom, etc...
      Queria ajuda para extender de user as classes Admin e Client
      Olhem como estáAdmin
      <?php namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; class Admin extends User {     use HasFactory;            protected $fillable = [         'name',         'email',         'password',         'registration'     ];      private string $registration;     public function create(         string $name,          string $email,          string $password,         string $registration     )     {         //parent::create(['name'=>$name, 'email'=>$email, 'password'=>$password]);         parent::$name = $name;         parent::$email = $email;         parent::$password = $password;         $this->registration = $registration;     } } User
      <?php namespace App\Models; // use Illuminate\Contracts\Auth\MustVerifyEmail; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Foundation\Auth\User as Authenticatable; use Illuminate\Notifications\Notifiable; use Illuminate\Database\Eloquent\Relations\BelongsToMany; class User extends Authenticatable {     /** @use HasFactory<\Database\Factories\UserFactory> */     use HasFactory, Notifiable;     static string $name;     static string $email;     static string $password;     /**      * The attributes that are mass assignable.      *      * @var list<string>      */     protected $fillable = [         'name',         'email',         'password',     ];          /**      * The attributes that should be hidden for serialization.      *      * @var list<string>      */     protected $hidden = [         'remember_token',     ];     /**      * Get the attributes that should be cast.      *      * @return array<string, string>      */     protected function casts(): array     {         return [             'email_verified_at' => 'datetime',             'password' => 'hashed',         ];     }          public function roles() : BelongsToMany {         return $this->belongsToMany(Role::class);     }       public function hasHole(Array $roleName): bool     {                 foreach ($this->roles as $role) {             if ($role->name === $roleName) {                 return true;             }         }         return false;     }         public function hasHoles(Array $rolesName): bool     {                 foreach ($this->roles as $role) {             foreach ($rolesName as $rolee) {             if ($role->name === $rolee) {                 return true;             }          }         }         return false;     }         public function hasAbility(string $ability): bool     {         foreach ($this->roles as $role) {             if ($role->abilities->contains('name', $ability)) {                 return true;             }         }         return false;     }     } Como gravar um Admin na tabela admins sendo que ele é um User por extensão?
      Tentei assim mas é claro que está errado...
      public function store(Request $request, Admin $adminModel) {         $dados = $request->validate([             "name" => "required",             "email" => "required|email",             "password" => "required",             "registration" => "required"         ]);         $dados["password"] =  Hash::make($dados["password"]);                  $admin = Admin::where("registration",  $dados["registration"])->first();                  if ($admin)              return                    redirect()->route("admin.new")                             ->withErrors([                                 'fail' => 'Administrador já cadastrados<br>, favor verificar!'                   ]);                            $newAdmin = $adminModel->create(                                    $dados['name'],                                    $dados['email'],                                    $dados['password'],                                    $dados['registration']                                 );         dd($newAdmin);         $adminModel->save();         //$adminModel::create($admin);                  return redirect()->route("admin.new")->with("success",'Cadastrado com sucesso');     }  
    • Por violin101
      Caros amigos, saudações.
       
      Gostaria de tirar uma dúvida com os amigos, referente a PDV.
       
      Estou escrevendo um Sistema com Ponto de Vendas, a minha dúvida é o seguinte, referente ao procedimento mais correto.

      Conforme o caixa vai efetuando a venda, o Sistema de PDV já realiza:
      a baixa direto dos produtos no estoque
      ou
      somente após concretizar a venda o sistema baixa os produtos do estoque ?
       
      Grato,
       
      Cesar
       
    • Por violin101
      Caros amigos do grupo, saudações e um feliz 2025.
       
      Estou com uma pequena dúvida referente a Teclas de Atalho.

      Quando o Caps Lock está ativado o Comando da Tecla de Atalho não funciona.
      ou seja:
      se estiver para letra minúscula ====> funciona
      se estiver para letra maiúscula ====> não funciona
       
      Como consigo evitar essa falha, tanto para Letra Maiúscula quanto Minúscula ?

      o Código está assim:
      document.addEventListener( 'keydown', evt => { if (!evt.ctrlKey || evt.key !== 'r' ) return;// Não é Ctrl+r, portanto interrompemos o script evt.preventDefault(); });  
      Grato,
       
      Cesar
    • Por violin101
      Caros amigos, saudações.
       
      Por favor, poderiam me ajudar.

      Estou com a seguinte dúvida:
      --> como faço para para implementar o input código do produto, para quando o usuário digitar o ID o sistema espera de 1s a 2s, sem ter que pressionar a tecla ENTER.

      exemplo:
      código   ----   descrição
           1       -----   produto_A
       
      Grato,
       
      Cesar
×

Informação importante

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