Ver Mensaje Individual
  #1 (permalink)  
Antiguo 28/12/2009, 16:07
h3greed
 
Fecha de Ingreso: septiembre-2008
Mensajes: 67
Antigüedad: 16 años, 4 meses
Puntos: 0
Problema con cambiar contraseña php y mysql

Hola que tal como les va, aqui ando buscando una solucion a mi problema, hace poco gracias a ustedes pude terminar con el codigo que me generaba una nueva contraseña si es que la perdia el usuario, bueno ahora me estoy volviendo loco queriendo generar un cambio de contraseña, o sea cuando el usuario se loguea y quiere cambiar su contraseña, como hago esto la verdad es que quise juntar varias cosas pero me he mareado, cualquier ayuda me vendria util.

Publico el codigo de regenerar contraseña validando que el correo exista en la base de datos

Código PHP:
<?php 
function gen_pass () { 
$i=0
$password=""
// Aqui colocamos el largo del password 
$pw_largo 8
// Colocamos el rango de caracteres ASCII para la creacion de el password 
$desde_ascii 50// "2" 
$hasta_ascii 122// "z" 
// Aqui quitamos caracteres especiales 
$no_usar = array (58,59,60,61,62,63,64,73,79,91,92,93,94,95,96,108111); 
while (
$i $pw_largo) { 
mt_srand ((double)microtime() * 1000000); 
// limites aleatorios con tabla ASCII 
$numero_aleat mt_rand ($desde_ascii$hasta_ascii); 
if (!
in_array ($numero_aleat$no_usar)) { 
$password $password chr($numero_aleat); 
$i++; 


return 
$password
 

// Y aqui ejecutamos la funcion y la guardamos en $p_generado, luego simplemente la cargamos 
$p_gen gen_pass(); 
?>
    <? 
   
include("dbconexion.php"); 
   if (isset(
$_POST["email"])) {
   
$email $_POST["email"];
   
$query "UPDATE usuarios SET pass1='".$p_gen."' WHERE email='".$email."'"
   
$checkemail mysql_query("SELECT email FROM usuarios WHERE email='$email'");
   
$email_exist mysql_num_rows($checkemail);
   if (
$email_exist==0) {
   echo 
"La cuenta de correo $email no se encuentra en nuestra base de datos, intente nuevamente";
   }else{
   
mysql_query($query) or die(mysql_error()); 
   
$asunto =    'Nuevo pass.';  
   
$mensaje =   "su nuevo pass es: $p_gen";  
   
$cabeceras 'From: [email protected]"\r\n" .  
                         
'Reply-To: [email protected]"\r\n" .  
                         
'X-Mailer: PHP/' phpversion();  
 
   
mail($email$asunto$mensaje$cabeceras);   
   echo 
"Su nuevo pass ha sido enviado!";
}
}
?>
para quien le pueda servir, bueno ahora lo que estoy tratando de hacer no puedo mas ya se me caen las pestañas, sale de un form con esta estructura:
Código PHP:
<?
  $usuario 
= ($_SESSION['s_usuario']);
   
?>
  </p>
  <div align="center">
    <form id="recupero" name="recupero" method="post" action="cambiopass2.php">
      <label></label>
      <div align="center">
        <label>
        <div align="center">Usuario:<br />
          <input name="usuario" type="text" id="usuario" value=" <? echo"".$_SESSION['s_usuario'].""?> "/>
        </div>
        </label>
        <div align="center"><br />
          Contrase&ntilde;a Actual:
          <input name="pass2" type="text" id="pass2" size="32" />
          Nueva Contrase&ntilde;a
          :
          <input name="pass3" type="text" id="pass3" size="32" />
        </div>
        <label>
        <input type="submit" name="enviar" id="enviar" value="Enviar" />
        </label>
        <br />
      </div>
    </form>
Aqui el codigo que intento generar


Código PHP:
<? 
   
include("dbconexion.php"); 
   if (isset(
$_POST["usuario"])) {
   
$select mysql_query("SELECT pass1 FROM usuarios WHERE usuario='".$_POST["usuario"]."'");
   
$pass2 $_POST["pass2"]; 
   
$pass3 $_POST["pass3"]; 
   
$usuario $_POST["usuario"];
   if (
$select $pass3){
   echo 
" $usuario La contraseña $pass1 es igual a la anterior selecciona otra por favor"
   }else{
   echo 
"voy y lo cambio, o sea despues pongo el codigo para reemplazarlo aqui";
}
}
?>