Jump to content

[Resolvido] Ajuda em sistema registo


estimado

Recommended Posts

boas

Bem, como alguns sabem eu estou a fazer um sistema de registo para um site, só que eu hoje deparei-me com um problema e gostaria se me podessem ajudar!

Bem é o seguinte:

-> Eu se não escrever nada nos campos de registo, eu consigo registar-me!?? Depois se eu for ao Lofin e digitar os campos em branco e fazer"Login" ele entra sem escrever nada!

Podem-me ajudar a resolver este problema, sendo que só se regista quando os campos estiverem preenchidos e o email correctamente!

-> E depois queria que pedi-se para digitar a senha 2 vezes!

Tipo:

Password:

Digite novamente a Password:

O meu codigo do ficheiro "Registar"!

<?php
require_once "config.php"; // inclui a conexão a database
if(!isset($_POST['join'])){
echo "
<form method=\"post\" action=\"registar.php\">
<label>Nome de Utilizador</label><br/><input name=\"username\"/><br/>
<label>Email</label><br/><input name=\"email\"/><br/>
<label>Password</label><br/><input name=\"password\" type=\"password\"/><br/>
<input type=\"submit\" name=\"join\" value=\"register\"/>
</form>
";
}else{
$pass = sha1($_POST['password']);
$user = mysql_real_escape_string($_POST['username']);
$email = $_POST['email'];
mysql_query("INSERT INTO users (id, username, email, password) VALUES (NULL, '$user', '$email', '$pass')") or die("Alguma coisa correu mal durante o registo. MySQL erro: ".mysql_error());
echo "Registo Completo - <a href=\"login.html\">Entrar na Conta</a>.";
}
?>

Obrigado

Edited by softklin

Visual Studio 2010 C#

Link to comment
Share on other sites

Não consegues fazer essa alteração? Não tem nada de complicado, basta verificares se os campos do formulário são diferentes de "" (ou se quiseres, usar o empty(), mas tem em atenção que valores como 0 são considerados vazios). Para o caso da password, basta criares um novo campo de formulário HTML por baixo de password (copy/paste do campo password) e ter o cuidado de mudar o nome, por exemplo, para password2. Na altura de confirmar, basta fazer algo como:

if( $_POST['password'] !== $_POST['password2'] )
{
 die('Ocorreu um erro ao registar: a password e a sua confirmação devem ser iguais');
}

Isto tem de estar depois da validação dos campos em branco, senão é criado um registo com password em branco.

Um conselho adicional: se ainda não tiveste esse cuidado, coloca o campo do username na tua base de dados como UNIQUE. Dessa forma, não inseres vários utilizadores com o mesmo username involuntariamente.

Edited by softklin

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

obrigado, o código funcionou perfeitamente:D

Consegui!

Obrigado pela sua sugestão, por acaso não sabia disso:D

Só uma pequena pergunta!

Não dá para mudar isto?

Duplicate entry 'estimado' for key 'username'

Para:

O Username digitado já se encontra registado na Base Dados!

Dá para mudar?

Obrigado:D

Visual Studio 2010 C#

Link to comment
Share on other sites

É possível colocar uma mensagem personalizada, mas é preferível fazeres uma verificação manual se o username já existe. Essa restrição serve, sobretudo, para não permitir inserir usernames duplicados na tabela. Vamos supor que tens um backup e que, por erro, fazes insert em vez de update: irias ficar com usernames duplicados.

Do lado do PHP, basta um select:

$res = mysql_query("SELECT COUNT(*) FROM users WHERE username = '$username'");
if( mysql_result($res, 0) > 0 )
{
 die('O Username digitado já se encontra registado na Base Dados!');
}

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

Os registos em branco não tem segredo nenhum. Tal como disse anteriormente, basta verificares com um if, se os campos estão vazios: isto é, se os campos são iguais a "".

if( $_POST['username'] == "" )
{
 die('Deve indicar um username');
}

e assim por diante para os outros 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
×
×
  • 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.