Jump to content
Jefferson andre

Variavel indefinida: sexo

Recommended Posts

Saudacoes, estou com um erro de variavel indefinida e nao estou conseguindo encontrar a solucao

Alguem pode me ajudar por favor ?

 

Mensagem de erro:

Notice: Undefined variable: sexo in C:\xampp\htdocs\projeto.crud.php-master\create.php on line 66
<!DOCTYPE html>
<html lang="pt-br">

<head>
    <meta charset="utf-8">
    <!-- Latest compiled and minified CSS -->
  <link rel="stylesheet" href="assets/css/bootstrap.min.css">
  <title>Adicionar Contato</title>
</head>

<body>
    <div class="container">
        <div clas="span10 offset1">
          <div class="card">
            <div class="card-header">
                <h3 class="well"> Adicionar Contato </h3>
            </div>
            <div class="card-body">
            <form class="form-horizontal" action="create.php" method="post">

                <div class="control-group <?php echo !empty($nomeErro)?'error ' : '';?>">
                    <label class="control-label">Nome</label>
                    <div class="controls">
                        <input size="50" class="form-control" name="nome" type="text" placeholder="Nome" required value="<?php echo !empty($nome)?$nome: '';?>">
                        <?php if(!empty($nomeErro)): ?>
                            <span class="help-inline"><?php echo $nomeErro;?></span>
                            <?php endif;?>
                    </div>
                </div>

                <div class="control-group <?php echo !empty($enderecoErro)?'error ': '';?>">
                    <label class="control-label">Endereço</label>
                    <div class="controls">
                        <input size="80" class="form-control" name="endereco" type="text" placeholder="Endereço" required value="<?php echo !empty($endereco)?$endereco: '';?>">
                        <?php if(!empty($emailErro)): ?>
                            <span class="help-inline"><?php echo $enderecoErro;?></span>
                            <?php endif;?>
                    </div>
                </div>

                <div class="control-group <?php echo !empty($telefoneErro)?'error ': '';?>">
                    <label class="control-label">Telefone</label>
                    <div class="controls">
                        <input size="35" class="form-control" name="telefone" type="text" placeholder="Telefone" required value="<?php echo !empty($telefone)?$telefone: '';?>">
                        <?php if(!empty($emailErro)): ?>
                            <span class="help-inline"><?php echo $telefoneErro;?></span>
                            <?php endif;?>
                    </div>
                </div>

                <div class="control-group <?php echo !empty($emailErro)?'error ': '';?>">
                    <label class="control-label">Email</label>
                    <div class="controls">
                        <input size="40" class="form-control" name="email" type="text" placeholder="Email" required value="<?php echo !empty($email)?$email: '';?>">
                        <?php if(!empty($emailErro)): ?>
                            <span class="help-inline"><?php echo $emailErro;?></span>
                            <?php endif;?>
                    </div>
                </div>

                <div class="control-group <?php echo !empty($sexoErro)?'error ': '';?>">
                    <label class="control-label">Sexo</label>
                    <div class="controls">
                        <div class="form-check">
                            <p class="form-check-label">
                                <input class="form-check-input" type="radio" name="sexo" id="sexo" value="M" <?php echo ($sexo=="M" ) ? "checked" : null; ?>/> Masculino
                        </div>
                        <div class="form-check">
                            <input class="form-check-input" type="radio" name="sexo" id="sexo" value="F" <?php echo ($sexo=="F" ) ? "checked" : null; ?>/> Feminino
                        </div>
                        </p>
                        <?php if(!empty($sexoErro)): ?>
                            <span class="help-inline"><?php echo $sexoErro;?></span>
                            <?php endif;?>
                    </div>
                </div>
                <div class="form-actions">
                    <br/>

                    <button type="submit" class="btn btn-success">Adicionar</button>
                    <a href="index.php" type="btn" class="btn btn-default">Voltar</a>

                </div>
            </form>
          </div>
        </div>
        </div>
    </div>
    </div>
    <script src="https://code.jquery.com/jquery-3.3.1.js" integrity="sha256-2Kok7MbOyxpgUVvAk/HJ2jigOSYS2auK4Pfzbm7uH60=" crossorigin="anonymous"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
    <!-- Latest compiled and minified JavaScript -->
    <script src="assets/js/bootstrap.min.js"></script>
