Hur du manuellt infoga en användare i ett SMF forum använder PHP
Detta konkret exempel är för SMF 1.1.5. Jag kan inte garantera att det kommer att samarbeta med någon annan version.
Så du kör Simple Machine Forum Software och vill ange en användare? Inga problem. Jag vet att detta problem verkar mycket specifika, men de idéer som beskrivs här kan anpassas till andra typer av forum och andra databas drivs programvarupaket som Wordpress. Innan vi får till exakt hur man gör detta, låt oss ta en titt på hur Simple Machine Forum håller reda på användarna. I SMF databas finns en tabell som kallas smf_members. Den smf_members struktur ser ut så här:
| Fält | Typ | Null | Nyckel | Standard | Extra |
|---|---|---|---|---|---|
| ID_MEMBER | mediumint (8) osignerade | NEJ | PRI | NULL | auto_increment |
| memberName | Varchar (80) | NEJ | MUL | ||
| dateRegistered | int (10) osignerade | NEJ | MUL | 0 | |
| tjänster | mediumint (8) osignerade | NEJ | MUL | 0 | |
| ID_GROUP | smallint (5) osignerade | NEJ | MUL | 0 | |
| lngfile | tinytext | NEJ | MUL | ||
| lastLogin | int (10) osignerade | NEJ | MUL | 0 | |
| realname | tinytext | NEJ | |||
| chattmeddelanden | smallint (5) | NEJ | 0 | ||
| unreadMessages | smallint (5) | NEJ | 0 | ||
| buddy_list | text | NEJ | |||
| pm_ignore_list | text | NEJ | |||
| messageLabels | text | NEJ | |||
| passwd | Varchar (64) | NEJ | |||
| Epostadress | tinytext | NEJ | |||
| personalText | tinytext | NEJ | |||
| kön | tinyint (4) osignerade | NEJ | 0 | ||
| Födelsedatum | datum | NEJ | MUL | 0001-01-01 | |
| websiteTitle | tinytext | NEJ | |||
| websiteUrl | tinytext | NEJ | |||
| plats | tinytext | NEJ | |||
| ICQ | tinytext | NEJ | |||
| AIM | Varchar (16) | NEJ | |||
| YIM | Varchar (32) | NEJ | |||
| MSN | tinytext | NEJ | |||
| hideEmail | tinyint (4) | NEJ | 0 | ||
| showOnline | tinyint (4) | NEJ | 1 | ||
| Tidsformat | Varchar (80) | NEJ | |||
| signatur | text | NEJ | |||
| timeOffset | float | NEJ | 0 | ||
| avatar | tinytext | NEJ | |||
| pm_email_notify | tinyint (4) | NEJ | 0 | ||
| karmaBad | smallint (5) osignerade | NEJ | 0 | ||
| karmaGood | smallint (5) osignerade | NEJ | 0 | ||
| usertitle | tinytext | NEJ | |||
| notifyAnnouncements | tinyint (4) | NEJ | 1 | ||
| notifyOnce | tinyint (4) | NEJ | 1 | ||
| notifySendBody | tinyint (4) | NEJ | 0 | ||
| notifyTypes | tinyint (4) | NEJ | 2 | ||
| memberIP | tinytext | NEJ | |||
| memberIP2 | tinytext | NEJ | |||
| secretQuestion | tinytext | NEJ | |||
| secretAnswer | Varchar (64) | NEJ | |||
| ID_THEME | tinyint (4) osignerade | NEJ | 0 | ||
| is_activated | tinyint (3) osignerade | NEJ | 1 | ||
| validation_code | Varchar (10) | NEJ | |||
| ID_MSG_LAST_VISIT | int (10) osignerade | NEJ | 0 | ||
| additionalGroups | tinytext | NEJ | |||
| smileySet | Varchar (48) | NEJ | |||
| ID_POST_GROUP | smallint (5) osignerade | NEJ | MUL | 0 | |
| totalTimeLoggedIn | int (10) osignerade | NEJ | 0 | ||
| passwordSalt | Varchar (5) | NEJ |
Områden som vi måste uppmärksamma:
- memberName - Self Explanitory.
- dateRegistered - är inte nödvändigt, men om inte fyllt i datum registreras visas som den 31 december 1969. I dag sparas som en epok tidsstämpel. Vet inte hur man kan beräkna tidstämplar i ditt huvud? Inga problem. Jag använder den fria generator hittar du här.
- realname - bör införas. När jag inte är säker på att jag bara upprepa memberName här.
- Epostadress - Self Explanitory.
- is_activated - måste sättas till 1 eftersom vi manuellt aktivera en medlem.
- ID_POST_GROUP - Jag ska inte ljuga. Jag är inte säker på vad det är, men det verkar alltid vara inställd på 4. Så .... Jag har alltid ställa in den till 4. Inte det bästa sättet att programmera, men vad ska man göra?
- passwd - Det lösenord du vill ge den nya användaren. Det är omöjligt att lista ut hur du in utan att titta på SMF dokumentation. Rätt kod för att kryptera ett SMF lösenord för databasen ser ut så här:
($memberName).$password) $ passwd = SHA1 (strtolower ($ memberName). $ lösenord)
I ovanstående rad kod, $ lösenord är användarens faktiska lösenord.
Hur man gör:
/ / First, ansluta till SMF databas
$ värd = "hostname", / / Host namn
$ username = "användarnamn", / / Mysql användarnamn
$ mittlösenord = "lösenord", / / Mysql lösenord
$ db_name = "användarnamn", / / Database namnet
("cannot connect to server"); mysql_connect ( "$ host", "$ username", "$ mittlösenord") eller dö ( "inte kan ansluta till servern");
("cannot select DB"); mysql_select_db ( "$ db_name") eller dö ( "kan inte välja BF");
$ memberName = "ironMan";
$ realname = "Tony Stark";
$ Epostadress = "ironMan@ironMan.com";
$ is_activated = 1;
$ ID_POST_GROUP = 4;
$ lösenord = "Tony1234";
($memberName).$password); $ lösenord = SHA1 (strtolower ($ memberName). $ password);
$ dateRegistered = 1216951200; / / 7-25-2008 2 AM
$ query = "infoga i smf_members (memberName, realname, Epostadress, is_activated, ID_POST_GROUP, passwd, dateRegistered) värden (" $ memberName "," $ realname "," $ Epostadress', '$ is_activated "," $ ID_POST_GROUP "," $ lösenord "," $ dateRegistered ")";
("SMF Error 101.234 "); $ result = mysql_query ($ query) eller dö ( "SMF Fel 101.234");
Det är allt till det!






















