1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

[MYSQL] Ver se o código introduzido já está validado.

Discussão em 'Web Development' iniciada por c|_|, 10 de Julho de 2012. (Respostas: 3; Visualizações: 679)

  1. c|_|

    c|_| Power Member

    Boa tarde, estou a tentar fazer um sistema de validação de códigos em PHP+MySQL, ou seja, introduz-se um código de 6 dígitos no campo e em seguida acontece um destes três casos:

    caso 1 - O código foi correctamente validado.
    caso 2 - O código não existe, por favor verifique o seu código.
    caso 3 - O código que introduziu já foi validado.

    Na base de dados tenho os códigos armazenados da seguinte forma:

    id: 01
    chave_cod: 123456
    valido_cod: 0/1 (0 se não estiver validado, 1 se estiver)

    Alguém me pode dar umas luzes disto?
    Muito obrigado!



     
  2. barricas

    barricas Power Member

    Fazes uma form que recebe em post (ou caso queiras em get) e depois qualquer coisa tipo:

    PHP:
    // presumindo que os códigos sejam numéricos a maneira mais rápida de impedir sql injection pode usar-se a função ctype_digit() <--- tive a ler a página php da função e tem uns problemas... intval() também serve.

    /* removido mas deixo aqui à mesma
    if(ctype_digit($_POST['codigo'])) {
      $codigo = $_POST['codigo'];
    } else {
      echo 'código inválido';
    }*/

    $codigo intval($_POST['codigo']);

    // query na database (supondo que já fizeste o mysql connect)

    $verificar mysql_query("SELECT * FROM `tabela_de_codigos` WHERE `chave_cod`='{$codigo}'") or die(mysql_error());

    // gosto de usar list para coisas deste tipo mas também podes usar mysql_fetch_assoc e usar tipo $cod = mysql_fetch_assoc($verificar) e depois $cod['id'] e por aí além

    list($id,$chave,$valido) = mysql_fetch_row($verificar);

    if(
    mysql_num_rows($verificar) == 0) {
    echo 
    "código inválido";
    }
    elseif(
    mysql_num_rows($verificar) == && $valido == 0) {
    echo 
    'código ainda não foi validado';
    }
    elseif(
    mysql_num_rows($verificar) == && $valido == 1) {
      echo 
    'código já validado com sucesso';
    }

    Em vez dos echo podes fazer qualquer coisa...
     
    Última edição: 10 de Julho de 2012
  3. c|_|

    c|_| Power Member

    Não imaginas o mundo que me acabaste de abrir! FANTÁSTICO! MUITO OBRIGADO!

    PS: São números e letras como posso impedir injection?
     
    Última edição: 10 de Julho de 2012
  4. barricas

    barricas Power Member

Partilhar esta Página