Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: hamedm en 22 Diciembre 2013, 21:38 pm



Título: Ayuda con recuperacion de password
Publicado por: hamedm en 22 Diciembre 2013, 21:38 pm
Hola Hackers,

Estaba editando mi sitio, pero lo que pasa, es que me esta fallando una parte, la cual es Timers-Pagina Oficial de Programacion de Hamed y Ardila (http://www.timers.com.co/hamed/recuperar_contrasena.php), ingreso el email que es hamedmohseni@hotmail.com, luego me manda la url, acceso al pass.php, cuando quiero cambiar la password, me dice que no existe ese email.

Aqui les muestro el codigo de recuperar_contrasena.php:
<div class="login">
<form id="form1" name="form1" method="post" action="recuperar_contrasena.php">
  Tu email<br />
  <input type="text" name="mail" id="mail" />
  <br />
  <br />
<input type="submit" name="button" id="button" value="Recuperar" />
</form>
</div>
</section>
<?php
if($_POST['button']){
if($_POST['mail']){

$mail = htmlentities($_POST['mail']);

$link = mysql_connect ($ip, $user, $pass);
                mysql_select_db($bd,$link);

$queEmp = "SELECT * FROM usuarios WHERE email='$mail'";
$resEmp = mysql_query($queEmp, $link) or die(mysql_error());
$totEmp = mysql_num_rows($resEmp);
if($totEmp == 0){
echo '<div style="border-radius:3px;padding:10px;background:#eb5d5d;border:1px solid red;color:#f5f5f5;text-shadow:1px 1px #444;width:310px;margin:0 auto;text-align:center;margin-top:10px;">El mail ingresado no existe</div>';
exit();
}

$row = mysql_fetch_assoc($resEmp);
$hash = md5(md5($row['nick']).md5($row['password']));

$headers .= "From:Recuperar password <recuperarcontrasena@sabzgoltab.com>\r\n"; 
$message = "Para recuperar tu contraseña dar click en la url de abajo.
http://www.timers.com.co/hamed/pass.php?id=".$hash."&mail=".$mail."";

if (mail($mail,"Recuperar password",$message,$headers)){
echo '<div style="border-radius:3px;padding:10px;background:#eb5d5d;border:1px solid red;color:#f5f5f5;text-shadow:1px 1px #444;width:310px;margin:0 auto;text-align:center;margin-top:10px;">Se te envio un link a tu mail para cambiar la password</div>';
}
}
}
}else{header('Location: index.php');}
?>
<?php
include('footer.php');
?>
y aqui tienen el codigo del pass.php
<form id="form1" name="form1" method="post" action="pass.php?id=<?=$id?>&mail=<?=$mail?>">
  Nueva contrase&ntilde;a<br />
  <input type="text" name="contrasena" />
  <br />
  <br />
<input type="submit" name="button" id="button" value="Guardar" />
</form>
</div>
</section>
<?
$id = htmlentities($_GET['id']);
$mail = htmlentities($_GET['mail']);
$contrasena = md5($_POST['contrasena']);
if($_POST['button']){
if(isset($id) && isset($mail)){
$link = mysql_connect ($ip, $user, $pass);
                        mysql_select_db($bd,$link);

$queEmp = "SELECT * FROM usuarios WHERE email='$mail'";
$resEmp = mysql_query($queEmp, $link) or die(mysql_error());
$totEmp = mysql_num_rows($resEmp);
if($totEmp == 0){
echo '<div style="border-radius:3px;padding:10px;background:#eb5d5d;border:1px solid red;color:#f5f5f5;text-shadow:1px 1px #444;width:310px;margin:0 auto;text-align:center;margin-top:10px;">El mail ingresado no existe</div>';
exit();
}

$row = mysql_fetch_assoc($resEmp);
$hash = md5(md5($row['nick']).md5($row['password']));

if($hash == $id){
$sql = "UPDATE usuarios SET password='".$contrasena."' WHERE email='$mail'";
mysql_query($sql,$link);
echo '<div style="border-radius:3px;padding:10px;background:#eb5d5d;border:1px solid red;color:#f5f5f5;text-shadow:1px 1px #444;width:310px;margin:0 auto;text-align:center;margin-top:10px;">Contrase&ntilde;a cambiada correctamente</div>';
exit();
}
}
}
}
?>
Espero su ayuda, Muchas Gracias


Título: Re: Ayuda con recuperacion de password
Publicado por: el-brujo en 24 Diciembre 2013, 13:03 pm
Mira los logs de errores a ver si se están guardadon los registros en la base de datos (MySQL).

Añade el código de error_reporting en tus scripts php mientras no funcionen para tener más información. Te será mucho más fácil para detectar si algo falla.

Código
  1. error_reporting(E_ERROR | E_WARNING | E_PARSE);


Código
  1. ini_set('display_errors', 1);
  2. error_reporting(E_ALL ^ E_NOTICE);
  3.  


Código
  1. <?php
  2. ini_set('display_errors', TRUE);
  3. ini_set('display_startup_errors', TRUE);
  4. //Note:  Do not include the opening and closing PHP tags when you copy this code
  5. ?>