Cómo insertar manualmente un usuario en un Foro SMF Uso de PHP

Publicado en SMF (Foro de máquina simple), php por ShortLikeAFox el 28 de julio de 2008

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!