Foros del Web » Programando para Internet » PHP »

cambio de nick de usuario

Estas en el tema de cambio de nick de usuario en el foro de PHP en Foros del Web. como se puede acer para que un usuario se pueda cambiar el nick del registro en una pagina que tengo con bd mysql...
  #1 (permalink)  
Antiguo 23/09/2004, 02:09
 
Fecha de Ingreso: junio-2004
Mensajes: 65
Antigüedad: 19 años, 9 meses
Puntos: 0
cambio de nick de usuario

como se puede acer para que un usuario se pueda cambiar el nick del registro en una pagina que tengo con bd mysql
  #2 (permalink)  
Antiguo 23/09/2004, 08:41
 
Fecha de Ingreso: junio-2004
Mensajes: 65
Antigüedad: 19 años, 9 meses
Puntos: 0
aver si algien me puede decir que tengo mal en estos codigos que son para cambier el nick de usuario pero no se que ai mal por que me cambia el nick de todos los usuarios de la base de datos y yo solo quiero que cambie el del usuario que lo utiliza:

1 pagina cambiardatos.php

<?
include('config.php');

if(!isset($_SESSION[usuario]) ) { echo 'si no inicias sesion no puedes cambiar los datos '; }
else{

echo'
<form method="post" action="editar.php">
<input type="text" name="nick" value="'.$_SESSION[usuario].'" readonly><br>
<input type="submit" value="enviar" name="submit">
</form>';
}
?>
2 pagina editar.php
<?
include("config.php");

$query = mysql_query("SELECT * FROM `users` WHERE nick='$nick' ");
while($row=mysql_fetch_array($query))
{

echo '<br>
Pulsa enviar para actualizar los datos<br>
<form method="post" action="update.php">
Nuevo Nick: <input type="text" name="nick" value="'.$row["nick"].'" size="30"><br>
email: <input type="text" name="email" value="'.$row["email"].'"size="50"><br>
<input type="submit" name="submit" value="Enviar">
</form>';


}

?>
3 pagina update.php
<?
include('config.php');
$query = "UPDATE users SET nick='$nick', fecha='$fecha'"; mysql_query($query);
echo "<b>Usuario Editado<br></b>";
?>
  #3 (permalink)  
Antiguo 23/09/2004, 08:47
Avatar de jnegro  
Fecha de Ingreso: diciembre-2001
Ubicación: Salta
Mensajes: 238
Antigüedad: 22 años, 3 meses
Puntos: 0
en la query del update te falta la condición, "update users set nic=$nick where (condicion)...."
__________________
Julio
Clasificados Gratis
  #4 (permalink)  
Antiguo 23/09/2004, 09:11
 
Fecha de Ingreso: junio-2004
Mensajes: 65
Antigüedad: 19 años, 9 meses
Puntos: 0
perdona pero no se que quieres decir con que me falta la condicion
  #5 (permalink)  
Antiguo 23/09/2004, 09:20
Avatar de jnegro  
Fecha de Ingreso: diciembre-2001
Ubicación: Salta
Mensajes: 238
Antigüedad: 22 años, 3 meses
Puntos: 0
condicion:
where nick=$nickviejo, id=$id o algo así, para que elija el registro que va a actualizar. Es como hacer un select donde ponés alguna condición para definir el registro a mostrar solo que en este caso es el registro a modificar, si no ponés ninguna condición se actualizan todos los registros que es lo que te está pasando.
Espero haberte aclarado el punto
__________________
Julio
Clasificados Gratis
  #6 (permalink)  
Antiguo 23/09/2004, 15:29
 
Fecha de Ingreso: junio-2004
Mensajes: 65
Antigüedad: 19 años, 9 meses
Puntos: 0
pero es que no en que parte del codigo poner eso que me dices, perdona por mi ignorancia
  #7 (permalink)  
Antiguo 23/09/2004, 22:01
Avatar de jnegro  
Fecha de Ingreso: diciembre-2001
Ubicación: Salta
Mensajes: 238
Antigüedad: 22 años, 3 meses
Puntos: 0
te muestro una query que uso para actualizar una tabla:
$query="UPDATE rubro SET imagen = '".$nombre."' WHERE Id=".$_POST['Id'];
el tema es que debés tener en la tabla de usuarios un identificador único, en mi caso se llama Id pero puede ser cualquier otro, este te sirve para seleccionar el registro a actualizar, como no se la estructura de tus tablas no se cual será el identificador único de los registros pero ese es el que daría la condición en el caso del ejemplo le digo que cambie el campo imagen asignándole la variable nombre en el registro cuyo Id es igual a la variable Id.
Espero haberte aclarado el punto, de todas maneras sigo a tu disposición.
__________________
Julio
Clasificados Gratis
  #8 (permalink)  
