How to Manually Plaats een gebruiker in een SMF forum gebruiken PHP

Gepost in SMF (Simple Machine Forum), php door ShortLikeAFox op 28 juli, 2008

Dit specifieke voorbeeld is voor SMF 1.1.5. Ik kan niet garanderen dat het zal werken met een andere versie.

Dus u eenvoudige machine Forum Software en handmatig wilt u een gebruiker? Geen probleem. Ik weet dat dit probleem lijkt zeer specifiek, maar de ideeën die hier kan worden aangepast aan andere soorten fora en andere database driven software pakketten als Wordpress. Voordat we in precies hoe dit te doen, laten we eens kijken hoe eenvoudige machine Forums bijhoudt van de gebruikers. In het SMF-database is er een tabel genaamd smf_members. De smf_members structuur ziet er als volgt uit:

Veld Type Null

Sleutel Standaard Extra
ID_MEMBER mediumint (8) unsigned NEE PRI NULL auto_increment
memberName varchar (80) NEE MUL
dateRegistered int (10) unsigned NEE MUL 0
posten mediumint (8) unsigned NEE MUL 0
ID_GROUP smallint (5) unsigned NEE MUL 0
lngfile tinytext NEE MUL
lastLogin int (10) unsigned NEE MUL 0
realname tinytext NEE
instantMessages smallint (5) NEE 0
unreadMessages smallint (5) NEE 0
buddy_list tekst NEE
pm_ignore_list tekst NEE
messageLabels tekst NEE
passwd varchar (64) NEE
emailadres tinytext NEE
personalText tinytext NEE
geslacht tinyint (4) unsigned NEE 0
geboortedatum datum NEE MUL 0001-01-01
websiteTitle tinytext NEE
websiteUrl tinytext NEE
locatie tinytext NEE
ICQ tinytext NEE
AIM varchar (16) NEE
YIM varchar (32) NEE
MSN tinytext NEE
hideEmail tinyint (4) NEE 0
showOnline tinyint (4) NEE 1
timeFormat varchar (80) NEE
handtekening tekst NEE
timeOffset float NEE 0
avatar tinytext NEE
pm_email_notify tinyint (4) NEE 0
karmaBad smallint (5) unsigned NEE 0
karmaGood smallint (5) unsigned NEE 0
usertitle tinytext NEE
notifyAnnouncements tinyint (4) NEE 1
notifyOnce tinyint (4) NEE 1
notifySendBody tinyint (4) NEE 0
notifyTypes tinyint (4) NEE 2
memberIP tinytext NEE
memberIP2 tinytext NEE
secretQuestion tinytext NEE
secretAnswer varchar (64) NEE
ID_THEME tinyint (4) unsigned NEE 0
is_activated tinyint (3) unsigned NEE 1
validation_code varchar (10) NEE
ID_MSG_LAST_VISIT int (10) unsigned NEE 0
additionalGroups tinytext NEE
smileySet varchar (48) NEE
ID_POST_GROUP smallint (5) unsigned NEE MUL 0
totalTimeLoggedIn int (10) unsigned NEE 0
passwordSalt varchar (5) NEE

Gebieden moeten we aandacht besteden aan:

  • memberName - Self Explanitory.
  • dateRegistered - Is niet nodig, maar als niet ingevuld op de datum geregistreerd wordt als 31 december 1969. De datum wordt opgeslagen als een tijdperk tijdstempel. Weet niet hoe te berekenen timestamps in je hoofd? Geen probleem. Ik gebruik het vrij generator gevonden hier.
  • realname - moeten worden geplaatst. Toen ik ben niet zeker of ik alleen herhalen memberName hier.
  • emailadres - Zelf Explanitory.
  • is_activated - Moet worden ingesteld op 1, omdat we zijn handmatig activeren van een lid.
  • ID_POST_GROUP - Ik zal niet liegen. Ik weet niet zeker wat dit is, maar het altijd lijkt te zijn ingesteld op 4. Dus .... Ik heb altijd ingesteld tot en met 4. Niet de beste manier te programmeren, maar wat kan je doen?
  • passwd - Het wachtwoord dat u wilt geven de nieuwe gebruiker. Het is onmogelijk om uit te vinden hoe u zonder te kijken naar de SMF documentatie. De juiste code te versleutelen SMF een wachtwoord voor de database ziet er zo uit:

($memberName).$password) $ passwd = SHA1 (strtolower ($ memberName). $ wachtwoord)

In de bovenstaande regel code, $ wachtwoord is de gebruiker de werkelijke wachtwoord.

Hoe dit te doen:

/ / Eerst verbinding te maken met de SMF-database

$ host = "hostnaam"; / / Host-naam
$ username = "gebruikersnaam"; / / mysql gebruikersnaam
$ mijnwachtwoord = "wachtwoord"; / / Mysql wachtwoord
$ db_name = "gebruikersnaam"; / / Database naam

("cannot connect to server"); mysql_connect ( "$ host", "$ username", "$ mijnwachtwoord") or die ( "kan geen verbinding maken met server");
("cannot select DB"); mysql_select_db ( "$ db_name") or die ( "niet kunt selecteren DB");

$ memberName = "ironMan";
$ realname = "Tony Stark";
$ emailadres = "ironMan@ironMan.com";
$ is_activated = 1;
$ ID_POST_GROUP = 4;

$ password = "Tony1234";

($memberName).$password); $ password = SHA1 (strtolower ($ memberName). $ password);

$ dateRegistered = 1216951200 / / 7-25-2008 2 AM

$ query = "INSERT INTO smf_members (memberName, realname, emailadres, is_activated, ID_POST_GROUP, passwd, dateRegistered) VALUES ( '$ memberName', '$ realname', '$ emailadres',' $ is_activated ',' $ ID_POST_GROUP ',' $ password ',' $ dateRegistered ') ";
("SMF Error 101.234 "); $ result = mysql_query ($ query) or die ( "Fout SMF 101.234");

Zo eenvoudig is het!

Verlaat een Commentaar