How to Manually Plaats een gebruiker in een SMF forum gebruiken PHP
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!






















