Ver Mensaje Individual
  #1 (permalink)  
Antiguo 14/12/2008, 17:56
binagol
 
Fecha de Ingreso: agosto-2008
Ubicación: Buenos Aires
Mensajes: 247
Antigüedad: 15 años, 8 meses
Puntos: 6
ayuda con: recuperar contraseña usuarios olvidadizos....

hola a todos, estoy armando un codigo para agregar a mi pagina...
es un codigo de esos que si te olvidas la cotraseña, te manda un link con una pagina para poder reestablecerla...
el problema, es que no funciona bien...
les explico que hace: carga el formulario inicioal, agrega el mensaje de error y sae recarga indefinidamente.... osea... nunca termina...

que es lo que falla?????

se que estoy haciendo algo mal... les paso a mostrar el codigo:



Código PHP:
<?php
session_start
();

//conectamos a la BD
$dbhost='localhost'
$dbusername='user'
$dbuserpass='password'
$dbname='_propiedades'
$tabla='usuarios';
mysql_connect ($dbhost$dbusername$dbuserpass); 
mysql_select_db($dbname) or die('Cannot select database'); 


//funciones para quitar caracteres no permitidos
  
function clean_mail($mensaje
    {
     
$nopermitidos = array("'",'\\','<','>',"\"",";","$","%","&","/","|","{","}","[","]","+","#"," ");
     
$mail str_replace($nopermitidos""$mensaje);
     return 
$mensaje;
  }

  function 
clean_text($mensaje)
  {
     
$nopermitidos = array("'",'\\','<','>',"\"",";","$","%","&","/","|","{","}","[","]","+","#"," ","@");
     
$username str_replace($nopermitidos""$mensaje);
     return 
$mensaje;
  }
   
  function 
mysql_escape($cadena// funcion pasada por okram para limpiar campos escritos por usuarios
  
{                              // y aplicar mysql_real_escape_string a las variables y stripslashes si la magic cuotes estan activadas
     
if(get_magic_quotes_gpc() != 0
     {     
       
$cadena stripslashes($cadena);
     }
     return 
mysql_real_escape_string($cadena);
  } 
  
  function 
randomText($length) {   //FUNCION PARA CREAR UNA CLAVE ALEATORIA
    
$pattern "123456789PIUYTREWQASDFGHJKLMNBVCXZ123456789PLMK1IJNBHUYGVC123456789FTRDXZSEWAQWSDERFTGYHUJ123569876543ERDFREDESWQASWQASDGHGTY"
    for(
$i=0;$i<$length;$i++) { 
      
$key .= $pattern{rand(0,35)}; 
    } 
    return 
$key



//DIFERENCIACION DE ACCION DEL MAIL Y PRIMER INGRESO.

if (isset($_GET['id']))
{
  
$id $_GET['id'];
  
//obtengo los datos del usuario para mandar el email    
  
$result "SELECT * FROM usuarios WHERE aleatorio = '$id'";
  
$row mysql_fetch_array($query) or die ( mysql_error() );

  if (!isset(
$row['aleatorio'])){ 
    
$id=""
  }else{ 
    
$_SESSION['estado']="regenerar";
    
$_SESSION['id']=$id;
  }
}else{
  
$_SESSION['id']="";
  
$_SESSION['estado']="formulario";
}


//FORMULARIO DE REGENERACION DE CLAVE
if ($_SESSION['estado']=="formulario")

  if(empty(
$_POST['Login']))
  {

  
//FORMULARiO
  
?><form name="form_regenerate" method="post" action="<?=$PHP_SELF?>">
    <input type="hidden" name="date" value="<?=$datee?>" />
    <table border="1" align="center" cellpadding="0" cellspacing="0" bordercolor="#AA0000" >
      <TR><TD width="272">
        <table width="307" border="0" align="center" cellpadding="0" cellspacing="0" >
            <tr>
              <td height="29" colspan="2" align="left" bgcolor="#AA0000" background="../images/bg-titleblue.gif">&nbsp;<font color="#FFFFFF" face="Arial, Helvetica" size="3"><b>&nbsp;&nbsp;Inicio de sesi&oacute;n</b></font> </td> 
            </tr>
            <tr>
            <td colspan="2" align="center"><? echo $_SESSION["error"] ; ?></td>
          </tr>
            <TR>
            <TD width="137" height="37" align="left">&nbsp;&nbsp;Nombre de Usuario:</TD>
            <TD width="164" align="center" valign="middle"><INPUT maxLength="15" size="15" value=" <? echo $_SESSION['username'];?>" name="username"></TD>
          </TR>
            <tr>
            <td height="37" align="left">&nbsp;&nbsp;E-mail:</td>
              <td align="center" valign="middle"><input name="email" value="" size="25" maxlength="25" id="email" /></td>
            </tr>
            <TR>
              <TD height="37" colspan="2" align="center"><input name="Login" type="submit" value="Login" id="Login" /></TD>
            </TR>
          </table>
      </TD></TR>
    </table>
    </form>';<?
    
    $_SESSION
["error"]="";
  
  } 
   if(
$_POST['Login']=="Login");
  {
  
//SI ESTA MANDADO EN FORMULARIO Y NO ESTA SETEADO EL ESTADO - PRIMERA VERIFICACION

  
      
if ($_POST['email']!="" $_POST['username']!="")
      {
    
        
//limpiamos el mail 
        
$email clean_mail($_POST ['email']);
        
$_SESSION['email'] = $email
     
        
//limpiamos el usuario
        
$username clean_text($_POST ['username']);
        
$_SESSION['username'] = $username;
    
    
        
//consulta y validacion
        
if($_SESSION['email']!="" and $_SESSION['username']!=""
        {  
          
$query  "SELECT * FROM usuarios WHERE email='$email' AND nick='$username'";  //seleccionamos la informacion de la BD correspondiente al email del user
          
$row mysql_fetch_array($query) or die ( mysql_error() );
       
          
//compruebo que exista el password del email enviado
          
if (isset($row['clave']))  
          {  
            
$_SESSION['email'] = $row['email'];
            
$_SESSION['username'] = $row['nick'];//guardamos el usuario en una variable de sesion
            
$_SESSION['date'] = $_POST['date'];
            
$_SESSION['error']="";
            
$direccionaleatoria randomText(40);
            
$_SESSION['direccionaleatoria']= $direccionaleatoria;
            
//se sube a la db el codigo aleatorio.
            
$query "UPDATE usuarios SET aleatorio = '$direccionaleatoria' WHERE nick = '$username' and email ='$email' " ;
            
mysql_query($query) or die(mysql_error());   
                          
            
$_SESSION['estado']="registrado";        
          }else{
            
$_SESSION['error']="No existe ningun usuario registrado con esa direccion de mail. Intente Nuevamente.";
            
$_SESSION['estado']="formulario";
            
/*Header("Location:forgot.php");*/
            
echo'<script language="JavaScript"> document.location.href="forgot.php" </script>';
          }
        }else{
          
$_SESSION['error']="No existe ningun usuario registrado con esa direccion de mail. Intente Nuevamente.";
          
Header("Location:forgot.php");
            
$_SESSION['estado']="formulario";      
          echo
'<script language="JavaScript"> document.location.href="forgot.php" </script>';
        } 
      }else{
        
$_SESSION['error']="Ingrese el Usuario y el e-mail respectivo.";
        
$_SESSION['estado']="formulario";  
        
/*Header("Location:forgot.php");*/
         
echo'<script language="JavaScript"> document.location.href="forgot.php" </script>';
      }
    }
}

          
?>