Come Inserire un manuale utente in un forum SMF Utilizzo di PHP

Posted in SMF (Simple Machine Forum), php da ShortLikeAFox il 28 luglio, 2008

Questo esempio è per SMF 1.1.5. Non posso garantire che funziona con qualsiasi altra versione.

Quindi si esegue Simple Machine Forum Software e desidera inserire manualmente un utente? Nessun problema. So che questo problema sembra molto specifiche, ma le idee spiegato qui può essere adattato ad altri tipi di forum e di altri database di pacchetti software, come Wordpress. Prima di entrare esattamente come fare questo, diamo un'occhiata a come semplice Machine Forum tiene traccia degli utenti. Nella banca dati SMF c'è una tabella denominata smf_members. Il smf_members struttura simile a questa:

Campo Tipo + + digitare Null

Chiave Predefinito Extra
ID_MEMBER mediumint (8) unsigned NO PRI NULL AUTO_INCREMENT
memberName varchar (80) NO MUL
dateRegistered int (10) unsigned NO MUL 0
posti 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 testo NO
pm_ignore_list testo NO
messageLabels testo NO
passwd varchar (64) NO
EmailAddress tinytext NO
personalText tinytext NO
genere tinyint (4) unsigned NO 0
data di nascita data NO MUL 0001-01-01
websiteTitle tinytext NO
websiteUrl tinytext NO
località 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 testo NO
timeOffset float 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

Settori dobbiamo prestare attenzione a:

  • memberName - Auto Explanitory.
  • dateRegistered - non è necessario, ma se non compilato visualizza la data registrata nel dicembre 31a 1969. La data viene salvato come un'epoca timestamp. Non so come calcolare i timestamp nella tua testa? Nessun problema. Io uso la libera generatore trovare qui.
  • realname - deve essere inserito. Quando io non sono sicuro di aver appena ripetere memberName qui.
  • EmailAddress - Auto Explanitory.
  • is_activated - Deve essere impostato a 1, dato che sono un membro di attivare manualmente.
  • ID_POST_GROUP - Non mi mentire. Non sono sicuro di che cosa si tratta, ma sembra sempre essere impostato a 4. Quindi .... Ho sempre impostato a 4. Non il modo migliore per programma, ma che cosa puoi fare?
  • passwd - La password che si desidera dare al nuovo utente. E 'impossibile capire come entrare senza guardare la SMF documentazione. Il codice per cifrare un SMF password per il database simile al seguente:

($memberName).$password) $ passwd = sha1 (strtolower ($ memberName). $ password)

In linea di codice, $ password è la password dell'utente reale.

Come fare:

/ / In primo luogo, stabilire la connessione al database di SMF

$ host = "hostname"; / / Nome host
$ username = "nome utente"; / / MySQL username
miapassword $ = "password"; / / MySQL password
$ db_name = "nome utente"; / / nome del database

("cannot connect to server"); mysql_connect ( "$ host", "$ username", "$ miapassword") or die ( "non può connettersi al server");
("cannot select DB"); mysql_select_db ( "$ db_name") or die ( "non può selezionare DB");

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; / / 7-25-2008 2 AM

$ query = "INSERT INTO smf_members (memberName, realname, EmailAddress, is_activated, ID_POST_GROUP, passwd, dateRegistered) VALUES ( '$ memberName', '$ realname', '$ EmailAddress',' $ is_activated ',' $ ID_POST_GROUP ',' $ password ',' $ dateRegistered ') ";
("SMF Error 101.234 "); $ risultato = mysql_query ($ query) or die ( "Errore SMF 101,234");

Questo è tutto quello che ad essa!