// You can place JavaScript like..." />

webmail password reset

{source}
<!-- You can place html anywhere within the source tags -->


<script language="javascript" type="text/javascript">
// You can place JavaScript like this

</script>
<?php
// You can place PHP like this

?>
<style>
tbody {color:blue;}
</style>
<?php

$message = "";
$found = $valid = false;

if ($_POST['username'] != "") {
$domain_pos = strpos($_POST['username'], "@");
if ($domain_pos === false) {
$username = $_POST['username'];
$domain = $_POST['domain'];
} else {
$username = substr($_POST['username'], 0, $domain_pos);
$domain = substr($_POST['username'], $domain_pos + 1);
}

$current_password = $_POST['current_password'];
$new_password1 = $_POST['new_password1'];
$new_password2 = $_POST['new_password2'];

$root = $_SERVER['DOCUMENT_ROOT'];
$path_elements = explode('/', $root);
$root = "/{$path_elements[1]}/{$path_elements[2]}"; // for bluehost, extracts homedir ex: /homeN/blueuser may work with other hosts?
$shadow_file = "$root/etc/$domain/shadow";

// check if the shadow file exists. if not, either an invalid
// domain was entered or this may not be a bluehost account...?
if (file_exists($shadow_file)) {
// compare the new passwords entered to ensure they match.
if ($new_password1 == $new_password2) {
if (trim($new_password1) != "") {
// get the contents of the shadow file.
$shadow = file_get_contents($shadow_file);
$lines = explode("\n", $shadow);

// go through each line of shadow file, looking for username entered.
for ($i = 0; $i < count($lines); $i++) {
$elements = explode(":", $lines[$i]);
// found the user...
if ($elements[0] == $username) {
$found = true;
$passwd = explode("$", $elements[1]);
$salt = $passwd[2]; // get the salt currently used

// crypt the "Current Password" entered by user. Can use either builtin
// php crypt function or command line openssl command.
if (CRYPT_MD5 == 1) { // indicates whether or not the crypt command supports MD5.
$current = crypt($current_password, '$1$'.$salt.'$');
} else {
$current = trim(`openssl passwd -1 -salt "$salt" "$current_password"`);
}
// check if the current password entered by the user
// matches the password in the shadow file.
$valid = ($current == $elements[1]);

if ($valid) {
// if they match then crypt the new password using the same salt
// and modify the line in the shadow file with the new hashed password
if (CRYPT_MD5 == 1) {
$new = crypt($new_password1, '$1$'.$salt.'$');
} else {
$new = trim(`openssl passwd -1 -salt "$salt" "$new_password1"`);
}
$elements[1] = $new;
$lines[$i] = implode(":", $elements);
}

break;
}
}

if (!$found) {
$message = "The username you entered is not valid .";
} else if (!$valid) {
$message = "The password you entered is not valid .";
} else {
// write the new contents of the shadow back to the shadow file.
$shadow = implode("\n", $lines);
file_put_contents($shadow_file, $shadow);
$message = 'Your password has been updated .';
}
} else {
$message = "Your password cannot be blank .";
}
} else {
$message = "Both new passwords must match .";
}
} else {
$message = "The domain you entered is not valid .";
}
}

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<title>Change Password</title>
</head>
<body>
<?php
if ($message != "") {
$color = $found && $valid ? "green" : "red";
echo "<span style=\"color:$color;\">$message</span>";
}
?>
<form action="" method="post">
<input type="hidden" name="domain" value="cmfionline.org" />
<table>
<tbody>
<tr>
<td><label for="username">Email Address </label></td>
<td><input name="username" id="username" type="text" /></td>
</tr>
<tr>
<td><label for="current_password">Current Password </label></td>
<td><input name="current_password" id="current_password" type="password" /></td>
</tr>
<tr>
<td><label for="new_password1">New Password </label></td>
<td><input name="new_password1" id="new_password1" type="password" /></td>
</tr>
<tr>
<td><label for="new_password2">Confirm Password </label></td>
<td><input name="new_password2" id="new_password2" type="password" /></td>
</tr>
<tr>
<td colspan="2" style="text-align:center;">
<input type="submit" value="Change Password " />
</td>
</tr>
</tbody>
</table>
</form>
</body>
</html>
{/source}

Comments (0)

Rated 0 out of 5 based on 0 voters
There are no comments posted here yet

Leave your comments

  1. Posting comment as a guest.
Rate this post:
0 Characters
Attachments (0 / 3)
Share Your Location

Newsletter Signup

cmfi_logo_en_new_589x500.png

Ave. Zacharias Tanee Fomum, P.O. Box 385, Bertoua, Cameroon

  • dummy+1 (613) 298-2449

  • dummy+47 454 12 804

  • dummy info@ztfministry.org

Newsletter Signup

Please enable the javascript to submit this form

Copyright © 2019 Christian Missionary Fellowship International | Zach Fomum Ministry