Come inserire manualmente un utente in un forum SMF Utilizzo di PHP

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

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

Quindi si esegue Simple Machine Forum Software e desidera immettere manualmente un utente? Nessun problema. So che questo problema sembra molto specifici, ma le idee spiegato qui può essere adattato ad altri tipi di forum e altri database pacchetti software come Wordpress. Prima di entrare esattamente come effettuare questa operazione, diamo un'occhiata a come semplice macchina Forum tiene traccia degli utenti. Nel SMF banca dati vi è una tabella chiamata smf_members. Smf_members La struttura assomiglia a questo:

Campo Tipo + + digitare Null

Chiave Predefinito Extra
ID_MEMBER mediumint (8) unsigned N PRI NULL AUTO_INCREMENT
MEMBERNAME varchar (80) N MUL
dateRegistered int (10) unsigned N MUL 0
posti mediumint (8) unsigned N MUL 0
ID_GROUP smallint (5) unsigned N MUL 0
lngfile tinytext N MUL
lastLogin int (10) unsigned N MUL 0
realname tinytext N
istantanei smallint (5) N 0
unreadMessages smallint (5) N 0
buddy_list Testo N
pm_ignore_list testo N
messageLabels testo N
passwd varchar (64) N
EMAILADDRESS tinytext No
personalText tinytext N
genere tinyint (4) unsigned N 0
data di nascita data N MUL 0001-01-01
websiteTitle tinytext N
websiteUrl tinytext N
località tinytext N
ICQ tinytext N
AIM varchar (16) N
YIM varchar (32) N
MSN tinytext N
hideEmail tinyint (4) N 0
showOnline tinyint (4) N 1
timeFormat varchar (80) N
firma testo N
timeOffset galleggiante N 0
Avatar tinytext N
pm_email_notify tinyint (4) N 0
karmaBad smallint (5) unsigned N 0
karmaGood smallint (5) unsigned N 0
usertitle tinytext N
notifyAnnouncements tinyint (4) N 1
notifyOnce tinyint (4) N 1
notifySendBody tinyint (4) N 0
notifyTypes tinyint (4) N 2
memberIP tinytext N
memberIP2 tinytext N
secretQuestion tinytext N
secretAnswer varchar (64) N
ID_THEME tinyint (4) unsigned N 0
is_activated tinyint (3) unsigned N 1
validation_code varchar (10) N
ID_MSG_LAST_VISIT int (10) unsigned N 0
additionalGroups tinytext N
smileySet varchar (48) N
ID_POST_GROUP smallint (5) unsigned N MUL 0
totalTimeLoggedIn int (10) unsigned N 0
passwordSalt varchar (5) N

Settori abbiamo bisogno di prestare attenzione a:

  • MEMBERNAME - Auto Explanitory.
  • dateRegistered - non è necessario, ma se non compilato la data registrata mostra come 31o dicembre 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 non sono sicuro ho appena MEMBERNAME ripetere qui.
  • EMAILADDRESS - Auto Explanitory.
  • is_activated - Deve essere impostato su 1 in quanto siamo manualmente l'attivazione di un membro.
  • ID_POST_GROUP - Non mi mentire. Non sono sicuro di che cosa si tratta, eppure sembra essere fissato a 4. Allora .... Ho semper impostato a 4. Non è il modo migliore per programma, ma quello che puoi fare?
  • passwd - La password che si desidera dare al nuovo utente. E 'impossibile capire come entrare senza guardare la documentazione SMF. Il codice per cifrare un SMF password per il database simile al seguente:

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

Nell'esempio precedente riga di codice, $ password è l'utente effettivo della password.

Come per farlo:

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

$ host = "hostname"; / / Nome host
$ username = "nome utente"; / / MySQL nome utente
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!

Lascia un tuo commento