Se você não manja nada de ajax, não pode usar, seu chefe não quer (difícil), ou simplesmente tem preguiça, neste artigo vou mostrar como construir um teclado virtual de senhas.
Simples demais, a cada clique nos botões, será feita uma recarga da página, mantendo os dados já clicados no campo de senha.
A verificação da senha, é feita através de uma tabela em um banco de dados. Nada complicado.
Primeiramente, uma tabela chamada usuários, que você pode criar aí em qualquer banco de dados que você já tenha. No meu caso, usei como de costume, minha base flaviateste, criando nela, uma tabela usuários.
SQL
CREATE TABLE `usuarios` ( `id` INT( 10 ) NOT NULL AUTO_INCREMENT , `usuario` VARCHAR( 255 ) NOT NULL , `senha` VARCHAR( 255 ) NOT NULL , INDEX ( `id` ) ) ENGINE = MYISAM ;www.revistaphp.com.br
Nesta tabela, inseri um usuário chamado teste, com a senha 909090.
SQL
INSERT INTO `usuarios` ( `id` , `usuario` , `senha` ) VALUES ( NULL , 'teste', '909090' );www.revistaphp.com.br
Partindo para o arquivo, que se chama teclado_virtual.php
Fazendo a consulta no banco:
PHP
<?php // arquivo padrão de conexão require_once('../../Connections/testes.php'); ?> <?php // verificando pelo get se a senha é igual à do banco $colname_usuarios = "-1"; } // fazendo o select na senha recuperada do get ?>www.revistaphp.com.br
Fazendo as verificações que serão enviadas para a consulta acima, no banco:
PHP
<?php // mantendo os dados digitados no teclado, no display $enviar = $_GET['Submit']; $display = $_GET['display']; $submitaction = $_GET['Submitaction']; $display = $display . $enviar; // verificando se a senha é igual à do banco. $senha=$row_usuarios['senha']; // se for diferente de vazia: if ($submitaction != null) { // e igual à ação de apagar, apaga tudo o que estiver no display if ($submitaction=='Apagar') { $display=""; } // se for igual à ação de entrar, ou logar: elseif ($submitaction=='Entrar') { if ($display==$senha) // verifica se o que está no display é igual à variável $senha, que é igual ao campo senha do banco de dados // se for igual, mostra o nome do usuário, e uma mensagem { echo "<center>Olá ".$row_usuarios['usuario']." - Sua senha esta correta!<br>Redirecionando... </center>"; $display=""; } // se for diferente, manda o aviso else $display="";} } } ?>www.revistaphp.com.br
E finalmente montando o layout do teclado virtual:
HTML
<!-- aqui tem o formulário do teclado --> <form name="form1" method="get" action=""> <table width="230" height="180" align="center" cellpadding="0" cellspacing="0" style="border:#000066 dotted 1px"> </tr> <tr> <td><input name="Submit" type="submit" class="style2" style='width: 55px;' value="1"></td> <td><input name="Submit" type="submit" style='width: 55px;' value="2"></td> <td><input name="Submit" type="submit" style='width: 55px;' value="3"></td> </tr> <tr> <td><input name="Submit" type="submit" style='width: 55px;' value="4"></td> <td><input name="Submit" type="submit" style='width: 55px;' value="5"></td> <td><input name="Submit" type="submit" style='width: 55px;' value="6"></td> </TR> <tr> <td><input name="Submit" type="submit" style='width: 55px;' value="7"></td> <td><input name="Submit" type="submit" style='width: 55px;' value="8"></td> <td><input name="Submit" type="submit" style='width: 55px;' value="9"></td> </tr> <tr> <td><input name="Submitaction" type="Submit" style='width: 55px;' value="Apagar"></td> <td><input name="Submit" type="submit" style='width: 55px;' value="0"></td> <td><input name="Submitaction" type="submit" style='width: 55px;' value="Entrar"></td> </tr> </table> </td> </tr> </table> </form> </blockquote>
PHP
<?php // libera o mysql da consulta realizada anteriormente, nunca esqueça disso..rs ?>www.revistaphp.com.br
Desta forma, a cada clique nos números, será dado um tipo de refresh na página, que na verdade é o reenvio para a mesma página, de cada tecla do teclado virtual. Somente após clicar em Entrar, é que a consulta ao banco será feita, e as verificações efetuadas.
Você pode ver este exemplo online no meu site, clicando aqui: http://www.flaviajobs.com.br/sistemas/revistaphp/teclado_virtual.php
(use a mesma senha, que você viu aqui no artigo)