Problema con sistema de registro y login... alguien puede ayudarme??

Hola amigos, me he encontrado con un problemita al crear mi registro e inicio de sesiones de mi web...
Estoy tomando un tuto sobre el asunto pero el problema esta aqui:

-Cuando registro el primero usuario todo pilla muy bien, puse una alerta que diga que si el usuario ya existe de un mensaje que diga: "el usuario ya existe, intenta con otro nombre de usuario". Trato de registrarme con otro nombre de usuario diferente, otra password y otro email pero me arroja "el usuario ya exsite, intenta con otro nombre de usuario". El primer registro pilla bien pero despues el segundo en ya no quiere. A que se deberá??? hice todo identicamente que en el tuto. Ahi van los codigos:


funciones.php(donde tengo la funcion de conectar a la base de datos):

<?php
function conectar($servidor, $user, $pass, $name)
{
$con = @mysql_connect($servidor, $user, $pass);
@mysql_select_db($name, $con);
}
?>

registro.html(el codigo html del formulario):


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento sin t&iacute;tulo</title>
</head>

<body>
<form action="registroprueba2.php" method="post">
Usuario: <input type="text" name:"user" /><br />
Password: <input type="password" name:"pass" /><br />
Email: <input type="text" name="mail" /><br />
<input type="submit" value="Registrar" />
</form>
</body>
</html>



registroprueba2.php(donde guardo todas las funciones y condicionales):


<?php
require_once('funciones.php');
conectar('localhost', 'mrtruji_login2', 'password', 'mrtruji_registro');

//Recibir
$user = strip_tags($_POST['user']);
$pass = strip_tags(sha1($_POST['pass']));
$mail = strip_tags($_POST['mail']);
$ip = $_SERVER['REMOTE_ADDR'];

$query = @mysql_query('SELECT * FROM registrados WHERE user="'.mysql_real_escape_string($user).'"');
if($existe = @mysql_fetch_object($query))
{
echo 'El usuario '.$user.' ya existe.';
}else{
$meter = @mysql_query('INSERT INTO registrados (user, pass, mail, ip) values ("'.mysql_real_escape_string($user).'", "'.mysql_real_escape_string($pass).'", "'.mysql_real_escape_string($mail).'", "'.$ip.'")');
if($meter)
{
echo 'Usuario registrado con exito';
}else{
echo 'Hubo un error en el registro.';
}
}
?>



Como ya dije nosee que es lo que pasa :(, aparte cuando me llega el primer registro(que es el unico), no se muestra el username... debe ser algo de la funcion mysql_real_escape_string pero nose como solucionarlo


Espero que me puedan ayudar GRACIAS!!!:eek:
Hola:

En el formulario HTML cambia name:"user" y name:"pass" por name="user" y name="pass" (fíjate en el signo igual) respectivamente. Eso debería arreglar el problema.

Si no lo soluciona, entonces quita todas las arrobas (@) frente a las funciones (para que te muestre los errores). También, la línea donde codificas la contraseña esta mal, pues estas quitando las HTML tags después de codificarla y deberías quitar las tags primero:

$pass = sha1(strip_tags($_POST['pass']));

Tampoco tiene algún efecto utilizar mysql_real_escape_string( $pass ); puesto que $pass ya esta codificada. Así lo haría yo:

$user = strip_tags( $_POST['user'] );
$pass = strip_tags( $_POST['pass'] );
$mail = strip_tags( $_POST['mail'] );
$ip = $_SERVER['REMOTE_ADDR'];

$query = @mysql_query('SELECT * FROM registrados WHERE user="'.mysql_real_escape_string($user).'"');
if($existe = @mysql_fetch_object($query)) {
  echo 'El usuario '.$user.' ya existe.';	
} else {
  $user = mysql_real_escape_string( $user );
  $pass = sha1( mysql_real_escape_string( $pass ) ); // solo la codificas si se va a guardar un registro
  $meter = @mysql_query('INSERT INTO registrados (user, pass, mail, ip) values ("'.$user.'", "'.mysql_real_escape_string($pass).'", "'.$pass.'", "'.$ip.'")');
  if( $meter ) {
    echo 'Usuario registrado con exito';
  } else {
    echo 'Hubo un error en el registro.';	
  }
}

Saludos.