Hur man manuellt in en användare till ett SMF forum Använda PHP
Detta specifika exempel är för SMF 1.1.5. Jag kan inte garantera det kommer att fungera med någon annan version.
Så du kör Enkel Maskin Forum Software och manuellt vill ange ett användarnamn? 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 databasdrivna-program som Wordpress. Innan vi hamnar i exakt hur man gör detta, låt oss ta en titt på hur Enkel Machine Forum håller reda på användarna. I SMF databasen 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) unsigned | NEJ | PRI | NULL | AUTO_INCREMENT |
| medlemsnamn | Varchar (80) | NEJ | MUL | ||
| dateRegistered | int (10) unsigned | NEJ | MUL | 0 | |
| inlägg | mediumint (8) unsigned | NEJ | MUL | 0 | |
| ID_GROUP | smallint (5) unsigned | NEJ | MUL | 0 | |
| lngfile | tinytext | NEJ | MUL | ||
| lastLogin | int (10) unsigned | NEJ | MUL | 0 | |
| realname | tinytext | NEJ | |||
| Chatt | 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) unsigned | NEJ | 0 | ||
| födelsedatum | datum | NEJ | MUL | 0001-01-01 | |
| websiteTitle | tinytext | NEJ | |||
| websiteUrl | tinytext | NEJ | |||
| plats | tinytext | NEJ | |||
| ICQ | tinytext | NEJ | |||
| MÅL | Varchar (16) | NEJ | |||
| YIM | Varchar (32) | NEJ | |||
| MSN | tinytext | NEJ | |||
| hideEmail | tinyint (4) | NEJ | 0 | ||
| showOnline | tinyint (4) | NEJ | 1 | ||
| TIMEFORMAT | Varchar (80) | NEJ | |||
| namnteckning | text | NEJ | |||
| timeOffset | flyta | NEJ | 0 | ||
| Avatar | tinytext | NEJ | |||
| pm_email_notify | tinyint (4) | NEJ | 0 | ||
| karmaBad | smallint (5) unsigned | NEJ | 0 | ||
| karmaGood | smallint (5) unsigned | 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) unsigned | NEJ | 0 | ||
| is_activated | tinyint (3) unsigned | NEJ | 1 | ||
| validation_code | Varchar (10) | NEJ | |||
| ID_MSG_LAST_VISIT | int (10) unsigned | NEJ | 0 | ||
| additionalGroups | tinytext | NEJ | |||
| smileySet | Varchar (48) | NEJ | |||
| ID_POST_GROUP | smallint (5) unsigned | NEJ | MUL | 0 | |
| totalTimeLoggedIn | int (10) unsigned | NEJ | 0 | ||
| passwordSalt | Varchar (5) | NEJ |
Områden vi måste uppmärksamma:
- medlemsnamn - Self Explanitory.
- dateRegistered - Är inte nödvändigt, men om inte fyllt i det datum som registrerats visas som 31 December 1969. Datumet sparas som en epok tidsstämpel. Vet inte hur man beräknar tidsstämplar i ditt huvud? Inga problem. Jag använder den fria generator finns här .
- Riktigt namn - bör införas. När jag inte är säker på att jag bara upprepa medlemsnamn här.
- Epostadress - Self Explanitory.
- is_activated - Måste vara satt till 1 eftersom vi manuellt aktivera en medlem.
- ID_POST_GROUP - Jag kommer inte att ljuga. Jag är inte säker på vad det är, men det tycks alltid vara inställd på 4. Så .... Jag alltid det till 4. Inte det bästa sättet att programmet, men vad kan du göra?
- passwd - Det lösenord du vill ge den nya användaren. Det är omöjligt att räkna ut hur till komma 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 ($ medlemsnamn). $ Password)
I ovanstående kodrad är $ password användarens faktiska lösenord.
Hur man gör:
/ / Anslut först till SMF databasen
$ Host = "hostname", / / Host name
$ Username = "användarnamn", / / Mysql användarnamn
$ Mittlösenord = "lösenord", / / mysql lösenord
$ DB_NAME = "användarnamn", / / Databas namn
("cannot connect to server"); mysql_connect ("$ host", "$ username", "$ mittlösenord") or die ("kan inte ansluta till servern");
("cannot select DB"); mysql_select_db ("$ DB_NAME") or die ("kan inte välja DB");
$ Medlemsnamn = "Ironman";
$ Realname = "Tony Stark";
$ Epostadress = "ironMan@ironMan.com";
$ Is_activated = 1;
$ ID_POST_GROUP = 4;
$ Password = "Tony1234";
($memberName).$password); $ Password = sha1 (strtolower ($ medlemsnamn). $ Password);
$ DateRegistered = 1216951200, / / 2008/07/25 02:00
$ Query = "INSERT INTO smf_members (medlemsnamn, realname, Epostadress, is_activated, ID_POST_GROUP, passwd, dateRegistered) VALUES ('$ medlemsnamn", "$ realname", "$ Epostadress", "$ is_activated", "$ ID_POST_GROUP", " $ password "," $ dateRegistered ') ";
("SMF Error 101.234 "); $ Result = mysql_query ($ query) or die ("SMF Fel 101,234");
Det är allt som finns till den!








































