Foros del Web » Programando para Internet » PHP »

Problemas con consulta a MySQL

Estas en el tema de Problemas con consulta a MySQL en el foro de PHP en Foros del Web. Hola a todos, No tengo gran experiencia en web pero lo que me pasa me tiene intrigadísimo... Tengo un formulario para que el usuario pueda ...
  #1 (permalink)  
Antiguo 29/09/2009, 08:50
 
Fecha de Ingreso: enero-2008
Mensajes: 23
Antigüedad: 16 años, 2 meses
Puntos: 0
Problemas con consulta a MySQL

Hola a todos,

No tengo gran experiencia en web pero lo que me pasa me tiene intrigadísimo...

Tengo un formulario para que el usuario pueda modificar su password una vez haya iniciado sesión. El formulario postea los datos al siguiente php:

//Conecta con la base de datos
include "../conexion.php";

//Variables importantes
$claveactual = $_POST['claveactual'];
$nuevaclave = $_POST['nuevaclave'];
$usuario = $_SESSION['username'];

// Conecta con la tabla de usuarios
$sql_usuario = "SELECT IDCliente, NombreUsuario, ClaveUsuario "
. "FROM tbl_clientes "
. "WHERE NombreUsuario = '" . $usuario . "'";

$res_sql=mysql_query($sql_usuario) or die(mysql_error());
$nusuarios=mysql_num_rows($res_sql);
$mensaje = "";

if ($nusuarios>0) {

$reg_sql=mysql_fetch_array($res_sql);

if (md5($claveactual) == $reg_sql['ClaveUsuario']) {
// Cambio de clave
$idusuario = $reg_sql['IDCliente'];
$reg_sql='';

$sql_cambio = "UPDATE tbl_clientes "
."SET ClaveUsuario = '". md5($nuevaclave) ."' "
."WHERE IDCliente = $idusuario " ;

$resultado = mysql_query($sql_cambio) or die(mysql_error());

$mensaje = "<script languaje='javascript'>alert('Se ha modificado la clave');</script>";

} else {

$mensaje = "<script languaje='javascript'>alert('La clave actual es errónea');</script>";

}
} else {
$mensaje = "<script languaje='javascript'>alert('Su nombre de usuario no es válido');</script>";
}

echo $mensaje;

Lo realmente flipante es que, una vez ha comprobado que la clave actual y la que tiene almacenada son las mismas, hace la modificación por la nueva clave pero.... invariablemente da el mensaje de 'La clave actual es errónea'.

Agradeceré cualquier ayuda para explicar este poltergeist.

Saludos
  #2 (permalink)  
Antiguo 29/09/2009, 09:12
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Estoy fliiiiiiiiipandoooooo

Tema trasladado desde MySQL
  #3 (permalink)  
Antiguo 29/09/2009, 10:11
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 7 meses
Puntos: 70
Respuesta: Problemas con consulta a MySQL

Osea... entra al if, hace el proceso de update, pero te imprime "La clave actual es errónea"?

O_o
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #4 (permalink)  
Antiguo 14/10/2009, 07:40
 
Fecha de Ingreso: enero-2008
Mensajes: 23
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Problemas con consulta a MySQL

Perdonad por no haber respondido antes.

El caso es que sí, hacía una parte del if pero no el resto. El caso es que me lo hacía en el servidor de prueba una y otra vez. Lo di por imposible y al subirlo al hospedaje, empezó a funcionar como se esperaba de él.

Cosas del php, supongo. Reinicié el servidor y listo.

Saludos.
  #5 (permalink)  
Antiguo 14/10/2009, 07:52
Avatar de Huacho12  
Fecha de Ingreso: septiembre-2008
Ubicación: Isla Mujeres Q. Roo
Mensajes: 175
Antigüedad: 15 años, 6 meses
Puntos: 10
Respuesta: Problemas con consulta a MySQL

Buenos días Jeromin.

Igual y puedes hacer un IF sobre tu query de UPDATE, por ejemplo:

if(SI_ACTUALIZO)
{
tu mensage de que se acutalizo tu clave
}else
{
no se actualizo
}
  #6 (permalink)  
Antiguo 14/10/2009, 08:41
 
Fecha de Ingreso: enero-2008
Mensajes: 23
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Problemas con consulta a MySQL

Para mi que el problema era del 'compilador' php (o como se llame).

No se porqué, pero la variable $mensaje no quedaba con el valor que debía de quedar, por lo que la respuesta del echo no era la que cabía esperar.

Me dí cuenta cuando al subirlo al servidor público la cosa funcionaba bien. Así que lo doy por resuelto.

Saludos y gracias por tu interés.
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 01:43.