</body>

</html>

<?php
    require 'banco.php';

    if(!empty($_POST))
    {
        //Acompanha os erros de validação
        $nomeErro = null;
        $enderecoErro = null;
        $telefoneErro = null;
        $emailErro = null;
        $sexoErro = null;

        $nome = $_POST['nome'];
        $endereco = $_POST['endereco'];
        $telefone = $_POST['telefone'];
        $email = $_POST['email'];
        $sexo = $_POST['sexo'];

        //Validaçao dos campos:
        $validacao = true;
        if(empty($nome))
        {
            $nomeErro = 'Por favor digite o seu nome!';
            $validacao = false;
        }

        if(empty($endereco))
        {
            $enderecoErro = 'Por favor digite o seu endereço!';
            $validacao = false;
        }

        if(empty($telefone))
        {
            $telefoneErro = 'Por favor digite o número do telefone!';
            $validacao = false;
        }

        if(empty($email))
        {
            $telefoneErro = 'Por favor digite o endereço de email';
            $validacao = false;
        }
        elseif (!filter_var($email,FILTER_VALIDATE_EMAIL))
        {
            $emailError = 'Por favor digite um endereço de email válido!';
            $validacao = false;
        }

        if(empty($sexo))
        {
            $sexoErro = 'Por favor digite o campo!';
            $validacao = false;
        }

        //Inserindo no Banco:
        if($validacao)
        {
            $pdo = Banco::conectar();
            $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
            $sql = "INSERT INTO pessoa (nome, endereco, telefone, email, sexo) VALUES(?,?,?,?,?)";
            $q = $pdo->prepare($sql);
            $q->execute(array($nome,$endereco,$telefone,$email,$sexo));
            Banco::desconectar();
            header("Location: index.php");
        }
    }
?>

 

Share this post


Link to post
Share on other sites

E qual seria a linha 66?

Seria essa?

1 hora atrás, Jefferson andre disse:

<input class="form-check-input" type="radio" name="sexo" id="sexo" value="M" <?php echo ($sexo=="M" ) ? "checked" : null; ?>/> Masculino

 

Bem, nesse caso crie a variável antes de usar-la.

<?php
$sexo = isset($sexo) ? $sexo : false; // Mesmo que a variável original não exista criamos ela falsa mesmo assim ela sempre vai existir

 

<input type="radio" name="sexo" id="sexo" value="M" <?= ($sexo=="M"  ? "checked" : null) ?> /> Masculino

 

Dica para usar o fórum....

Se seu problema é o PHP não poste toda estrutura HTML nem entradas de CSS, isso atrapalha quem quer lhe ajudar.

Share this post


Link to post
Share on other sites
Em 18/10/2019 at 13:39, Omar~ disse:

E qual seria a linha 66?

Seria essa?

 

Bem, nesse caso crie a variável antes de usar-la.


<?php
$sexo = isset($sexo) ? $sexo : false; // Mesmo que a variável original não exista criamos ela falsa mesmo assim ela sempre vai existir

 


<input type="radio" name="sexo" id="sexo" value="M" <?= ($sexo=="M"  ? "checked" : null) ?> /> Masculino

 

Dica para usar o fórum....

Se seu problema é o PHP não poste toda estrutura HTML nem entradas de CSS, isso atrapalha quem quer lhe ajudar.

 

Obrigado pelas dicas e sugestões mas mesmo assim o mesmo erro eh apresentado.

 

 

Share this post


Link to post
Share on other sites

@Jefferson andre

 

Não sei se é uma questão de funcionalidade ou de entendimento, talvez o que esteja errado é a sua validação utilizando a função ISSET.

 

Veja se o código abaixo lhe ajuda a entender melhor o funcionamento do ISSET e do EMPTY.

No código que lhe apresento ele tem 3 situações.

 

Primeiro, a variável SEXO não existe.

Então ele passa pela validação e escreve Não Existe

Segundo, a variável SEXO existe, porém ela esta vazia.

Então ele passa pela validação e escreve Existe porem não existe SEXO definido, Sexo sem Sexo.

Terceiro, a variável SEXO existe e tem conteúdo nela.

