Come inserire manualmente un utente in un forum SMF Utilizzo di PHP
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!






















