Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/10/2011, 09:03
miguelcalla
(Desactivado)
 
Fecha de Ingreso: octubre-2011
Mensajes: 164
Antigüedad: 12 años, 6 meses
Puntos: 1
apoyo con codigo de un Post recuperar clave

tengo el sgte codigo de un POST acerca de sistema de recuperacion de clave , y no funciona o esque estoy haciendo algo mal

cuando ingreso el email pulso en boton ir y me muestra pantalla en blaco y en la parte de la url muestra esto:

http://localhost/recuperar_clave/[email protected] om&ir=Ir



ayuda porf.

Cita:
tabla: usuario
campos:id,email,usuario,password,activate,estado
index1.php
Código HTML:
<head>cual es su mail</head>
<p></p>
<body>
	<form name="form_a" action="recuperar.php" />
		<!--<table border="0" align="center">-->
			<p></p>
			<input type="text" name="email" id="email" size="60"/>
			<p></p>
			<input type="submit" name="ir" value="Ir">
		<!--</table>-->
	</form>
</body> 
index2.php
Código HTML:
<head>recuperar clave</head>
<body >
	<form name="form_a" action="recuperar_2.php" />
			<p></p>password anterior
			<input type="text" name="password" id="password" />
			<br>nuevo password
			<input type="text" name="password2" id="password2" />
			<br>
			<p></p>
			<input type="submit" name="btn" id="btn" value="Enviarte"/>
	</form>
</body> 

recuperar.php
Código PHP:
<?php 
//conectamos a la BD
$conexion mysql_connect('localhost','rreeuser','2011')or die ('Ha fallado la conexión: '.mysql_error());
        
mysql_select_db('rree')or die ('Error al seleccionar la Base de Datos: '.mysql_error());

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

function 
mysql_escape($cadena) {         //funcion pasada por okram para limpiar campos escritos por usuarios
    
if(get_magic_quotes_gpc() != 0) {     //y aplicar mysql_real_escape_string a las variables y stripslashes si la magic cuotes estan activadas
        
$cadena stripslashes($cadena);
    }
    return 
mysql_real_escape_string($cadena);
}  
$email quitar(isset($_POST ['email']));
 
$_SESSION['email'] = $email//guardamos email de la tabla, en una variable de session para recuperarlo en el siguiente form

if(isset($_POST['email']) ) {  //comprovamos que el campo email trae algun valor

         
$query   "SELECT * FROM usuario WHERE  email='$email'";  //seleccionamos la informacion de la BD correspondiente al email del user
         
$result mysql_query($query $conexion) or die ( mysql_error() );
            while (
$row   mysql_fetch_array($result)){ 
        
    
                      if (isset(
$row['password'])){  //compruebo que exista el password del email enviado


                
$_SESSION['username'] = $row['usuario'];//guardamos el usuario en una variable de sesion
                //para no tener problemas con header uso el siguiente script de java para redirigir
            
?>
            <SCRIPT LANGUAGE="javascript">
            header ("location: index2.php");
            </SCRIPT>
            <?php     
    
}else{
        
        echo 
"El email no esta registrado en nuestra base de datos.";
          
         }}}
          
?>
recuperar_2.php
Código PHP:
<?php
session_start
(); //abrimos la sesion para poder despues pasar variables de una pagina a otra

//datos para establecer la conexion con la base de mysql.
$conexion=mysql_connect('localhost','rreeuser','2011')or die ('Ha fallado la conexión: '.mysql_error());
mysql_select_db('rree')or die ('Error al seleccionar la Base de Datos: '.mysql_error());



