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,108, 111);
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ña Actual:
<input name="pass2" type="text" id="pass2" size="32" />
Nueva Contraseñ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";
}
}
?>