estimado Posted June 20, 2012 at 05:49 PM Report Share #464451 Posted June 20, 2012 at 05:49 PM (edited) 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 June 20, 2012 at 06:51 PM by softklin Visual Studio 2010 C# Link to comment Share on other sites More sharing options...
softklin Posted June 20, 2012 at 06:51 PM Report Share #464455 Posted June 20, 2012 at 06:51 PM (edited) 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 June 20, 2012 at 06:53 PM 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 More sharing options...
estimado Posted June 20, 2012 at 07:55 PM Author Report Share #464468 Posted June 20, 2012 at 07:55 PM 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 More sharing options...
softklin Posted June 20, 2012 at 09:58 PM Report Share #464487 Posted June 20, 2012 at 09:58 PM É 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 More sharing options...
estimado Posted June 20, 2012 at 10:50 PM Author Report Share #464494 Posted June 20, 2012 at 10:50 PM boas obrigado pela ajuda! E então e sobre o registo com os campos em branco? Podes-me ajudar a resolver isso também? Obrigado Visual Studio 2010 C# Link to comment Share on other sites More sharing options...
softklin Posted June 20, 2012 at 11:20 PM Report Share #464498 Posted June 20, 2012 at 11:20 PM 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 More sharing options...
estimado Posted June 21, 2012 at 08:29 PM Author Report Share #464738 Posted June 21, 2012 at 08:29 PM Obrigado... Percebi como fazer isso, dos campos vazios:D Muito obrigado Visual Studio 2010 C# Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now