$t)
{
$sel = ($v == $currentval) ? " checked='checked'" : "";
$ret .= $gap." ".$t."\n";
// $gap = " ";
$gap = "
";
}
return $ret;
}
$recordCount = 0;
$emailProcess = 0;
$saltProcess = 0;
$cantProcess = 0;
$cookieChange = '';
require(HEADERF);
$pc_db = new db;
if (isset($_POST['GetOnWithIt']))
{
$doBackup = varset($_POST['doDBBackup'],0);
$saltConvert = varset($_POST['convertToSalt'],0);
$emailGen = varset($_POST['EmailPasswords'],0);
if ($doBackup == 2)
{
$saltConvert = 0; // Don't do conversions if restoring database
$emailGen = 0;
}
$error = '';
if ($emailGen == 1)
{ // Scan DB for salted passwords
}
//-----------------------------------------
// Backup user DB (selected fields)
//-----------------------------------------
if (!$error && ($doBackup == 1))
{
echo LAN_PCONV_13;
if ($pc_db->db_Table_exists('user_backup'))
{ // Completely delete table - avoids problems with incorrect structure
$pc_db->db_Select_gen('DROP TABLE `#user_backup` ');
}
$qry = "CREATE TABLE `#user_backup` (
user_id int(10) unsigned NOT NULL,
user_name varchar(100) NOT NULL default '',
user_loginname varchar(100) NOT NULL default '',
user_password varchar(50) NOT NULL default '',
user_email varchar(100) NOT NULL default '',
user_prefs text NOT NULL,
PRIMARY KEY (user_id),
UNIQUE KEY user_name (user_name)
) ENGINE=MyISAM;"; // If not exists, of course
if (!$pc_db->db_Select_gen($qry))
{
$error = LAN_PCONV_20;
}
if (!$error)
{
$qry = "INSERT INTO `#user_backup` SELECT user_id, user_name, user_loginname, user_password, user_email, user_prefs FROM `#user` ";
if ($pc_db->db_Select_gen($qry) === FALSE)
{
$error = LAN_PCONV_21;
}
}
if (!$error) echo '...'.LAN_PCONV_14.'
';
}
//--------------------------------------
// Restore from backup
//--------------------------------------
if (!$error && ($doBackup == 2))
{
echo LAN_PCONV_28;
if (!$pc_db->db_Table_exists('user_backup'))
{
$error = LAN_PCONV_28;
}
if (!$error && $pc_db->db_Select('user_backup','*'))
{
while ($row = $pc_db->db_Fetch())
{
$uid = $row['user_id'];
unset($row['user_id']);
$sql->db_UpdateArray('user',$row," WHERE `user_id`={$uid}"); // Intentionally use $sql here
if (USERID == $uid)
{
$cookieChange = $row['user_password'];
}
}
}
else
{
$error = LAN_PCONV_30;
}
if (!$error) echo '...'.LAN_PCONV_14.'
';
}
//--------------------------------------
// Change passwords
//--------------------------------------
if (!$error && $emailGen || $saltConvert)
{ // Run through the DB doing conversions.
echo LAN_PCONV_17;
if ($pc_db->db_Select('user', 'user_id, user_name, user_loginname, user_password, user_email, user_prefs', '') === FALSE)
{
$error = LAN_PCONV_18;
}
if (!$error)
{
while ($row = $pc_db->db_Fetch())
{ // Do conversions
$recordCount++;
$newData = array();
$newPrefs = '';
$user_prefs = e107::getArrayStorage()->unserialize($row['user_prefs']);
if(!$user_prefs && $row['user_prefs']) $user_prefs = unserialize($row['user_prefs']);
if ($saltConvert)
{
if ($user_info->canConvert($row['user_password']))
{
$newData['user_password'] = $user_info->ConvertPassword($row['user_password'], $row['user_loginname']);
$saltProcess++;
if (USERID == $row['user_id'])
{
$cookieChange = $newData['user_password'];
}
}
else
{
$cantProcess++;
}
}
if (($emailGen == 1) && $user_info->canConvert($row['user_password']))
{
$user_prefs['email_password'] = $user_info->ConvertPassword($row['user_password'], $row['user_email']);
$emailProcess++;
}
elseif ($emailGen == 2)
{
unset($user_prefs['email_password']);
$emailProcess++;
}
if (count($user_prefs)) $newPrefs = e107::getArrayStorage()->serialize($user_prefs); else $newPrefs = '';
if($newPrefs != $user_prefs)
{
$newData['user_prefs'] = $newPrefs;
}
if (count($newData)) $sql->db_UpdateArray('user',$newData, " WHERE `user_id`={$row['user_id']}");
}
}
echo str_replace('--TOTAL--',$recordCount, LAN_PCONV_22).'
';
echo str_replace('--TOTAL--',$saltProcess, LAN_PCONV_24).'
';
echo str_replace('--TOTAL--',$emailProcess, LAN_PCONV_23).'
';
echo str_replace('--TOTAL--',$cantProcess, LAN_PCONV_25).'
';
echo '
';
}
if ($error)
{
echo '
'.$error.'
';
require_once(FOOTERF);
exit;
}
if ($cookieChange)
{
// echo "Cookie Updated.
";
$cookieval = USERID.".".md5($cookieChange); // Just changed admin password, and hence cookie
cookie($pref['cookie_name'], $cookieval);
}
}
$text =
"