function 
quitar($mensaje//funcion para quitar caracteres no permitidos
{
    
$nopermitidos = array("'",'\\','<','>',"\"",";","$","%","&","/","|","{","}","[","]","+","#");
    
$mensaje str_replace($nopermitidos""$mensaje);
    return 
$mensaje;
}
function 
mysql_escape($cadena) {
    if(
get_magic_quotes_gpc() != 0) {
        
$cadena stripslashes($cadena);
    }
    return 
mysql_real_escape_string($cadena);
}  


if (isset(
$_POST["password"])) {
    
    
$password quitar($_POST["password"]); //variable que viene del campo del form pasword
    
$password2 quitar($_POST["password2"]);//variable que viene del campo del form pasword2
                
$password mysql_escape($password);  //aplico la funcion mysql_escape
                
$password2 mysql_escape($password2);

    
$password md5($password); // codificamos los password con md5
    
$password2 md5($password2);
    
$email $_SESSION['email']; // recogemos la variable email y username que guardamos en la sesion en el script anterior
                
$username $_SESSION['username']; 


    
    
    
// Hay campos en blanco
    
if($password==NULL|$password2==NULL) {
        echo 
"un campo está vacio.";
    
        }else{
                              
// si coiciden los codigos de seguridad
 #           if (quitar($_SESSION['tmptxt_seg']) !== quitar($_POST['tmptxt_seg'])) { 
 #                   echo "Introdujo mal el codigo de seguridad.";              
 #       } else { 
        
    
        // ¿Coinciden las contraseñas?
        
if($password!=$password2) {
            echo 
"Las contraseñas no coinciden";
            
formRegistro();
        }else{
        
        
        
$query "UPDATE usuario
            SET password = '$password' WHERE   usuario = '$usuario' OR email ='$email' " 
;
                
mysql_query($query) or die(mysql_error());    
                
            
//obtengo los datos del usuario para mandar el email    
            
$result "SELECT * FROM usuario WHERE password = '$password'";
                    
             
$result mysql_query($result) or die ( mysql_error() );        
        
            
$row mysql_fetch_array($result); 
                
        echo 
"La activacion de su nuevo password  tuvo exito.";
               
                         
// Datos del email

$nombre_origen    "Lo que sea";
$email_origen     "[email protected]";
$email_copia      "[email protected]";
$email_ocultos    "[email protected]";
$email_destino    "".$row['email']."";  
//$email_destino    = "[email protected]";  //cambiar esta linea por la de encima cuando se termine la aplicacion para pruebas pon tu email


$asunto           "Activacion de nueca contraseña, guarde este email.";

$mensaje          '<table width="629" border="0" cellspacing="1" cellpadding="2">
  <tr>
    <td width="623" align="left"></td>
  </tr>
  <tr>
    <td bgcolor="#2EA354"><div style="color:#FFFFFF; font-size:14; font-family: Arial, Helvetica, sans-serif; text-transform: capitalize; font-weight: bold;"><strong>     Estos son sus datos  '
.$row['usuario'].'</strong></div></td>
  </tr>
  <tr>
    <td height="95" align="left" valign="top"><div style=" color:#000000; font-family:Arial, Helvetica, sans-serif; font-size:12px; margin-bottom:3px;"> USUARIO: '
.$row['usuario'].'</strong><br><br><br>
          
          <strong>SU EMAIL : </strong>'
.$row['email'].'</strong><br><br><br>
          <strong>REACTIVO SU NUEVA CONTRASEÑA SIN NINGUN INCIDENTE.</strong><br><br>
          <strong>GRACIAS POR CONFIAR EN CEVIT.</strong><br>
          <strong>PRONTO ACTUALIZAREMOS CONTENIDOS, ESTATE ATENTA/O.</strong><br>
    </div>
    </td>
  </tr>
</table>'
;   

$formato          "html";

//*****************************************************************//
$headers  "From: $nombre_origen <$email_origen> \r\n";
$headers .= "Return-Path: <$email_origen> \r\n";
$headers .= "Reply-To: $email_origen \r\n";
$headers .= "X-Sender: $email_origen \r\n";
$headers .= "X-Priority: 3 \r\n";
$headers .= "MIME-Version: 1.0 \r\n";
$headers .= "Content-Transfer-Encoding: 7bit \r\n";

//*****************************************************************//
 
if($formato == "html")
 { 
$headers .= "Content-Type: text/html; charset=iso-8859-1 \r\n";  }
   else
    { 
$headers .= "Content-Type: text/plain; charset=iso-8859-1 \r\n";  }

if (@
mail($email_destino$asunto$mensaje$headers)) 
    { } 
     
    }
    }
    }
    
?>