Foros del Web » Programando para Internet » PHP »

Cambiar pass en autentificador de Cluster

Estas en el tema de Cambiar pass en autentificador de Cluster en el foro de PHP en Foros del Web. Hola buena gente como andan, yo bien a pesar de la argentina que me toca vivir, jaja. Bueno los cuento uso el autentificador de CLUSTER ...
  #1 (permalink)  
Antiguo 27/03/2008, 12:49
 
Fecha de Ingreso: mayo-2004
Mensajes: 903
Antigüedad: 20 años
Puntos: 4
Cambiar pass en autentificador de Cluster

Hola buena gente como andan, yo bien a pesar de la argentina que me toca vivir, jaja.
Bueno los cuento uso el autentificador de CLUSTER y necesito que el usuario una vez ingresado pueda cambiar su pass desde ahí mismo.
Intenté asi pero no logro hacerlo.

Código PHP:
<?php
$link 
mysql_connect('localhost''''');
mysql_select_db(''$link);

$usuario=$_POST['usuario'];//usuario que desea cambiar pass
$pass_ant=md5($_POST['passanterior']);//pasar a md5 el pass anterior
$pass=$_POST['pass'];//pass nuevo
//checamos si existe el usuario y si la contraseña es correcta
//para evitar que cualquier persona sabiendo el nombre de usuario
//pueda cambiar la contraseña.
$resp mysql_query ("SELECT pass FROM usuarios WHERE usuario='$usuario' AND pass='$pass_ant'");
$row mysql_num_rows ($resp);//obtenemos el numero de registros encontrados(siempre debe de ser uno)
if ($row['pass']==$pass_ant){//si el resultado es uno es que es existe el usuario y la contraseña anterior es correcta
//actualizamos el pass
mysql_query ("UPDATE usuarios SET pass='$pass' WHERE usuario='$usuario'");
echo 
"La contraseña ha sido cambiada exitosamente.";
}
else{
//de lo contrario, mandamos el error.
echo "Error: La contraseña no pudo cambiarse.";

?>
  #2 (permalink)  
Antiguo 27/03/2008, 12:59
 
Fecha de Ingreso: marzo-2007
Mensajes: 347
Antigüedad: 17 años, 1 mes
Puntos: 2
Re: Cambiar pass en autentificador de Cluster

Estas usando una función incorrecta, despues de hacer la query pones $row = mysql_num_rows($resp), y despues haces un condicional con $row['pass'], la función mysql_num_rows no te devuelve un array, te devuelve el numero de filas que han sido seleccionadas en la consulta que le pasas por su unico parametro, debes usar mysql_fetch_row, usa la función mysql_fetch_row y me comentas que tal te va :)

Un saludo
  #3 (permalink)  
Antiguo 27/03/2008, 13:46
 
Fecha de Ingreso: mayo-2004
Mensajes: 903
Antigüedad: 20 años
Puntos: 4
Re: Cambiar pass en autentificador de Cluster

Gracias Francisco, probé
Código PHP:
$row mysql_fetch_row($resp); 
y no me cambia el pass tampoco. El mismo está en MD5 sera por eso?
  #4 (permalink)  
Antiguo 27/03/2008, 14:16
 
Fecha de Ingreso: marzo-2007
Mensajes: 347
Antigüedad: 17 años, 1 mes
Puntos: 2
Re: Cambiar pass en autentificador de Cluster

Una cosa, que salida te da? que se cambio correctamente? o que no pudo cambiarse? y ahora que nombras el md5 creo que debes cambiar esta linea
$pass=$_POST['pass'];
y pasar tambien el $_POST['pass'] por la funcion md5 a la hora de cambiarla en la bd
  #5 (permalink)  
Antiguo 27/03/2008, 17:49
 
Fecha de Ingreso: mayo-2004
Mensajes: 903
Antigüedad: 20 años
Puntos: 4
Re: Cambiar pass en autentificador de Cluster

Hola, me da esto: que no pudo cambiarse?

me parece que acá esta el error pero no logro solucionarlo.

Código PHP:
   // le damos un mobre a la sesion.
    
session_name($usuarios_sesion);
     
// incia sessiones
    
session_start(); 
el script no me toma el usuario de la sesión que es el mismo que esta en la bd como campo usuario

Código PHP:
$usuario=$_POST['usuario'];//usuario que desea cambiar pass
$pass_ant=md5($_POST['passanterior']);//pasar a md5 el pass anterior
$pass=$_POST['pass'];//pass nuevo
//checamos si existe el usuario y si la contraseña es correcta
//para evitar que cualquier persona sabiendo el nombre de usuario
//pueda cambiar la contraseña.
$resp mysql_query ("SELECT pass FROM usuarios WHERE usuario='$usuario' AND pass='$pass_ant'"); 
ahi tomo usuario pero no eo usuario almacenado en la sesión, me parece al menos? no me llevo bien con las sesiones como verán , jaja.

Última edición por mvlsistemas; 27/03/2008 a las 18:06
  #6 (permalink)  
Antiguo 27/03/2008, 17:59
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Re: Cambiar pass en autentificador de Cluster

que tamaño de caracteres tienes en campo pass de la tabla

A mi me paso que como la longitud del campo pass era menor que el numero de caracteres que crea md5 cortaba la pass y cuando queria actualizar el $row[pass] no coincidian, pero era por que no entraba en el campo pass toda la clave md5.

Y tambien, no estas codificando la pass nueva:

Código PHP:
$pass=$_POST['pass'];//pass nuevo 
//creo que la deberias codificar tambien
$pass=md5($_POST['pass']);//pass nuevo 
Igual no es eso, pero espero haberme explicado.

Un saludo
  #7 (permalink)  
Antiguo 27/03/2008, 18:10
 
Fecha de Ingreso: mayo-2004
Mensajes: 903
Antigüedad: 20 años
Puntos: 4
Re: Cambiar pass en autentificador de Cluster

Gracias Jaronu, justo editaba el post cuando me respondías, ahí arriba del tuyo veras lo que agregué recién.
  #8 (permalink)  
Antiguo 28/03/2008, 02:45
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Re: Cambiar pass en autentificador de Cluster

Yo no se mucho, mas bien poco, y tampoco se como va el script de Cluster,
pero has Hecho un echo de las variables, antes del query, a ver como te llegan??

Código PHP:
echo $pass_ant;
echo 
$pass;
echo 
$usuario
  #9 (permalink)  
Antiguo 29/03/2008, 07:26
 
Fecha de Ingreso: mayo-2004
Mensajes: 903
Antigüedad: 20 años
Puntos: 4
Re: Cambiar pass en autentificador de Cluster

Bueno gracias, creo que el problema reside en que el usuario debería toamrlo ya de la sesión iniciada y pasar su ID=usuario en la tabla usuarios, pero no logor hacerlooo
si tienen una ayuda será bienvenida.
  #10 (permalink)  
Antiguo 29/03/2008, 08:48
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 16 años, 11 meses
Puntos: 49
Re: Cambiar pass en autentificador de Cluster

Porque no publicas el código que estas utilizando actualmente para la actualización creo que el problema debe ser algo mínimo, pero si lo publicas sera mas facil detectar el problema.



Saludos.
  #11 (permalink)  
Antiguo 29/03/2008, 13:18
 
Fecha de Ingreso: mayo-2004
Mensajes: 903
Antigüedad: 20 años
Puntos: 4
Re: Cambiar pass en autentificador de Cluster

asi lo tengo:

Código PHP:
<?php
session_start
();  
$link mysql_connect('localhost''''');
mysql_select_db(''$link);