Antiguo 24/09/2004, 02:02
 
Fecha de Ingreso: junio-2004
Mensajes: 65
Antigüedad: 19 años, 9 meses
Puntos: 0
aver en el update.php e puesto lo que me dices y queda asi:

<?
include('config.php');
$query="UPDATE rubro SET imagen = '".$nombre."' WHERE Id=".$_POST['Id'];
echo "<b>Usuario Editado<br></b>";
?>

pero no ace nada no me cambia nada de la base de datos y la base de datos si tengo id con valor unico por usuario
  #9 (permalink)  
Antiguo 24/09/2004, 02:21
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 9 meses
Puntos: 16
Hola,

El problema es que no le has dicho al script que actualiza. El formulario solo le manda los nuevos datos, pero no dice a quien. Por lo que veo, es para que el propio usuario modifique sus datos. En este caso, debes tener en la sesion algo que le identifique (el id, el nick, ...). Puedes usar ese valor para la condicion de la consulta (igual que en el select).

Si es para que un usuario modifique los datos de otro usuario, en el formulario deberias añadir de alguna forma (un campo oculto, por ejemplo) un campo en el que pases un valor que identifique el registro a modificar (el id, por ejemplo).

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #10 (permalink)  
Antiguo 24/09/2004, 03:38
 
Fecha de Ingreso: junio-2004
Mensajes: 65
Antigüedad: 19 años, 9 meses
Puntos: 0
gracias por la ayuda ya esta solucionado el problema, ahora me sale otro problema que es que al crear la cuenta el usuario no puede poner el mismo nick que otro pero al cambiarse el nick si puede el codigo de editar.php es este:

<?
include("config.php");

$query = mysql_query("SELECT * FROM `users` WHERE nick='$nick' ");
while($row=mysql_fetch_array($query))
{

echo '<br>
Pulsa enviar para actualizar los datos<br>
<form method="post" action="update.php">
Nuevo Nick: <input type="text" name="nick" value="'.$row["nick"].'" size="30"><br>
email: <input type="text" name="email" value="'.$row["email"].'"size="50" readonly><br>
<input type="submit" name="submit" value="Enviar">
</form>';


}

?>

que tendria que poner para si el nick ya esta en la base de datos le salga un mensage del tipo este nick ya esta en uso o algo parecido
  #11 (permalink)  
Antiguo 24/09/2004, 03:52
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 9 meses
Puntos: 16
Bueno, tienes 2 opciones:

1.- Hacer el campo nick como 'unico' en la base de datos. En ese caso, al intentar un update con un valor que exista en otro registro la consulta producira un error. Asi que seria cuestion de mirar si mysql_query() devuelve false (error en MySQL) y comprobar el numero de error con mysql_errn() (www.php.net/mysql_errn) que corresponda con campo unico duplicado y en ese caso mostrar el mensaje.

2.- El metodo facil: realiza un select por ese nick antes del update. Si devuelve un registro es que ya existe y mandas el mensaje. Eso si, siempre y cuando el usuario no quiera cambiar su nick por su nick actual. Si, es un contrasentido, pero siempre habra algun lumbreras que en el campo nick para modificar ponga el valor actual.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #12 (permalink)  
Antiguo 24/09/2004, 04:00
 
Fecha de Ingreso: junio-2004
Mensajes: 65
Antigüedad: 19 años, 9 meses
Puntos: 0
y el metodo dos como seria el codigo, perdona que te lo pregunte pero es que en esto toy muy pegado todabia, muchas gracias por la ayuda
  #13 (permalink)  
Antiguo 24/09/2004, 16:13
 
Fecha de Ingreso: junio-2004
Mensajes: 65
Antigüedad: 19 años, 9 meses
Puntos: 0
por fabor si algien sabe como tengo que acer el selec ese para comprobar si esta el nick ya registrado que me eche un cable,gracias.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:17.