Cum se face manual Introduceţi un utilizator intr-o SMF Forum Folosind PHP

Clasat in SMF (Simple Machine Forum), php de ShortLikeAFox pe 28 iulie 2008

Acest exemplu este specific pentru SMF 1.1.5. Nu pot garanta va funcţiona cu orice altă versiune.

Deci, va rula simplă Machine Software Forum şi doriţi pentru a introduce manual un utilizator? Nici o problemă. Ştiu că această problemă pare foarte specifice, dar ideile explicat aici pot fi adaptate de la alte tipuri de forumuri şi alte pachete de software de baze de date condus, cum ar fi Wordpress. Înainte de a ajunge în exact cum se face acest lucru, să aruncăm o privire la cum Simple Machine Forums monitorizează de utilizatori. În baza de date a SMF există un tabel numit smf_members. În structura smf_members arata astfel:

Câmp Tip Null

Cheie Implicit Extra
ID_MEMBER mediumint (8) nesemnate NU PRI NULL auto_increment
memberName varchar (80) NU MUL
dateRegistered int (10) nesemnate NU MUL 0
posturi mediumint (8) nesemnate NU MUL 0
ID_GROUP smallint (5) nesemnate NU MUL 0
lngfile tinytext NU MUL
lastLogin int (10) nesemnate NU MUL 0
realname tinytext NU
instantMessages smallint (5) NU 0
unreadMessages smallint (5) NU 0
buddy_list text NU
pm_ignore_list text NU
messageLabels text NU
passwd varchar (64) NU
emailAddress tinytext NU
personalText tinytext NU
gen tinyint (4) nesemnate NU 0
Data naşterii dată NU MUL 0001-01-01
websiteTitle tinytext NU
websiteUrl tinytext NU
locaţie tinytext NU
ICQ tinytext NU
AIM varchar (16) NU
YIM varchar (32) NU
MSN tinytext NU
hideEmail tinyint (4) NU 0
showOnline tinyint (4) NU 1
timeFormat varchar (80) NU
semnătura text NU
timeOffset pluti NU 0
avatar tinytext NU
pm_email_notify tinyint (4) NU 0
karmaBad smallint (5) nesemnate NU 0
karmaGood smallint (5) nesemnate NU 0
usertitle tinytext NU
notifyAnnouncements tinyint (4) NU 1
notifyOnce tinyint (4) NU 1
notifySendBody tinyint (4) NU 0
notifyTypes tinyint (4) NU 2
memberIP tinytext NU
memberIP2 tinytext NU
secretQuestion tinytext NU
secretAnswer varchar (64) NU
ID_THEME tinyint (4) nesemnate NU 0
is_activated tinyint (3) nesemnate NU 1
validation_code varchar (10) NU
ID_MSG_LAST_VISIT int (10) nesemnate NU 0
additionalGroups tinytext NU
smileySet varchar (48) NU
ID_POST_GROUP smallint (5) nesemnate NU MUL 0
totalTimeLoggedIn int (10) nesemnate NU 0
passwordSalt varchar (5) NU

Domenii trebuie să acorde atenţie:

  • memberName - Auto Explanitory.
  • dateRegistered - nu este necesară, dar dacă nu sunt completate la data înregistrate afişează ca 31 decembrie 1969. Data este salvată ca o epoca de timp. Nu ştiu cum să calculeze timp in capul tau? Nici o problemă. Eu folosesc libera generator găsit aici.
  • realname - ar trebui introduse. Când nu sunt sigur am repeta memberName aici.
  • emailAddress - Auto Explanitory.
  • is_activated - Trebuie să fie setat la 1 din moment ce noi suntem manual activarea unui membru.
  • ID_POST_GROUP - Eu nu va mint. Nu sunt sigur ce este, dar este întotdeauna pare să se fi stabilit la 4. Deci .... Intotdeauna mi-am stabilit-o la 4. Nu cel mai bun mod de program, dar ce poti face?
  • passwd - Parola pe care doriţi să le dau de utilizator nou. Este imposibil să se seama cum de a intra fără a uita la SMF documentaţie. Buna cod pentru a cripta un SMF parolă pentru baza de date arata ca acest lucru:

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

În cele de mai sus linie de cod, $ parola este al utilizatorului real parola.

Cum se face:

/ / În primul rând, conectarea la baza de date a SMF

$ host = "hostname"; / / nume de gazdă
$ username = "nume_utilizator"; / / Mysql username
$ parola mea = "parola"; / / mysql parola
$ db_name = "nume_utilizator"; / / numele bazei de date

("cannot connect to server"); mysql_connect ( "$ host", "$ username", "$ parola mea") sau a muri ( "nu se poate conecta la server");
("cannot select DB"); mysql_select_db ( "$ db_name") sau a muri ( "nu se poate selecta 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). $ parola);

$ 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 ',' $ parola ',' $ dateRegistered ")";
("SMF Error 101.234 "); $ rezultat = mysql_query ($ query) sau mori ( "SMF Eroare 101.234");

Asta e tot ce e de el!