Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Lemaria

PHP Cadastrar Usuário no BD

Recommended Posts

Olá pessoal, estou implementando um sistema utilizando Bootstrap php+MYSQLI e estou enfrentando um erro que já tentei de um tudo resolver mas não estou conseqguindo...

Eis a classe cadastra usuário:

<?php
       include_once("segurança.php");
    ?>
    <!DOCTYPE html>
    <html lang="pt-br">
      <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <meta name="description" content="Página Administrativa">
        <meta name="author" content="Cesar">
        <link rel="icon" href="imagens/favicon.ico">

        <title>Cadastrar Usuário</title>
        <link href="css/bootstrap.min.css" rel="stylesheet">
        <link href="css/bootstrap-theme.min.css" rel="stylesheet">
        <link href="css/theme.css" rel="stylesheet">
        <script src="js/ie-emulation-modes-warning.js"></script>
      </head>

      <body role="document">
            <?php
                include_once("menu_admin.php");
            ?>
            <div class="container theme-showcase" role="main">
              <div class="page-header">
                 <h1>Cadastrar Usuário</h1>
              </div>
              <div class="row">
                <div class="col-md-12">
                
                <form class="form-horizontal" method="POST" action="processa/proc_cad_usuario.php">
                            <!--Nome-->
                        <div class="form-group">
                        <label for="inputEmail3" class="col-sm-2 control-label">Nome:</label>
                        <div class="col-sm-10">
                          <input type="text" class="form-control" name="usuarioNome" placeholder="Nome Completo"> <br>
                        </div>
                        
                            <!--Email-->
                          <div class="form-group">
                            <label for="inputEmail3" class="col-sm-2 control-label">E-mail:</label>
                            <div class="col-sm-10">
                              <input type="email" class="form-control" name="email" placeholder="E-mail"> <br>
                            </div>
                          </div>
                  
                          <!--Login-->
                          <div class="form-group">
                            <label for="inputEmail3" class="col-sm-2 control-label">Login:</label>
                            <div class="col-sm-10">
                              <input type="text" class="form-control" name="login" placeholder="login"> <br>
                            </div>
                            
                            <!--Senha-->
                          <div class="form-group">
                            <label for="inputPassword3" class="col-sm-2 control-label">Senha:</label>
                            <div class="col-sm-10">
                              <input type="password" class="form-control" name="senha" placeholder="Senha"> <br>
                            </div>
                          </div>
                      
                          <!--Nível de acesso-->
                          <div class="form-group">
                            <label for="inputPassword3" class="col-sm-2 control-label">Nível de Acesso:</label>
                            <div class="col-sm-10">
                              <select class="form-control" name="nivel_de_acesso">
                                <option value="1">Administrativo</option>
                                <option value="2">Usuário</option>
                                <option value="3">Doador</option>
                                <option value="4">Médico</option>
                                <option value="5">Farmácia</option>
                              </select>
                            </div>
                          </div>
              
                          <div class="form-group">
                            <div class="col-sm-offset-2 col-sm-10">
                              
                            </div>
                          </div>
                          <div class="form-group">
                            <div class="col-sm-offset-2 col-sm-10">
                              <button type="submit" class="btn btn-success">Cadastrar</button>
                            </div>
                          </div>
        </form>
                </div>
            </div> <!-- /container -->

 

 

 

AQUI A CLASSE PROCESSA USUÁRIO: ESTA APRESENTA O ERRO-> ÍNDICE INDEFINIDO NAS VARIÁVEIS  

(Agradeço muito se alguém puder me ajudar, pois se trata de um projeto para o meu tcc. Que ainda precisa ser validado.)

<?php
session_start();
include_once("../segurança.php");
include_once("../conexao.php");
    
$nome= $_POST['nome'];
$email= $_POST['email'];
$login= $_POST['login'];
$senha= $_POST['senha'];
$nivel_acesso_id= $_POST['nivel_acesso_id'];

$conectar = mysqli_connect($hostname, $user, $password, $database);
$result = mysqli_query($conectar,"SELECT COUNT(*) FROM usuarios WHERE email = '$email'");
$row = mysqli_fetch_row($result);
if ($row[0] > 0) {
    echo "E-mail já existente";
} else {
    $conectar ("INSERT INTO usuarios(nome, email, login, senha, usuario, nivel_acesso_id) 
    VALUES ('$nome','$email', '$login','$senha', '$nivel_acesso_id')");
    echo "Cadastro realizado com sucesso!!"; 
}

    /*
    $conectar = mysqli_connect($hostname, $user, $password, $database);
    $result = mysqli_query ($conectar, "INSERT INTO usuarios(nome, email, login, senha, usuario, nivel_acesso_id) 
    VALUES ('$nome','$email', '$login','$senha', '$nivel_acesso_id')");
    $resultado = mysqli_query($conectar, $result);
    mysqli_close($conectar); */
    //echo $row['nome'];
?>
<!DOCTYPE html> 
    <html lang="pt-br">
      <head>
        <meta charset="utf-8">
      </head>

  <body>
      
</body>
</html>

 

Editado por DiF
Inserir os códigos com o botão CODE <>

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Lemaria Olá, seja bem vinda em nosso Clube do Hardware.

 

Bueno, o primeiro erro que vejo é que você definiu o atributo name do campo nome como "usuarioNome", mas recebe  "nome"  no php. 

 

O segundo erro que vejo é que você busca se existe um e-mail, contando os registros. count(*) nesse caso é errado.

 

E o terceiro erro, é que você usou a variável $conectar como se fosse uma função de insert. Não sei se você criou uma função para inserir onde o parâmetro é a própria instrução SQL.

 

E um quarto e último erro( que não é bem um erro), você colocou tags do html em um arquivo php destinado apenas para processar os dados. recomendo remover.

 

 Portanto, eu faria da seguinte maneira:

Arquivo  proc_cad_usuario.php

<?php
session_start();
include_once("../segurança.php");
include_once("../conexao.php");
    
$nome            = $_POST["usuarioNome"];
$email           = $_POST["email"];
$login           = $_POST["login"];
$senha           = $_POST["senha"];
$nivel_acesso_id = $_POST["nivel_acesso_id"];


$conectar = mysqli_connect($hostname, $user, $password, $database);

//busca o email que foi digitado para ver se já existe.
$result = mysqli_query($conectar,"SELECT email FROM usuarios WHERE email = '$email'");

//pega o número de linhas encontradas
$row = mysqli_num_rows($result);

//testa se o número de linhas for maior que zero. se sim, é porque existe.
if ($row > 0) :
    echo "E-mail já existente";
else:
    $insere = mysqli_query($conectar, "INSERT INTO usuarios(nome, email, login, senha, usuario, nivel_acesso_id) 
                                       VALUES ('$nome','$email', '$login','$senha', '$nivel_acesso_id')");

    //testa se a instrução de insert foi efetuada
    if($insere):
          echo "Cadastro realizado com sucesso!!"; 
    else:
          echo "Cadastro Não realizado. Houve um erro"; 
    endif;
endif;

   
?>

Ainda você tem opção de usar o UNIQUE  na estrutura do campo email. assim você garante que apenas 1 registro terá aquele e-mail.

 

Didática do unique: https://www.w3schools.com/sql/sql_unique.asp

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário






Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×