Então ele passa pela validação e escreve Existe e escreve o SEXO definido.

 

Veja se te ajuda para o entendimento das funções e veja se o seu código está escrito de maneira correta.

<?php
if (isset($sexo)) {
    echo "Existe ";
    if (empty($sexo)) {
        echo "Sexo sem sexo.";
    } else {
        echo $sexo;
    }
} else {
    echo "Não existe";
}
echo "<br/>";
$sexo = "";
if (isset($sexo)) {
    echo "Existe ";
    if (empty($sexo)) {
        echo "Sexo sem sexo.";
    } else {
        echo $sexo;
    }
} else {
    echo "Não existe";
}
echo "<br/>";
$sexo = "Masculino";
if (isset($sexo)) {
    echo "Existe ";
    if (empty($sexo)) {
        echo "Sexo sem sexo.";
    } else {
        echo $sexo;
    }
} else {
    echo "Não existe";
}
echo "<br/>";
?>

Mas uma coisa é BEM CLARA.

Noticia, Indefinida variável: sexo em C:\xampp\htdocs\projeto.crud.php-master\create.php na linha 66;

Notice: Undefined variable: sexo in C:\xampp\htdocs\projeto.crud.php-master\create.php on line 66

Ou seja, na linha 66 deste arquivo CREATE.PHP você está usando a variável $sexo SEM declarar um valor antes, para teste e ver se esse erro some, caso não tenha ficado claro a explicação que dei, na linha 65, antes da validação desta linha 66 coloque

 

$sexo = "M";

 

e veja se o erro não some.

 

 

Espero ter ajudado.

 

Att.

Felipe Coutinho

Share this post


Link to post
Share on other sites

Olá amigo, saudações...

 

Tente desta forma:

                  <label for="sexo" class="control-label">Sexo<span class="required">*</span></label>
                  <div class="controls">
                    <select name="sexo" id="sexo" style="width:100%;" class="form-control">
                            <?php if ($result->sexo == 1) {
                                  $feminino = 'selected';
                                  $masculino = '';
                               } else {
                                  $feminino = '';
                                  $masculino = 'selected';
                            } ?>
                            <option value="1" <?php echo $feminino; ?>>Feminino</option>
                            <option value="2" <?php echo $masculino; ?>>Masculino</option>
                    </select>
                  </div>

 

