Cómo insertar manualmente un usuario en un Foro SMF Uso de PHP
Este ejemplo es para SMF 1.1.5. No puedo garantizar que funcione con cualquier otra versión.
Por lo tanto, simple de ejecutar la máquina Foro de Software y desea introducir manualmente un usuario? No hay problema. Sé que este problema parece muy específico, pero las ideas expuestas aquí pueden adaptarse a otros tipos de foros y otros paquetes de software de bases de datos tales como Wordpress. Antes de entrar en exactamente cómo hacer esto, echemos un vistazo a cómo Foros simple máquina realiza un seguimiento de los usuarios. SMF en la base de datos hay una tabla llamada smf_members. La estructura smf_members tiene este aspecto:
| Campo | Tipo | Nulo | Llave | Predeterminado | Extra |
|---|---|---|---|---|---|
| ID_MEMBER | MEDIUMINT (8) sin firmar | NO | PRI | NULL | auto_increment |
| memberName | varchar (80) | NO | MUL | ||
| dateRegistered | int (10) sin firmar | NO | MUL | 0 | |
| puestos | MEDIUMINT (8) sin firmar | NO | MUL | 0 | |
| ID_GROUP | smallint (5) sin firmar | NO | MUL | 0 | |
| lngfile | TINYTEXT | NO | MUL | ||
| lastLogin | int (10) sin firmar | 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 | |||
| dirección de E-mail | TINYTEXT | NO | |||
| personalText | TINYTEXT | NO | |||
| género | tinyint (4) sin firmar | NO | 0 | ||
| fecha de nacimiento | fecha | NO | MUL | 0001-01-01 | |
| websiteTitle | TINYTEXT | NO | |||
| websiteUrl | TINYTEXT | NO | |||
| ubicació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 | |||
| firma | texto | NO | |||
| timeOffset | flotador | NO | 0 | ||
| avatar | TINYTEXT | NO | |||
| pm_email_notify | tinyint (4) | NO | 0 | ||
| karmaBad | smallint (5) sin firmar | NO | 0 | ||
| karmaGood | smallint (5) sin firmar | 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) sin firmar | NO | 0 | ||
| is_activated | tinyint (3) sin firmar | NO | 1 | ||
| validation_code | varchar (10) | NO | |||
| ID_MSG_LAST_VISIT | int (10) sin firmar | NO | 0 | ||
| additionalGroups | TINYTEXT | NO | |||
| smileySet | varchar (48) | NO | |||
| ID_POST_GROUP | smallint (5) sin firmar | NO | MUL | 0 | |
| totalTimeLoggedIn | int (10) sin firmar | NO | 0 | ||
| passwordSalt | varchar (5) | NO |
Los campos que tenemos que prestar atención a:
- memberName - Auto Explanitory.
- dateRegistered - ¿No es necesario, pero si no llenar la fecha registrada como muestra 31 de diciembre de 1969. La fecha se guarda como una época de tiempo. No sabe cómo calcular de tiempo en tu cabeza? No hay problema. Yo uso la libre generador encontrarse aquí.
- realname - En caso de que se inserta. Cuando no estoy seguro de que acabo de repetir memberName aquí.
- dirección de E-mail - Auto Explanitory.
- is_activated - Debe ser fijado en 1, ya que estamos activando manualmente un miembro.
- ID_POST_GROUP - No voy a mentir. No estoy seguro de qué es esto, sino que siempre parece estar a 4. Así que .... Yo siempre a 4. No es la mejor forma de programa, pero ¿qué puedes hacer?
- passwd - La contraseña que desea dar al nuevo usuario. Es imposible averiguar cómo ingresar sin tener en cuenta la documentación SMF. El código adecuado para cifrar una contraseña SMF para la base de datos tiene este aspecto:
($memberName).$password) $ password = sha1 (strtolower ($ memberName). $ password)
En la línea de código, $ contraseña es la contraseña del usuario real.
Cómo hacerlo:
/ / En primer lugar, conectarse a la base de datos de SMF
$ host = "host"; / / Nombre de host
$ usuario = "username"; / / nombre de usuario MySQL
$ micontraseña = "contraseña"; / / Mysql contraseña
$ db_name = "username"; / / Base de datos de nombre
("cannot connect to server"); mysql_connect ( "$ host", "$ usuario", "$ micontraseña") or die ( "no se puede conectar con el servidor");
("cannot select DB"); mysql_select_db ( "$ db_name") or die ( "no se puede seleccionar PP");
$ memberName = "IronMan";
$ realname = "Tony Stark";
$ direccióndecorreoelectrónico = "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, dirección de E-mail, is_activated, ID_POST_GROUP, passwd, dateRegistered) VALUES ( '$ memberName', '$ realname', '$ direccióndecorreoelectrónico', '$ is_activated', '$ ID_POST_GROUP', ' $ password ',' $ dateRegistered ') ";
("SMF Error 101.234 "); $ resultado = mysql_query ($ consulta) or die ( "Error al SMF 101,234");
Eso es todo lo que a él!






















