$tm) return false; // key is wrong $prehash = $pws[$un] . "DSSSSMI" . $key; $goodhash = sha1($prehash); if ($hash != $goodhash) return false; return true; } // Validate the login, DIES on failure function validate() { global $pws; $failmsg = "Invalid login, perhaps your session has expired."; if (!isset($_COOKIE['DSSS_SMI_UN']) || !isset($_COOKIE['DSSS_SMI_KEY']) || !isset($_COOKIE['DSSS_SMI_HASH'])) die($failmsg); global $un; $un = $_COOKIE['DSSS_SMI_UN']; if (!chkkeyhash($_COOKIE['DSSS_SMI_UN'], $_COOKIE['DSSS_SMI_KEY'], $_COOKIE['DSSS_SMI_HASH'])) die($failmsg); } // Export the pws array, return false on failure function savepws() { global $pws; $handle = fopen("pws.php", "w"); if ($handle === false) return false; flock($handle, LOCK_EX); fwrite($handle, " \"" . $pws[$un] . "\",\n"); } fwrite($handle, "0);\n" . "?>\n"); flock($handle, LOCK_UN); fclose($handle); return true; } // Add a user, return true on success function adduser($un, $pw) { global $pws; if (isset($pws[$un])) return false; $pws[$un] = sha1($pw); return savepws(); } // Change a user's password: Assumes the user's old password has been checked function chpasswd($un, $newpw) { global $pws; if (!isset($pws[$un])) return false; $pws[$un] = sha1($newpw); return savepws(); } ?>