hola a todos. tengo un problema con un script php que uso para cambiar la contraseña de usuarios. esto lo hago mediante un UPDATE, pero no me funciona para nada. Lo mismo ocurre cuando quiero hacer un INSERT. la sintaxis de ambas la tomo de "Generar PHP" de MyAdmin. las variables la interpolo de manera que las instrucciones quedan algo asi:
INSERT INTO pphk_users WHERE id='$id'
he probado con todo. desde un simple error en las comillas hasta los privilegios de usuario, pero nada me resulta (de lo apurado lleguè a dejar al usuario con todos los privilegios!!!
![Neurótico](http://static.forosdelweb.com/fdwtheme/images/smilies/scared.png)
). el script lo uso desde ActionScript, pero para todos los demas mòdulos trabaja perfectamente. he tratado de imprimir el error en pantalla, pero el motor sql no muestra ninguno.
este es el susodicho ccodigo. si esta algo mal, no tengan piedad en decirmelo. soy mas o menos nuevo en esto de php.
$conexion = mysql_connect("localhost","usuario","password");
if ($conexion)
{
mysql_select_db("usuario",$conexion);
if (isset($_POST['password_actual']) &&
isset($_POST['password_nuevo']) &&
isset($_POST['nombre_usuario']))
{
$usuario = noInject($_POST['nombre_usuario']);
$actual_password = noInject($_POST['password_actual']);
$nuevo_password = noInject($_POST['password_nuevo']);
$actual_password = md5($actual_password);
$nuevo_password = md5($nuevo_password);
. $sql_query = "SELECT * FROM usuarios WHERE nickname='$usuario'";
$resultado = mysql_query($sql_query);
if (mysql_num_rows($resultado)) {
$lista = mysql_fetch_array($resultado);
$idx = $lista["id"];
$mpass = $lista["md5password"];
if ($actual_password == $mpass)
{
$sql_query = "UPDATE usuarios SET md5password='$nuevo_password' WHERE id='$idx'" ;
$resultado = mysql_query($sql_query);
if(mysql_num_rows($resultado))
{
echo "&cambiado=cambio_ok&";
}
} else {
echo "&cambiado=cambio_nopassword&";
}
} else {
echo "&cambiado=cambio_nousuario&";
}
}
mysql_close($conexion);
}
?>
he estado enfrascado en el mismo rollo hace rato, asi qu ahora recurro a ud. para solucionarlo. gracias.
ps: noInject es una funciòn que cree para limpiar los caracteres peligrosos. en todo caso, no produce ningun error ya que la he testeado con varios valores "sucios" o no, y aunque los datos de POST llegue limpios el error empieza al crear el string de la consulta.