Jump to content

Verificação de dados com imagem


bioshock
 Share

Recommended Posts

Boas,

Eu utilizo as seguintes linhas de código para fazer a verificação dos dados inseridos nas textboxs:

VerificaLogin.php

// Connection à base de dados; 
include ("connection.inc");

// Se o button for pressionado;
if (isset($_POST['button'])) {

// Verificamos se as Textboxs estão preenchidas;
if(!$_POST['Utilizador'] | !$_POST['Senha']){

	// Caso não estejam apresentamos um erro;
	echo "<script>alert('Por favor, preencha todos os campos.'); window.location=\"Login.php\"</script>";
}

// Para fazer o login com sucesso é necessário que os campos das textboxs, sejam idênticos às senhas abaixo descritas;
if($_POST['Utilizador'] == 'Admin' and $_POST['Senha'] == 'Admin'){

	// Fez login com sucesso!
	echo "<script>alert('Bem vindo Administrador!'); window.location=\"Admin.php\"</script>";

	// Caso contrário... 
}else{

	// Erro, verifique os seus dados de login;
	echo "<script>alert('Os dados que introduziu estão incorrectos'); window.location=\"Login.php\"</script>";
}
}

Onde, na segunda linha de código, o button tem de ser pressionado. Ok, mas eu decidi por uma imagem em vez do button, e utilizo este código:

Login.php

<img src="Imagens/1275922653_Go.png" width="30" height="26" style='cursor:pointer' onclick="location.href='VerificaLogin.php'"/>

O problema está em fazer a verificação dos dados pela imagem..pensei no entanto em atribuir à imagem o nome de "Button", mas sem sucesso.

Alguém me pode dar uma dica ? Tenho vasculhado pelo google mas não tem dado frutos.

Será melhor com uma Function() ?

Link to comment
Share on other sites

O button que tens no post é o nome do objecto e a tua imagem, além de não ter nome, não está a fazer post da informação do formulário.

10 REM Generation 48K!
20 INPUT "URL:", A$
30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50
40 PRINT "404 Not Found"
50 PRINT "./M6 @ Portugal a Programar."

 

Link to comment
Share on other sites

Podes submeter o formulário através do evento submit do form, por javascript, ou criar uma tags input do tipo image, qu irá submeter o formulário. Ambos os métodos com exemplos:

http://www.webdevelopersnotes.com/tips/html/using_an_image_as_a_submit_button.php3

Nick antigo: softclean | Tens um projeto? | Wiki P@P

Ajuda a comunidade! Se encontrares algo de errado, usa a opção "Denunciar" por baixo de cada post.

Link to comment
Share on other sites

O button que tens no post é o nome do objecto e a tua imagem, além de não ter nome, não está a fazer post da informação do formulário.

Eu sei. Se leres o meu primeiro post eu fiz referência a esse aspecto. Já criei um nome para a imagem mas sem sucesso.

Podes submeter o formulário através do evento submit do form, por javascript, ou criar uma tags input do tipo image, qu irá submeter o formulário. Ambos os métodos com exemplos:

http://www.webdevelopersnotes.com/tips/html/using_an_image_as_a_submit_button.php3

Parece-me muito porreiro. Vou experimentar e assim que possa digo-te algo.

Obrigado a ambos.  😛

Link to comment
Share on other sites

Bem, eu tentei com o <input type>, mas sem sucesso, heis o código:

Login.php

 <input type="image" name="ClickIMG"  src="Imagens/1275922653_Go.png" width="30" height="26" style="cursor:pointer" onclick="location.href='VerificaLogin.php'"/>

VerificaLogin.php

<?php

// Se clicarmos no button..;
if(isset($_POST['ClickIMG'])){

// Para fazer o login com sucesso é necessário que os campos das textboxs, sejam idênticos às senhas abaixo descritas;
if($_POST['Utilizador'] == '1' and $_POST['Senha'] == '1'){

	// Fez login com sucesso!
	echo "<script>alert('Bem vindo Administrador!'); window.location=\"Admin.php\"</script>";

	// Caso contrário... 
		}else{

	// Erro, verifique os seus dados de login;
	echo "<script>alert('Os dados que introduziu estão incorrectos'); window.location=\"Login.php\"</script>";
}
}
?>

O problema é que ele não detecta o "ClickIMG" como button.  😛

Obrigado!

Link to comment
Share on other sites

Não estás a fazer submit. Isso já te foi indicado anteriormente.

10 REM Generation 48K!
20 INPUT "URL:", A$
30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50
40 PRINT "404 Not Found"
50 PRINT "./M6 @ Portugal a Programar."

 

Link to comment
Share on other sites

Não estás a fazer submit. Isso já te foi indicado anteriormente.

