Ir ao conteúdo
  • Cadastre-se
Gesiel Souza

Portugol validaçã0 de mesmo nome em um form em php

Posts recomendados

Boa noite pessoal,estou fazendo um crud e nao estou conseguindo fazer com que quando um nome ja inserido no bd nao possa ser inserido novamente.Nao estou conseguindo fazer essa validação.Me deem um help

OBs:Eestou fazendo em php

 

arquivo -- Veri_usuario.php

 

 

 

<!DOCTYPE html>
<html>
    <head>
    </head>
    <body>



        <?php
        
 $nome="1";
$consulta = mysqli_query ($con,"select * from cadastrar_cliente where nome = 'nome_cliente' ") or die ("nao deu $consulta");

if (mysqli_num_rows($consulta) === $_POST['nome_cliente'])  {

    echo "$consulta .EXIIISTEE";

}       
        ?>
    </body>
</html>

arquivo proce_cliente.php

<!DOCTYPE html>

<?php
include_once ("Conexao.php");

 include_once "Veri_usuario.php";



$cpf = filter_input(INPUT_POST, 'cpf_usuario');
$nome = filter_input(INPUT_POST, 'nome_cliente');
$cel = filter_input(INPUT_POST, 'cel_cliente');

/* echo "Nome:$nome <br>";
  echo "cpf:$cpf <br>";
  /*echo "cel:$cel <br>"; */






$result_usuario = "INSERT INTO cadastrar_cliente(cpf,nome,cel) VALUES ('$cpf','$nome','$cel')";
$resultado_usuario = mysqli_query($con, $result_usuario);


unset($cpf,$nome,$cel);




    if (!empty($_POST)) {

// Verifica se a variável $_POST['nome'] existe
        if (isset($_POST['nome_cliente'])) {

// Verifica se o usuário digitou o seu nome
            if (!empty($_POST['nome_cliente'])) {

                $nome = $_POST['nome_cliente'];

                echo 'Seja bem-vindo(a) ' . $nome . '!';
            } else {

                echo "Por favor, preencha o seu nome";
            }
        } else {

            echo "O campo 'nome_cliente' não existe na variável $_POST";
        }
  
}
 
 
        
        
?>
     

index.php

<!DOCTYPE html>
<!--
To change this license header, choose License Headers in Project Properties.
To change this template file, choose Tools | Templates
and open the template in the editor.
-->

<?php
session_start();

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    $request = md5(implode($_POST));

    if (isset($_SESSION['last_request']) && $_SESSION['last_request'] == $request) {
        echo 'refresh';
    } else {
        $_SESSION['last_request'] = $request;
        echo 'post';
    }
}
?>





<html>
    <head>
        <title> Cadastro do Cliente</title>
    </head>
    <body>


        <form method="POST" action="proce_cliente.php">
            Cpf: <input type="text" name="cpf_usuario"  pattern="\d{3}\.\d{3}\.\d{3}-\d{2}" placeholder="___.___.___-__" title="Formato correto: xxx.xxx.xxx-xx"><br><br>
            Nome: <input type="text" name="nome_cliente" placeholder="Digite seu nome completo"><br><br>
            Cel: <input type="tel" name="cel_cliente" placeholder="Ex.: (00) 0000-0000"><br><br>
            <input type="submit" value="Cadastrar">
        </form>
    </body>
</html>

conexao.php

<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        <?php
        
      $servidor="localhost";
      $usuario="root";
      $senha="";
      $dbname="cadastro";
      
      $con= mysqli_connect("localhost","root","","cadastro");
      


        ?>
    </body>
</html>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
if (mysqli_num_rows($consulta) === $_POST['nome_cliente'])  {

você ta comparando duas coisas que jamais serão iguais, a não ser que o usuário acerte na mega-sena

Compartilhar este post


Link para o post
Compartilhar em outros sites

@LFCSSP mas ai estou comparando o que ele vai digitar no caso o nome,cm  a consulta que vou fazer ue que é relacionada ao nome tambem.

Nao consigo ver o erro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

mysqli_num_rows($query) sempre retornará um inteiro contando quantas entradas foram encontradas no banco de dados para $query. já $_POST['nome_cliente'], eu presumo, que seja o campo onde o usuário irá preencher seu nome. isso é uma string. voce pode entender melhor o que estou dizendo colocando var_dump() no escopo apropriado do seu codigo:

var_dump(mysqli_num_rows($consulta));
var_dump($_POST['nome_cliente']);

uma boa prática é, ao invés de comparar a string do nome, comparar o email do usuario ou até mesmo o cpf, no seu caso.. geralmente o campo de email deve ser bem tratado, para evitar email incorreto e tambem validado para testar se o email é de fato do usuario. outra dica é construir uma coluna na tabela para armazenar uma id unica de usuário, com auto incremento.. dessa forma ficará mais fácil fazer operações de alteração de conta, envio de email, enfim quaisquer manipulações na conta do usuário sem correr risco de erros 

Compartilhar este post


Link para o post
Compartilhar em outros sites

@LFCSSP ah entendi cara,entao eu estava passando uma string,mas meu resultado de consulta a partir do comando  que estava retornava um inteiro,mas no caso eu queria que ele retornava uma string .Entendi!!!

E relacionado ao id que você falou minha tabela tem sim um id e um auto increment,pensei em pegar ele pra usar mas como era inicio achei melhor usar o nome.

E sim, vou mudar para o cpf a validaçao de para nao existir dois cadastros,obrigado pelo dica !#

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

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





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

×
×
  • Criar novo...

Redes de Computadores - Gabriel Torres

PROMOÇÃO DE QUARENTENA

De R$ 39,90 por apenas R$ 9,90 só até as 23h59min desta sexta-feira 03/04/2020

CLIQUE AQUI E COMPRE AGORA MESMO!