Here is the structure of the table I am using along with the indexes and the coding I am using to create a new password by submiting the email address of the user.
CREATE TABLE members (
username varchar(25) NOT NULL default '',
password varchar(255) NOT NULL default '',
userid int(25) NOT NULL auto_increment,
country varchar(40) NOT NULL default '',
last_login datetime NOT NULL default '0000-00-00 00:00:00',
email varchar(60) NOT NULL default '',
notification enum('0','1') NOT NULL default '0',
user_level enum('0','1','2','3') NOT NULL default '0',
signup_date datetime NOT NULL default '0000-00-00 00:00:00',
mail_notification datetime NOT NULL default '0000-00-00 00:00:00',
PRIMARY KEY (userid),
KEY username (username),
KEY last_login (last_login),
KEY email (email)
) ENGINE=InnoDB
function makeRandomPassword() {
$salt = "abchefghjkmnpqrstuvwxyz0123456789";
srand((double)microtime()*1000000);
$i = 0;
while ($i <= 7) {
$num = rand() % 33;
$tmp = substr($salt, $num, 1);
$pass = $pass . $tmp;
$i++;
}
return $pass;
}
$result = mysql_query("select username from members where email='$email'") or die (mysql_error());
while ($row = mysql_fetch_array($result)){
$username= $row["username"];
}
$random_password = makeRandomPassword();
$db_password = md5($random_password);
$sql = mysql_query("UPDATE members SET password='$db_password' WHERE username ='$username'");