Difference between revisions of "Administration - I accidentally lost my admin account! What can I do" From Online Manual

Jump to: navigation, search
(restored scripts for SMF 1.1 and 2.0)
Line 40: Line 40:
  
 
====SMF 2.0====
 
====SMF 2.0====
{{code|1=<?php
+
{{code|1=<nowiki><?php
  
 
// Pick a username to be the new admin user -- use the login name, not the display name
 
// Pick a username to be the new admin user -- use the login name, not the display name
Line 56: Line 56:
 
$adminsquirt = $smcFunc['db_query']('', $querystring, array());
 
$adminsquirt = $smcFunc['db_query']('', $querystring, array());
  
?>}}
+
?></nowiki>}}
  
 
==But I need admin to activate the new account before I can log in==
 
==But I need admin to activate the new account before I can log in==

Revision as of 10:23, 6 October 2011

If you accidentally delete your administrator account, you will need to register again and run the appropriate query for your SMF version.

If you lose your administrator membergroup and privileges due to a mistake or conversion, you will need to run the appropriate query for your SMF version, but you do not have to register your account again.

Setting a new user account up to be admin

The below queries will add you back as an administrator on an SMF forum. Don't forget to replace smf_ with your database prefix. These queries can be run from within phpMyAdmin, or, if you do not have phpMyAdmin installed, from a simple single-purpose script.

SMF 1.1

Run this query:

UPDATE smf_members SET ID_GROUP = '1' WHERE memberName = 'adminsusername'

SMF 2.0

Run this query:

UPDATE smf_members SET id_group = '1' WHERE member_name = 'adminsusername'

In addition, SMF 2.0 allows you to re-attribute posts through the Forum Maintenance section of your Administration Center (Administration Center > Forum Maintenance > Reattribute User Posts). You just need to fill in the form using the e-mail address or username of the old user account, and the username for the user who is to have those posts. This only works for guest posts (remaining posts from deleted members are considered guest posts).

Creating a single-purpose script

Create a php file called createadmin.php copy it up to your forum directory -- the same directory with SSI.php. To run it, access it from your browser by URL as createadmin.php. Afterwards, make sure to delete the file from your forum's directory.

SMF 1.1

<?php

// Pick a username to be the new admin user -- use the login name, not the display name
$yourusername='adminusername';

//---------------------------------------------------------------------------

// You shouldn't need to change anything past this point in the script.
//Here we include SSI for globals used within the sql statement
include_once('SSI.php');
global $db_prefix;

//  Now run the query.
$querystring='UPDATE ' . $db_prefix . 'members
SET ID_GROUP = \'1\' WHERE memberName = \ . $yourusername . '\;
$adminsquirt = db_query($querystring, __FILE__,  __LINE__);

?>

SMF 2.0

<?php

// Pick a username to be the new admin user -- use the login name, not the display name
$yourusername='adminusername';

//---------------------------------------------------------------------------

// You shouldn't need to change anything past this point in the script.
//Here we include SSI for globals used within the sql statement
include_once('SSI.php');

//  Now run the query.
$querystring='UPDATE {db_prefix}members
SET id_group = \'1\' WHERE member_name = \'' . $yourusername . '\'';
$adminsquirt = $smcFunc['db_query']('', $querystring, array());

?>

But I need admin to activate the new account before I can log in

Solution: turn off account activation altogether. In phpMyAdmin, or in a single-purpose script, run the appropriate query for your version of SMF. Afterwards, be sure to set account activation back the way you want it.

SMF 1.1

UPDATE smf_members SET is_activated = 1 WHERE memberName = 'yourusername';

SMF 2.0

UPDATE smf_members SET is_activated = 1 WHERE member_name = 'yourusername';

But I forgot my password and I cannot create a new account

In phpMyAdmin, or in a single-purpose script, run this query:

UPDATE {$db_prefix}_settings SET value = 0 WHERE variable = 'registration_method';

Afterwards, be sure to set the registration method the way you want it.

I need to create a new account for admin, but my forum is in maintenance mode

For more information about setting the value of $maintenance in your Settings.php file, see $maintenance