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

diokhan

validar dados

9 mensagens neste tópico

boas,

eu preciso de fazer um script em que valide os dados antes de enviar para a base de dados, por exemplo, este é o meu código:

if(isset($_SESSION['USER']))
{
echo "User <b><i>{$_SESSION["NAME_USER"]}</i></b> logged in.<hr>";
}
else
{
header('Location: ../../BioCantProject/index.php');
}

echo "
<h2>Change Password:</h2><hr>
  <form action=admin/pass.php method='POST'>
    <tr>
      <td>Old password:</td>
      <td><input type='password' name='oldpass'></td>
    </tr>
    <tr>
      <td>New password:</td>
      <td><input type='password' name='password'></td>
    </tr>
    <tr>
      <td>Repeat new password:</td>
      <td><input type='password' name='repeatpassword'></td>
    </tr>
    <tr>
      <td colspan='2' align='center'>
        <input type='submit' id='Submit_btn' value='Save Changes'>
        <input type='button' value='Cancel' onclick=javascript:history.back()>
      </td>
    </tr> 
</form>";	

e queria que ao clicar para salvar as alterações ele fizesse uma verificação antes se a repeatpassword é igual a password, sei que tenho de fazer em javascript, ou posso fazer em php? :hmm:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ora bem, antes demais um pouco do conceito de linguagens 'server-side' e 'client-side'.

O PHP é uma linguagem de scripting 'server-side' o que quer dizer que só corre do lado do servidor.

O Javascript é o oposto, ou seja 'client-side'. Só corre do lado do cliente.

Uma existe para complementar a outra... Ora a base de dados (entre outros serviços) estando no servidor é necessário uma linguagem 'server-side', neste caso o PHP, para comunicar com a base de dados.

No entanto, o Javascript é usado para processos que não necessitam da interacção do servidor e que podem ser feitos no cliente.

Se pretenderes uma validação em "real-time", o Javascript será a melhor escolha. Dá-te a resposta sem teres que usar recursos do servidor.

No entanto, e como eu costumo dizer, uma coisa não implica a outra! Deves colocar essa validação em Javascript, mas também deves validar no PHP. Porque actualmente existem plugins - como por exemplo, o firebug - que permitem editar o Javascript presente na página e dessa forma conseguirão passar os dados que pretendem mesmo que tenhas a validação em Javascript. Conseguirão fazer o 'bypass' da validação do lado do cliente.

No entanto, do lado do servidor, não conseguem (normalmente) fazer o bypass :) E é a maneira de teres a certeza que é seguro :)

Conclusão? Se pretenderes, faz a de Javascript... Para muitos que não percebem de javascript ou informática no foro técnico, será mais rápida essa validação e escusam de esperar que a página carregue (sim sim, existe o AJAX, mas .... na realidade é na mesma um pedido ao servidor, certo?).

No entanto, deves também fazer em PHP :) para que caso alguem edite a parte javascript e faça o tal 'bypass' o PHP valide na mesma os dados.

Acima de tudo, a segurança :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

eu no php tenho uma linha que verifica se a repeatpassword é igual ou não a password

eu precisava mesmo do javascript mais pela mensagem de erro que vai gerar, desta forma avisa o utilizador que a password foi alterada com sucesso ou que não foi possível alterar por a repeatpassword e a password não serem iguais

que o meu site já esta a funcionar bem e assim, só preciso de elaborar um pouco mais para aparecer as mensagens de erros e assim, mas javascript eu não sou muito experiente ainda :)

PS: a questão das passwords ficou a funcionar, fiz aparecer um alert caso a password seja ou não alterada, agora outra duvida, no caso do login, tive a procura no fórum e não encontrei nada deste género, para validar o login é da mesma forma que fiz para validar a alteração da password? :hmm:

deixo o javascript que elaborei, e caso alguém tenha uma ideia diferente ou uma sugestão para melhorar o meu código, estou aberto a sugestões :)

<script language="javascript">

function valida()
{
	var password = document.formpass.password.value;
	var repeatpass = document.formpass.repeatpassword.value;  

	if (password == repeatpass){
			alert("Password was changed!"); 
			return true;
		} else {
			alert("The 'PASSWORD' and 'REPEAT PASSWORD' need to match!");
			return false;
			} 
}

</script>

e na form chamo assim:

<form action=admin/pass.php method='POST' onsubmit='javascript:return valida()' name='formpass'>

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

amigo, sempre podes utilizar o REGEX do asp =) no teu código html =), se precisares de alguma ajuda com o REGEX apita =), k ate te forneço um mini manual que tive de fazer para me orientar deves enquanto. Mas se queres um concelho para a coisa ficar boa, valida do lado do cliente e do lado do servidor sempre  :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

REGEX? nao conheço..se puderes ajudar agradecia, e é simples de se utilizar com php?

eu faço sempre a validação do lado do servidor, falta mesmo é validar do lado do cliente, como referi anteriormente, apenas para mostrar as mensagens aos utilizadores a informar se há erros ou não :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

ups, atenção como disse a pouco Regex é asp.net lol

acho que não vai dar para php :S

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

pois, o problema que trabalho sempre com php, e d ASP.net não percebo porque foi algo que nunca utilizei, mas obrigado a mesma pela ajuda :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

ups, atenção como disse a pouco Regex é asp.net lol

acho que não vai dar para php :S

regex não é asp.net, existe no asp.net ... assim como em php, javascript, phyton, and so on ..

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora