Como inserir a man un usuario nun foro SMF Utilizando PHP
Este exemplo específico para SMF 1.1.5. Non podo garantir que ha funcionar con calquera outra versión.
Entón corre Simple Machine Foro de Software e pretende introducir a man un usuario? Sen problemas. Sei que este problema parece ser moi específico, pero as ideas aquí expostas pode ser adaptado para outros tipos de foros e outros paquetes de software de base de datos orientado como o WordPress. Antes de entrarmos exactamente como facelo, imos dar un ollo a como Simple Machine Foros mantén rexistro de usuarios. Na base de datos SMF existe unha táboa chamada smf_members. O smf_members estrutura parecida con esta:
| Campo | Tipo | Nulo | Clave | Omisión | Extra |
|---|---|---|---|---|---|
| ID_MEMBER | MEDIUMINT (8) unsigned | NO | PRI | NULL | auto_increment |
| memberName | varchar (80) | NO | MUL | ||
| dateRegistered | int (10) unsigned | NO | MUL | 0 | |
| artigos | MEDIUMINT (8) unsigned | NO | MUL | 0 | |
| ID_GROUP | smallint (5) unsigned | NO | MUL | 0 | |
| lngfile | TINYTEXT | NO | MUL | ||
| lastlogin | int (10) unsigned | NO | MUL | 0 | |
| realname | TINYTEXT | NO | |||
| instantMessages | smallint (5) | NO | 0 | ||
| Unreadmessages | smallint (5) | NO | 0 | ||
| buddy_list | texto | NO | |||
| pm_ignore_list | texto | NO | |||
| messageLabels | texto | NO | |||
| passwd | varchar (64) | NO | |||
| emailAddress | TINYTEXT | NO | |||
| personalText | TINYTEXT | NO | |||
| xénero | tinyint (4) unsigned | NO | 0 | ||
| data de nacemento | data | NO | MUL | 0001-01-01 | |
| websiteTitle | TINYTEXT | NO | |||
| WebSiteUrl | TINYTEXT | NO | |||
| localización | 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 | |||
| sinatura | texto | NO | |||
| timeOffset | flutuar | NO | 0 | ||
| avatar | TINYTEXT | NO | |||
| pm_email_notify | tinyint (4) | NO | 0 | ||
| karmaBad | smallint (5) unsigned | NO | 0 | ||
| karmaGood | smallint (5) unsigned | NO | 0 | ||
| usertitle | 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) unsigned | NO | 0 | ||
| is_activated | tinyint (3) unsigned | NO | 1 | ||
| validation_code | varchar (10) | NO | |||
| ID_MSG_LAST_VISIT | int (10) unsigned | NO | 0 | ||
| additionalGroups | TINYTEXT | NO | |||
| smileySet | varchar (48) | NO | |||
| ID_POST_GROUP | smallint (5) unsigned | NO | MUL | 0 | |
| totalTimeLoggedIn | int (10) unsigned | NO | 0 | ||
| passwordSalt | varchar (5) | NO |
Fields é preciso prestar atención:
- memberName - auto-explicativas.
- dateRegistered - non é necesario, pero se non é cuberto a data rexistrada exhibe como 31 decembro de 1969. A data é gardada como un timestamp época. Non sei como calcular timestamps na súa cabeza? Sen problemas. Eu uso o xerador de libres atopados aquí .
- realname - deben ser inseridos. Cando non estou seguro de que simplemente repetir memberName aquí.
- emailAddress - auto-explicativas.
- is_activated - Debe ser definido como xa que estamos a activar manualmente un membro.
- ID_POST_GROUP - Eu non vou mentir. Non estou seguro que é iso, pero ela parece ser sempre axustado para 4. Entón .... Eu sempre define-la a 4. Non é a mellor forma de programa, pero o que podes facer?
- passwd - O contrasinal que quere dar ao novo usuario. É imposible descubrir como entrar sen ollar a documentación do SMF. O código axeitado para o cifrado o contrasinal da base de datos SMF coma este:
($memberName).$password) $ Passwd = sha1 (strtolower ($ memberName). $ Contrasinal)
Na liña de código anterior, $ contrasinal é o contrasinal real do usuario.
Como facer:
/ / Primeiro, ligue para a base de datos SMF
$ Host = hostname "" / / nome do host
$ Username = "username" / / username MySQL
minhasenha = $ contrasinal "; / contrasinal MySQL
db_name $ username = "" / / nome da base de datos
("cannot connect to server"); mysql_connect ("$ host", $ nome de usuario "," $ minhasenha ") or die (" Non se pode conectar ao servidor ");
("cannot select DB"); mysql_select_db ("$ db_name") or die ("Non se pode seleccionar a DB");
memberName ironman $ = "";
realname $ = "Tony Stark";
emailAddress ironMan@ironMan.com $ = "";
$ Is_activated = 1;
$ ID_POST_GROUP = 4;
$ Contrasinal = "Tony1234";
($memberName).$password); $ Contrasinal = sha1 (strtolower ($ memberName). $ Contrasinal);
$ DateRegistered = 1216951200 / / 2008/07/25 02:00
$ Query = "insert into smf_members (memberName, realname, emailAddress, is_activated, ID_POST_GROUP, passwd, dateRegistered) value ('$ memberName', '$ realname', '$ emailAddress', '$ is_activated', '$ ID_POST_GROUP', ' $ contrasinal ',' $ dateRegistered ') ";
("SMF Error 101.234 "); $ Resultado = mysql_query ($ query) or die ("Erro SMF 101,234);
Isto é todo o que existe para ela!








































