Ver Mensaje Individual
  #1 (permalink)  
Antiguo 02/06/2009, 13:11
jochite
 
Fecha de Ingreso: septiembre-2008
Mensajes: 185
Antigüedad: 15 años, 6 meses
Puntos: 1
recuperar contraseña olvidada

He encontrado este aporte y querría implementarlo en mi web.
Como se puede ver el campo username lo quiero utilizar como campo de
e-mail .

Un poco más abajo también comenta que las variables de conexion se suelen poner en un fichero de configuracion concretamente en include("config.php");

Querría preguntaros dos cuestiónes:

¿ Este código os parece correcto ? y la segunda cuestión ¿ que debo incluir exactamente en el config.php?

Haber si me podeis decir algo , solucionar este punto sería un gran avance
en la web




<?php

// Este fichero recibe y procesa los datos del formulario de
recuperacion de contraseña

// en el que se escriben usuario y email

// recogemos las variables enviadas por el formulario


$nombreusuario=$_POST['username'];


// Conectamos a la base de datos

$con=mysql_connect('localhost','xxxxx','xxxx')or die ('Ha fallado la conexión: '.mysql_error());
mysql_select_db('base_ippcv')or die ('Error al seleccionar la Base de Datos: '.mysql_error());



// Las variables de conexion se suelen poner en un fichero de configuracion que se incluye

include("config.php");



// Consultamos si existe $nombreusuario + $emailusuario

$res=mysql_query("SELECT username FROM usuarios WHERE username='$username'");


if (mysql_num_rows($res)==0) {

// Si no existe, datos incorrectos y fin del proceso y volvemos al formulario de recuperacion

echo "Email no existe en la base de datos.";

}

else {

// Si existe, buscamos en la bd

$res=mysql_query("SELECT username,password FROM usuarios WHERE username='$username',password='$random'");
$row=mysql_fetch_assoc($res);

//Generar contraseña aleatoria

function generar_id($length)
{
$str = "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLM NOPQRSTUVWXYZ";

for($i=0;$i<$length;$i++)
$key .= $str[mt_rand(0,strlen($str)-1)];

return $key;
}

$random = generar_id(15);


// enviamos el email de recuperacion

$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
mail($email, "Recuperación", "Sus datos en nuestra web son: $username, $random, www.i.org", $headers);

$random=md5($random);

$query = "UPDATE usuarios
SET password = '$random' WHERE username ='$username' " ;
mysql_query($query) or die(mysql_error());

}

?>