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"> <font color="#FFFFFF" face="Arial, Helvetica" size="3"><b> Inicio de sesión</b></font> </td>
</tr>
<tr>
<td colspan="2" align="center"><? echo $_SESSION["error"] ; ?></td>
</tr>
<TR>
<TD width="137" height="37" align="left"> 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"> 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>';
}
}
}
?>