2010-02-28 13:04:07 +00:00
|
|
|
<?php
|
|
|
|
|
|
|
|
function authenticate($username,$password)
|
|
|
|
{
|
2011-03-19 20:23:23 +00:00
|
|
|
$encrypted_old = md5($password);
|
|
|
|
$sql = "SELECT username,password FROM `users` WHERE `username`='".$username."'";
|
2010-02-28 13:04:07 +00:00
|
|
|
$query = mysql_query($sql);
|
2011-03-19 20:23:23 +00:00
|
|
|
$row = @mysql_fetch_assoc($query);
|
2011-03-16 18:28:52 +00:00
|
|
|
if ($row['username'] && $row['username'] == $username)
|
2010-02-28 13:04:07 +00:00
|
|
|
{
|
2011-03-19 20:23:23 +00:00
|
|
|
// Migrate from old, unhashed password
|
|
|
|
if ($row['password'] == $encrypted_old)
|
|
|
|
{
|
2011-03-20 21:13:59 +00:00
|
|
|
$query = mysql_query("DESCRIBE users password");
|
|
|
|
$row = mysql_fetch_assoc($query);
|
|
|
|
if ($row['Type'] == 'varchar(34)')
|
|
|
|
{
|
|
|
|
changepassword($username,$password);
|
|
|
|
}
|
2011-03-19 20:23:23 +00:00
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
if ($row['password'] == crypt($password,$row['password']))
|
|
|
|
{
|
|
|
|
return 1;
|
|
|
|
}
|
2010-02-28 13:04:07 +00:00
|
|
|
}
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
2010-03-06 00:00:05 +00:00
|
|
|
function passwordscanchange()
|
|
|
|
{
|
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
|
2011-03-19 20:23:23 +00:00
|
|
|
/**
|
|
|
|
* From: http://code.activestate.com/recipes/576894-generate-a-salt/
|
|
|
|
* This function generates a password salt as a string of x (default = 15) characters
|
|
|
|
* ranging from a-zA-Z0-9.
|
|
|
|
* @param $max integer The number of characters in the string
|
|
|
|
* @author AfroSoft <scripts@afrosoft.co.cc>
|
|
|
|
*/
|
|
|
|
function generateSalt($max = 15)
|
|
|
|
{
|
|
|
|
$characterList = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
|
|
|
|
$i = 0;
|
|
|
|
$salt = "";
|
|
|
|
do
|
|
|
|
{
|
|
|
|
$salt .= $characterList{mt_rand(0,strlen($characterList))};
|
|
|
|
$i++;
|
|
|
|
} while ($i <= $max);
|
|
|
|
|
|
|
|
return $salt;
|
|
|
|
}
|
|
|
|
|
2010-06-21 15:39:43 +00:00
|
|
|
function changepassword($username,$password)
|
2010-03-06 00:00:05 +00:00
|
|
|
{
|
2011-03-19 20:23:23 +00:00
|
|
|
$encrypted = crypt($password,'$1$' . generateSalt(8).'$');
|
2010-06-21 15:39:43 +00:00
|
|
|
$sql = "UPDATE `users` SET `password` = '$encrypted' WHERE `username`='".$username."'";
|
2010-03-06 00:00:05 +00:00
|
|
|
$query = mysql_query($sql);
|
|
|
|
}
|
|
|
|
|
2010-03-06 01:10:05 +00:00
|
|
|
function auth_usermanagement()
|
|
|
|
{
|
|
|
|
return 1;
|
|
|
|
}
|
2011-03-12 08:50:47 +00:00
|
|
|
|
2010-03-06 01:10:05 +00:00
|
|
|
function adduser($username, $password, $level, $email = "", $realname = "")
|
|
|
|
{
|
2011-03-18 16:56:02 +00:00
|
|
|
if (!user_exists($username))
|
|
|
|
{
|
2011-03-19 20:23:23 +00:00
|
|
|
$encrypted = crypt($password,'$1$' . generateSalt(8).'$');
|
|
|
|
mysql_query("INSERT INTO `users` (`username`,`password`,`level`, `email`, `realname`) VALUES ('".mres($username)."','".mres($encrypted)."','".mres($level)."','".mres($email)."','".mres($realname)."')");
|
2011-03-18 16:56:02 +00:00
|
|
|
}
|
2011-03-12 08:50:47 +00:00
|
|
|
|
2010-03-06 01:10:05 +00:00
|
|
|
return mysql_affected_rows();
|
|
|
|
}
|
|
|
|
|
|
|
|
function user_exists($username)
|
|
|
|
{
|
2011-03-19 20:23:23 +00:00
|
|
|
return @mysql_result(mysql_query("SELECT * FROM users WHERE username = '".mres($username)."'"),0);
|
2010-03-06 01:10:05 +00:00
|
|
|
}
|
2011-03-12 08:50:47 +00:00
|
|
|
|
2010-03-06 01:15:52 +00:00
|
|
|
function get_userlevel($username)
|
|
|
|
{
|
|
|
|
$sql = "SELECT level FROM `users` WHERE `username`='".mres($username)."'";
|
2010-03-06 01:19:06 +00:00
|
|
|
$row = mysql_fetch_array(mysql_query($sql));
|
2010-03-06 01:15:52 +00:00
|
|
|
return $row['level'];
|
|
|
|
}
|
2011-03-12 08:50:47 +00:00
|
|
|
|
2010-03-06 01:22:09 +00:00
|
|
|
function get_userid($username)
|
|
|
|
{
|
|
|
|
$sql = "SELECT user_id FROM `users` WHERE `username`='".mres($username)."'";
|
|
|
|
$row = mysql_fetch_array(mysql_query($sql));
|
|
|
|
return $row['user_id'];
|
|
|
|
}
|
2011-03-12 08:50:47 +00:00
|
|
|
|
2010-06-21 15:39:43 +00:00
|
|
|
?>
|