Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Sign in to follow this  
bioshock

Verificação de dados com imagem

Recommended Posts

bioshock

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() ?

Share this post


Link to post
Share on other sites
M6

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."

 

Share this post


Link to post
Share on other sites
softklin

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.

Share this post


Link to post
Share on other sites
bioshock

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.  :P

Share this post


Link to post
Share on other sites
Cooper41

Eu no projecto que estou a fazer estou a usar um input normal com uma class atribuida e podes personalizar o botão pela css.

<input class="button" type="submit" value="Submit" />

Não sei se é bem isto que queres saber

Share this post


Link to post
Share on other sites
bioshock

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.  :P

Obrigado!

Share this post


Link to post
Share on other sites
M6

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."

 

Share this post


Link to post
Share on other sites
bioshock

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?

Share this post


Link to post
Share on other sites
softklin

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.

Share this post


Link to post
Share on other sites
M6

[...]

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."

 

Share this post


Link to post
Share on other sites
bioshock

Sim claro. Tenho isto dentro de um form. Eu vou experimentar com o this.form.submit. De resto, mantenho na mesma o:

if(isset($_POST['ClickIMG'])){ ...

Correcto?

Share this post


Link to post
Share on other sites
M6

Sim.


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."

 

Share this post


Link to post
Share on other sites
bioshock

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>";
}
}
?>

Share this post


Link to post
Share on other sites
softklin

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.

Share this post


Link to post
Share on other sites
bioshock

Fiz o que me pediste e apareceu:

Array ( [utilizador] => [senha] => [ClickIMG_x] => 20 [ClickIMG_y] => 7 )

Share this post


Link to post
Share on other sites
taviroquai

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"] :thumbsup:

Share this post


Link to post
Share on other sites
bioshock

Então estás-me a dizer que não é possível fazer com uma imagem o que se faz com um button?

Share this post


Link to post
Share on other sites
softklin

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.

Share this post


Link to post
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
Sign in to follow this  

×

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.