$usuario=$_POST['usuario'];//usuario que desea cambiar pass
$pass_ant=md5($_POST['passanterior']);//pasar a md5 el pass anterior
$pass=md5($_POST['pass']);//pass nuevo  
if ($usuario $_SESSION['usuarios_sesion']){
echo 
"Hola usuario";
}
//checamos si existe el usuario y si la contraseña es correcta
//para evitar que cualquier persona sabiendo el nombre de usuario
//pueda cambiar la contraseña.
$resp mysql_query ("SELECT pass FROM usuarios WHERE usuario='$usuario' AND pass='$pass_ant'");
$row mysql_fetch_row($resp);//obtenemos el numero de registros encontrados(siempre debe de ser uno)
if ($row['pass']==$pass_ant){//si el resultado es uno es que es existe el usuario y la contraseña anterior es correcta
//actualizamos el pass
mysql_query ("UPDATE usuarios SET pass='$pass' WHERE usuario='$usuario'");
echo 
"La contraseña ha sido cambiada exitosamente.";
}
else{
//de lo contrario, mandamos el error.
echo "Error: La contraseña no pudo cambiarse.";


?>
  #12 (permalink)  
Antiguo 01/04/2008, 12:30
 
Fecha de Ingreso: mayo-2004
Mensajes: 903
Antigüedad: 20 años
Puntos: 4
Re: Cambiar pass en autentificador de Cluster

al final lo logré, aunque me falta las comprobaciones y el echo final pero al menos funciona.
Código PHP:
<?php
require("aut_verifica.inc.php"); // incluir motor de autentificación.
$nivel_acceso=1// definir nivel de acceso para esta página.
if ($nivel_acceso $_SESSION['usuario_nivel']){
header ("Location: $redir?error_login=5");
exit;
}
session_start(); 
$usuario=$_SESSION['usuario_login'];  
$passanterior=$_SESSION['usuario_password']; 
$pass=md5($_POST['pass']);//pass nuevo  
$link mysql_connect('localhost''''');
mysql_select_db(''$link);
mysql_query ("UPDATE usuarios SET pass='$pass' WHERE usuario='$usuario'");

?>
Código HTML:
<?php
require("aut_verifica.inc.php"); // incluir motor de autentificación.
$nivel_acceso=1; // definir nivel de acceso para esta página.
if ($nivel_acceso < $_SESSION['usuario_nivel']){
header ("Location: $redir?error_login=5");
exit;
}
?> 
<form action="getchange.php" method="post">
<br>
<p> Nuevo Password:<br>
<input name="pass" size="28" maxlength="20" type="pass">
  <input class="boton" value="Registrar" type="submit">
</form> 

gracias chicos, me han sido de gran utilidad sus respuestas. muchas gracias.

Última edición por mvlsistemas; 01/04/2008 a las 19:35
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 16:00.