Ver Mensaje Individual
  #1 (permalink)  
Antiguo 25/05/2012, 07:49
Polkiko
 
Fecha de Ingreso: enero-2011
Mensajes: 59
Antigüedad: 13 años, 4 meses
Puntos: 2
Problemas al comprobar usuario

Hola!

En estos momentos me encuentro modificando la página de perfil de mi web. Mas concretamente en el apartado "cambiar datos" que lo que hace es cambiar los datos que ya existen en la base de datos por los que el usuario pongo en un simple formulario.

El problema es al comprobar si el usuario a introducido un "nick" o "email" que ya existe en la base de datos, omitiendo el suyo (es decir, que por ejemplo pueda cambiar el nick pero si el email no quiere pues que no se cambie)

Les dejo mi código simplificado y con algunas anotaciones
Código PHP:
$id $_POST[id]; // Id usuario
$nick $_POST[nick]; // Nick usuario
$email $_POST[email]; // Email del usuario
$pass1 $_POST[pass1]; // Contraseña de su cuenta
$pass2 $_POST[pass2]; // Aqui estaría la nueva contraseña, pero no nos hace falta, es solo para determinar los pasos a seguir

if( ($_POST[nick] == '') or ($_POST[email] == '') or ($_POST[pass1] == '') ){ // Comprobamos que no vengan vacios... si vienen redirigimos a la página mostrando error
Header "Location: http://$linkweb/perfil.php?error=1");
}else{ 
// Si no, continuamos...
if ($pass2 == ''){ // Si el usuario no a introducido una contraseña nueva para su cuenta, continuamos...

$pass1 md5($pass1); // Encrpitamos la contraseña de su cuenta
if ($pass1 == $_SESSION[pass]){ // Si la contraseña es correcta, empezamos. Comparamos la contraseña encriptada con la de su sesión

// Aquí comienza el tema...

$comprobacionuser mysql_query("SELECT * FROM usuarios WHERE nick='$nick'"); // Consulta a la base de datos para determinar si existe ese usuario
if($datos2 mysql_fetch_array($comprobacionuser)){
Header "Location: http://$linkweb/perfil.php?error=4");
}

$comprobacionemail mysql_query("SELECT * FROM usuarios WHERE email='$email'"); // Consulta a la base de datos para determinar si existe ese email
if($datos22 mysql_fetch_array($comprobacionemail)){
Header "Location: http://$linkweb/perfil.php?error=5");
}

$update1 mysql_query("UPDATE usuarios SET nick = '$nick', email = '$email' WHERE id = $id "); // Actualización

session_destroy(); 
He probado a comparar los datos ya obtenidos con el de la sesión pero aún así no se que pasa que no lo hace correctamente
Seguro que debe de ser una solución sencilla o se me escapa alguna tontería... pero hoy no es mi día
Un saludo y gracias desde ya