Ver um Único Post
Antigo 16-01-2009, 06:23 PM   #2 (permalink)
John-X
Amigo SE
 
Avatar de John-X
 
Registrado em: Dec 2008
Posts: 110
Agradeceu: 13
Agradecido 255 Vezes em 66 Posts
Achei Ruim:
Acharam ruim Vezes em Posts

Inventório de John-X

Padrão

Faça um teste com este formulário que eu criei (uma adaptação do seu código). Faça as modificações que achar necessárias. As mensagens de erro aparecem em uma caixa de alerta. Não sendo necessária uma outra página.
Citação:
<form name="l2regjohnx" method="post" action="">
Login: <input type="text" name="login" size="30"><br /><br />
Senha: <input type="password" name="senha" size="30"><br /><br />
Repita a senha: <input type="password" name="resenha" size="30"><br /><br />
<input type="submit" value="Enviar Cadastro" name="l2regjohnx">
</form>
<?php
if(isset($_POST['l2regjohnx'])) {
//set host, username and password for MySQL
$dbhost = "localhost";
$dbuser = "lalalalala";
$dbpass = "lalalalala";

//connect to MySQL or return an error
$conn = mysql_connect("$dbhost", "$dbuser", "$dbpass")
or die('Could not connect: ' . mysql_error());

//set database name
$dbname = "l2jmk";

//select database or return an error
$dbselect = mysql_select_db("$dbname")
or die ('Could not select database');

//get username and password info from the form, protecting against SQL injection
$pass = mysql_real_escape_string($_POST["senha"]);
$confirm = mysql_real_escape_string($_POST["resenha"]);
$user = mysql_real_escape_string($_POST["login"]);

//validate user input
if(!preg_match('/^[a-zA-Z0-9]{5,20}$/',$user)) {
die ('<script>alert("Sua conta deve conter no mínimo 5 e máximo de 20 caracteres.");location=javascript:history.go(0);</script>');
}

if(!preg_match('/^[a-zA-Z0-9]{5,20}$/',$pass)) {
die ('<script>alert("Sua senha deve conter no mínimo 5 e máximo de 20 caracteres.");location=javascript:history.go(0);</script>');
}

if($pass != $confirm) {
die ('<script>alert("Sua senha não confere");location=javascript:history.go(0);</script>');
}

//make sure user doesn't already exist and if it doesn't, add new record to the database
$result = mysql_query("SELECT login FROM accounts WHERE login='$user'");

if(mysql_num_rows($result)>0) {
die ('<script>alert("Esta conta já existe.");location=javascript:history.go(0);</script>');
}else{
mysql_query("INSERT INTO accounts (login, password, accesslevel) VALUES ('".$_POST['name']."', '".base64_encode(pack('H*', sha1($_POST['pass'])))."', 0)")
or die ('Erro' . mysql_error());
}

//report successful registration
echo "<script>alert('Conta criada com sucesso.');location=index.php</script>";

//close MySQL connection
mysql_close($conn);
}
?>
Espero que isso lhe ajude.

John-X está offline  
O seguinte membro ao lado disse Obrigado(a) a : John-X por gostar deste Post :
lSkinner (16-01-2009)
 

Search Engine Optimization by vBSEO 3.3.0