Com inserir manualment un usuari en un fòrum SMF Ús de PHP
Aquest exemple específic és per SMF 1.1.5. No puc garantir que funcioni amb qualsevol altra versió.
Així que executa Simple Machine Fòrum de Software i desitja introduir manualment un usuari? No hi ha problema. Sé que aquest problema sembla molt específic, però les idees exposades aquí es poden adaptar a altres tipus de fòrums i altres paquets de programari de Base de dades manejada com Wordpress. Abans d'entrar en exactament com fer-ho, donem una ullada a com Simple Machine Fòrums realitza un seguiment dels usuaris. A la base de dades SMF hi ha una taula anomenada smf_members. El smf_members estructura són aquestes:
| Camp | Tipus | Nul | Clau | Defecte | Extra |
|---|---|---|---|---|---|
| ID_MEMBER | MEDIUMINT (8) sense signe | NO | PRI | NULL | AUTO_INCREMENT |
| MemberName | VARCHAR (80) | NO | MUL | ||
| dateRegistered | int (10) sense signar | NO | MUL | 0 | |
| llocs | MEDIUMINT (8) sense signe | NO | MUL | 0 | |
| ID_GROUP | smallint (5) sense signar | NO | MUL | 0 | |
| lngfile | TINYTEXT | NO | MUL | ||
| lastlogin | int (10) sense signar | NO | MUL | 0 | |
| Realname | TINYTEXT | NO | |||
| instant | smallint (5) | NO | 0 | ||
| unreadMessages | smallint (5) | NO | 0 | ||
| buddy_list | text | NO | |||
| pm_ignore_list | text | NO | |||
| messageLabels | text | NO | |||
| passwd | VARCHAR (64) | NO | |||
| emailAddress | TINYTEXT | NO | |||
| personalText | TINYTEXT | NO | |||
| gènere | tinyint (4) sense signar | NO | 0 | ||
| data de naixement | data | NO | MUL | 0001-01-01 | |
| websiteTitle | TINYTEXT | NO | |||
| websiteUrl | TINYTEXT | NO | |||
| ubicació | TINYTEXT | NO | |||
| ICQ | TINYTEXT | NO | |||
| AIM | VARCHAR (16) | NO | |||
| YIM | VARCHAR (32) | NO | |||
| MSN | TINYTEXT | NO | |||
| hideEmail | tinyint (4) | NO | 0 | ||
| showOnline | tinyint (4) | NO | 1 | ||
| TimeFormat | VARCHAR (80) | NO | |||
| signatura | text | NO | |||
| timeOffset | flotador | NO | 0 | ||
| avatar | TINYTEXT | NO | |||
| pm_email_notify | tinyint (4) | NO | 0 | ||
| karmaBad | smallint (5) sense signar | NO | 0 | ||
| karmaGood | smallint (5) sense signar | NO | 0 | ||
| Títol d'usuari | TINYTEXT | NO | |||
| notifyAnnouncements | tinyint (4) | NO | 1 | ||
| notifyOnce | tinyint (4) | NO | 1 | ||
| notifySendBody | tinyint (4) | NO | 0 | ||
| notifyTypes | tinyint (4) | NO | 2 | ||
| memberIP | TINYTEXT | NO | |||
| memberIP2 | TINYTEXT | NO | |||
| secretQuestion | TINYTEXT | NO | |||
| secretAnswer | VARCHAR (64) | NO | |||
| ID_THEME | tinyint (4) sense signar | NO | 0 | ||
| is_activated | TINYINT (3) sense signar | NO | 1 | ||
| validation_code | VARCHAR (10) | NO | |||
| ID_MSG_LAST_VISIT | int (10) sense signar | NO | 0 | ||
| additionalGroups | TINYTEXT | NO | |||
| smileySet | VARCHAR (48) | NO | |||
| ID_POST_GROUP | smallint (5) sense signar | NO | MUL | 0 | |
| totalTimeLoggedIn | int (10) sense signar | NO | 0 | ||
| passwordSalt | VARCHAR (5) | NO |
Els camps que hem de prestar atenció a:
- MemberName - Self explanitory.
- dateRegistered - No és necessari, però si no es completa la data de registre es mostra com 31 des 1969. La data es guarda com un timestamp època. No sap com calcular les marques de temps al teu cap? No hi ha problema. Puc utilitzar el generador lliure que es trobi aquí .
- nom real - En cas d'inserir. Quan no estic segur que, simplement repetiu de membre aquí.
- emailAddress - Self explanitory.
- is_activated - S'ha d'establir en 1, ja que estem activant manualment un membre.
- ID_POST_GROUP - No vaig a mentir. No estic segur del que és això, però sempre sembla que s'estableix en 4. Així que .... Sempre que estableix 4. No és la millor forma de programar, però què pots fer?
- passwd - La contrasenya que voleu donar-li al nou usuari. És impossible trobar la manera d'entrar sense tenir en compte la documentació SMF. El codi adequat per a xifrar una contrasenya per a la base de dades SMF són aquestes:
($memberName).$password) $ Passwd = SHA1 (strtolower ($ MemberName). $ Contrasenya)
En la línia anterior de codi, la contrasenya és $ contrasenya real de l'usuari.
Com aconseguir-ho:
/ / En primer lloc, connectar-se a la base de dades SMF
$ Host = "host"; / / Nom del host
nom d'usuari $ = "nom d'usuari" / / nom d'usuari MySQL
micontraseña $ = "contrasenya"; / / contrasenya de MySQL
db_name $ = "usuari"; / / Nom de base de dades
("cannot connect to server"); mysql_connect ("host" $ ", $ nom d'usuari", "$ micontraseña") or die ("No es pot connectar al servidor");
("cannot select DB"); mysql_select_db ("$ db_name") or die ("No es pot seleccionar BD");
MemberName $ = "Ironman";
Realname $ = "Tony Stark";
emailAddress $ = "ironMan@ironMan.com";
$ Is_activated = 1;
$ ID_POST_GROUP = 4;
$ Password = "Tony1234";
($memberName).$password); $ Password = SHA1 (strtolower ($ MemberName). $ Password);
$ DateRegistered = 1216951200 / / 07/25/2008 02 PM
$ Query = "INSERT INTO smf_members (de membre, nom real, emailAddress, is_activated, ID_POST_GROUP, passwd, dateRegistered) VALUES ('$ MemberName', '$ nom real', '$ emailAddress', '$ is_activated', '$ ID_POST_GROUP', ' $ password ',' $ dateRegistered ') ";
("SMF Error 101.234 "); $ Resultat = mysql_query ($ consulta) or die ("Error 101,234 SMF");
Això és tot el que cal fer!








































