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();
Seguro que debe de ser una solución sencilla o se me escapa alguna tontería... pero hoy no es mi día
![:-S](http://static.forosdelweb.com/fdwtheme/images/smilies/crap.png)
![Riendo](http://static.forosdelweb.com/fdwtheme/images/smilies/risa.png)
Un saludo y gracias desde ya