Jump to content

validar dados


diokhan

Recommended Posts

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

...Join the dark side...and get a free cookie...

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

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

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'>

...Join the dark side...and get a free cookie...

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

...Join the dark side...and get a free cookie...

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
×
×
  • 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.