Espero ter ajudado.

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By RoliXIt
      Gostaria de saber se tem como usar uma variável de um arquivo .js em outro. Ou uma solução pro "problema".
       
      Bem estou com esses dois códigos de verificação um para senha e outra para CPF
      Senha
      function validatePassword() {   var senha1 = 0;   var pass1 = document.querySelector("#senha");   var pass2 = document.querySelector("#confirmasenha"); if (pass1.value!=pass2.value){   alert("Senhas diferentes!")   } else{ senha1 = 1; } }  
       
      CPF
      function valida(){                 var cpf1=0;                 if(valida_cpf(document.getElementById('cpf').value)){                     cpf1 = 1;                 }                 else{                 alert('CPF inVálido');                                                   }}                          function valida_cpf(cpf){                   var numeros, digitos, soma, i, resultado, digitos_iguais;                   digitos_iguais = 1;                   if (cpf.length < 11)                         return false;                   for (i = 0; i < cpf.length - 1; i++)                         if (cpf.charAt(i) != cpf.charAt(i + 1))                               {                               digitos_iguais = 0;                               break;                               }                   if (!digitos_iguais)                         {                         numeros = cpf.substring(0,9);                         digitos = cpf.substring(9);                         soma = 0;                         for (i = 10; i > 1; i--)                               soma += numeros.charAt(10 - i) * i;                         resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;                         if (resultado != digitos.charAt(0))                               return false;                         numeros = cpf.substring(0,10);                         soma = 0;                         for (i = 11; i > 1; i--)                               soma += numeros.charAt(11 - i) * i;                         resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;                         if (resultado != digitos.charAt(1))                               return false;                         return true;                         }                   else                         return false;             }  
       
      Eu gostaria de pegar a variável cpf1 e senha1 e utilizar em um outro arquivo .js, mas se possuir alguma maneira de resolver o problema (poder salvar apenas se o cpf e a senha for valida) sera bem vindo (os arquivos são usados em um formulário)
    • By elisandrodceza
      Alguma ideia para pesquisar os $id recebidos por get em um arquivo diferente ? como se percebe no código funcional a baixo, os $id estão duplicados para funções diferente. Quero adicionar eles em outro arquivo para uma melhor organização com as variáveis $id e $client,  mas de uma maneira que possa pesquisar tanto qual é a $id e o $client para ser informado por email quando o client ler o qrcode, quanto se a $id está na lista para ser redirecionado.
       
       
      ARQUIVO auth_code.php
       
      <?php
          $id = $_GET['id'];
          $ip = $_SERVER['REMOTE_ADDR'];
          $browser = $_SERVER['HTTP_USER_AGENT'];
          $to = "suporte@eatech.inf.br";
          $success = false;

              if ($id == '2623F52846F8A03DA4ADFA9392486807') $client = "Card Contato";
              if ($id == '2BDBDDA17456A1060E156BE7A487FC') $client = "Client 1";
              if ($id == 'E7EA229948A4997C2F72219D6A2764') $client = "Client 2";
              if ($id == '07118879907903166B2C3BE7408EFD') $client = "Client 3";
              if ($id == 'FED09C7CC40ACD77A0BDEA57E894A3') $client = "Client 4";
              if ($id == 'C042D3187B52E87D6E6196567101EF') $client = "Client 5";
              if ($id == '7DCD0215BEC8AF587AD886E407A485') $client = "Client 6";
       
          $messagem = "Cliente: $client<br><br>ID: $id<br><br>IP: $ip<br><br>Browser: $browser"; 
          $assunto = "qrCode digitalizado";
          $headers = "MIME-Version: 1.0\n";
          $headers .= "Content-type: text/html; charset=iso-8859-1\n";
          $headers .= "From: $client\n";
          
          $success = mail($to, $assunto, $messagem, $headers);
          
          if ($id == '2623F52846F8A03DA4ADFA9392486807')
              { header('Location: download/contato.vcf');}
       
          else
              if (

              $id == '2BDBDDA17456A1060E156BE7A487FC' # Client 1
              or $id == 'E7EA229948A4997C2F72219D6A2764' # Client 2
              or $id == '07118879907903166B2C3BE7408EFD' # Client 3
              or $id == 'FED09C7CC40ACD77A0BDEA57E894A3' # Client 4
              or $id == 'C042D3187B52E87D6E6196567101EF' # Client 5
              or $id == '7DCD0215BEC8AF587AD886E407A485' # Client 6
              )
              { header('Location: download/index.php?id=' . $id. '.pdf');}
       
          else
              { echo "<script>alert('Este qrCode ainda não está cadastrado no sistema, tente novamente mais tarde!');history.go(-1) </script>";}
      ?>
    • By Flaviaac
      Boa tarde galera!
       
      Estou tendo um problema esquisito aqui.
      Sou iniciante e não faço a mínima ideia do que pode ser.
       
       
      Veja só, no campo dropdown abaixo coloquei no "value" o ID, mas ele salva no banco como tipo STRING e não INT.
      <?php $sql = "SELECT id, sigla FROM local ORDER BY sigla ASC"; $result = $conn->query($sql); ?> . . . <select name="local" class="form-control"> <option selected>Selecione...</option> <?php while($row = $result->fetch_assoc()){ echo "<option value=".$row['id'].">".$row['sigla']."</option>"; } ?> </select> . . . Dei um var_dump() pra saber o que apareceria e ele mostra como STRING.
      <pre> <?php $sql = "SELECT id, sigla FROM local ORDER BY sigla ASC"; $result = $conn->query($sql); $row = $result->fetch_assoc(); var_dump($row['id']); ?> </pre> Resultado:
      string(1) "5"  
       
      Esse é o Banco de dados:
      Coloquei a coluna ID como INT.
      -- phpMyAdmin SQL Dump -- version 4.8.3 -- https://www.phpmyadmin.net/ SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; SET AUTOCOMMIT = 0; START TRANSACTION; SET time_zone = "+00:00"; /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; /*!40101 SET NAMES utf8mb4 */; -- -- Banco de dados: `arq` -- -- -------------------------------------------------------- -- -- Estrutura para tabela `local` -- CREATE TABLE `local` ( `id` int(11) NOT NULL, `SIGLA` mediumtext NOT NULL, `LOCAL` mediumtext NOT NULL, `TELEFONE` mediumtext NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- -- Fazendo dump de dados para tabela `local` -- INSERT INTO `local` (`id`, `SIGLA`, `LOCAL`, `TELEFONE`) VALUES (1, 'AAC', 'AAC', '2222-2222'), (2, 'DSV', 'DSV', '1111-1111'), (3, 'SCA', 'SCA', '3333-3333'); -- -- Índices de tabelas apagadas -- -- -- Índices de tabela `local` -- ALTER TABLE `local` ADD PRIMARY KEY (`id`); -- -- AUTO_INCREMENT de tabelas apagadas -- -- -- AUTO_INCREMENT de tabela `local` -- ALTER TABLE `local` MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=6; COMMIT; /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; Obrigada pessoal!
       
    • By Aureo Almeida
      O Felipe Guedes Coutinho ajudou na resolução de um problema quanto a como passar valores de variáveis de uma página com um carrinho para um arquivo com a API do PagSeguro. Consegui fazer isso através de sessões, e a passagem ocorre normalmente. O problema que surgiu dessa solução, que para o meu contexto é a melhor, é que a API do PagSeguro Lightbox não está reconhecendo variáveis em tempo de execução. Mesmo que convertidas em STRING. O tópico que abri e que creio que se esgotou o problema original em que o Felipe Guedes Coutinho ajudou a resolver foi este:
      Colocando o problema. Possuo duas variáveis, uma que contém um nome de produto que quero passar como parâmetro para um pagamento no PagSeguro lightbox, e outra com o valor. Ambas são oriundas de um processo em tempo de execução, e não há problema com ele, pois elas são preenchidas normalmente e os valores são impressos no display. A variável $produto_nome e a $ttBrasil. Elas são repassadas para duas variáveis SESSION:
      $_SESSION['descricao'] = $produto_nome; $_SESSION['valorTotal'] = $ttBrasil; Na página em que se encontra o script da API do PagSeguro, chamada pagseguro.php, esses valores são recebidos sem problemas (numa condição que explicitarei), de duas formas:
      $data['itemDescription1'] = $_SESSION['descricao']; $data['itemAmount1'] = $_SESSION['valorTotal']; Ou $data['itemDescription1'] = "'".$_SESSION['descricao']."'"; $data['itemAmount1'] = "'".$_SESSION['valorTotal']."'"; O problema é que este processo funciona normalmente e a variável é reconhecida quando o valor é declarado estaticamente e entre aspas simples. Em tempo de execução não.
      Funciona quando:
      $ttBrasil = '50.00'; $produto_nome = 'Nome de Teste'; Se as variáveis vierem em tempo de execução, mesmo existindo (eu as imprimo no display normalmente), a API do PagSeguro não reconhece. Quando falo em tempo de execução, é as SESSION recebendo diretamente as variáveis:
      $_SESSION['descricao'] = $produto_nome; $_SESSION['valorTotal'] = $ttBrasil;  
      A variável $ttBrasil é DECIMAL no BD, reconhecida como DOUBLE pelo PHP. Eu converti ela para STRING de várias formas, sempre mantendo o problema, mas achei mais adequado usar a função STRING, que converte FLOAT em STRING:
      $ttBrasil = (string) $ttBrasil; Verifiquei após a conversão e ela retorna como do tipo STRING. Uso esses comandos para verificar o tipo de variável e o valor.
      echo gettype($ttBrasil); echo $_SESSION['valorTotal']; Este é o problema que não consegui resolver.
    • By Loconarrativo
      Bom, no meu form, eu peço para o cliente digitar um valor (esse valor em reais), mas para continuar eu preciso me certificar que a variável que contem o valor, tenha 16 dígitos ao total, então se a pessoa digita uma 1000.00, eu preciso completar com 9 zeros a esquerda (fica assim 0000000001000.00), para eu saber quantos dígitos tem na variável, eu faço
      $i = strlen( $_POST['valor']);   ai eu faço
      $u = 8 - $i ; eu tenho o numero de zeros que preciso colocar a esquerda, mas como eu transformo isso em vários zeros? 
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.