Mas nesta linha de código colocar o submit?

<input type="image" name="ClickIMG"  src="Imagens/1275922653_Go.png" width="30" height="26" style="cursor:pointer" onclick="location.href='VerificaLogin.php'"/>

Eu já experimentei utilizar "Submit.this.form", é a isso que te referes?

Link to comment
Share on other sites

Com tudo isto, estamos a supor que estás a por esse botão entre as tags form. Não precisas de colocar o javascript para redireccionar, pois dessa forma não vão ser enviados dados. Em princípio, o clique na imagem é suficiente para desencadear o processo de envio do formulário.

Nick antigo: softclean | Tens um projeto? | Wiki P@P

Ajuda a comunidade! Se encontrares algo de errado, usa a opção "Denunciar" por baixo de cada post.

Link to comment
Share on other sites

[...]

Eu já experimentei utilizar "Submit.this.form", é a isso que te referes?

Sim. Tens de fazer submit, mas não é submit.this.form, mas sim this.form.submit.

E como o softclean disse, estamos a supor que tens isso dentro de um form.

10 REM Generation 48K!
20 INPUT "URL:", A$
30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50
40 PRINT "404 Not Found"
50 PRINT "./M6 @ Portugal a Programar."

 

Link to comment
Share on other sites

Não funciona. O que estou a fazer mal?  :wallbash:

Login.php

 <form id="form1" name="form1" method="post" action="VerificaLogin.php">
    <p>

    </p>
    <p>
      <label><span class="Bold">U</span>sername:
<input type="text" name="Utilizador" id="textfield" />
      </label>
    </p>
    <p>
      <label><span class="bold">P</span>assword:
<input name="Senha" type="password" id="textfield2" />
      </label>
    </p>
    <p>
      <label>
        <input name="ClickIMG" type="image" src="Imagens/1275922653_Go.png" onclick="this.form.submit" />
      </label>
    </p>
  </form>

VerificaLogin.php

<?php

// Se clicarmos no button..;
if(isset($_POST['ClickIMG'])){

// Se as textboxs não tiverem dados dá erro;

if(!$_POST['Utilizador'] | !$_POST['Senha']){

	// Fez login com sucesso!
	echo "<script>alert('Por favor preencha os campos'); window.location=\"Login.php\"</script>";

}
// Para fazer o login com sucesso é necessário que os campos das textboxs, sejam idênticos às senhas abaixo descritas;
if($_POST['Utilizador'] == '1' and $_POST['Senha'] == '1'){

	// Fez login com sucesso!
	echo "<script>alert('Bem vindo Administrador!'); window.location=\"Admin.php\"</script>";

	// Caso contrário... 
		}else{

	// Erro, verifique os seus dados de login;
	echo "<script>alert('Os dados que introduziu estão incorrectos'); window.location=\"Login.php\"</script>";
}
}
?>
Link to comment
Share on other sites

Experimentei, e não precisas de colocar o javascript, porque o botão por si já envia o formulário.

Agora, existe uma questão: AO enviar os dados, o nome do botão não é enviado. Em vez disso, são enviados dois campos, com os nomes <nomedobotao>.x e <nomedobotao>.y. Este são as coordenadas em X e Y correspondentes ao local onde o teu botão foi clicado.

(no teu caso deve ser enviado ClickIMG.x e ClickIMG.y). Cria um script à parte e faz um

print_r($_POST);

para confirmares isso.

Nick antigo: softclean | Tens um projeto? | Wiki P@P

Ajuda a comunidade! Se encontrares algo de errado, usa a opção "Denunciar" por baixo de cada post.

Link to comment
Share on other sites

Esse é o resultado quando não se preenchem os campos Utilizador e Senha e apenas clicas na imagem.

Para o código PHP não vai funcionar porque no PHP estás a testar a variavel $_POST['ClickIMG'] e essa é nula... o que estás a receber são $_POST["ClickIMG_x"] e $_POST["ClickIMG_y"] 👍

Link to comment
Share on other sites

Não, simplesmente quer dizer que o campo que pretendes verificar não se chama 'ClickIMG', mas são enviados dois campos com os nomes 'ClickIMG_x' e 'ClickIMG_y'.

Ou, no final de contas, se quiseres simplificar, podes apenas verificar se o array $_POST está ou não vazio, ou seja,

if (!empty($_POST)) {
   // O utilizador caregou no botao de enviar dados
}

Funciona de igual forma, sem que te tenhas de preocupar com os nomes dos campos.

Nick antigo: softclean | Tens um projeto? | Wiki P@P

Ajuda a comunidade! Se encontrares algo de errado, usa a opção "Denunciar" por baixo de cada post.

Link to comment
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
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.