Kā Manuāli ievietošana lietotājs SMF foruma Izmantojot PHP

Posted in SMF (Simple Machine Forum) , php ar ShortLikeAFox gada 28 jūlijs 2008

Šī īpašā piemērs ir 1.1.5 SMF. Es nevaru garantēt tā darbosies ar citu versiju.

Tātad jūs vadāt Simple Machine Forum programmatūras un vēlaties, lai manuāli ievadītu lietotājs? Nekādu problēmu. Es zinu, šī problēma šķiet ļoti specifisks, bet idejas paskaidroja, šeit var pielāgot cita veida forumus un citu datubāzi orientētu programmatūras paketes, piemēram, WordPress. Pirms mēs nokļūt tieši tā, kā to izdarīt, let's to apskatīt, kā Simple Machine Forums seko lietotājiem. Jo SMF datubāzē ir tabula sauc smf_members. Smf_members struktūra izskatās šādi:

Lauks Tips Null

Atslēga Default Extra
ID_MEMBER mediumint (8) neparakstītu NO PRI NULL auto_increment
memberName varchar (80) NO MUL
dateRegistered int (10) neparakstītu NO MUL 0
amatu mediumint (8) neparakstītu NO MUL 0
ID_GROUP smallint (5) neparakstītu NO MUL 0
lngfile tinytext NO MUL
lastLogin int (10) neparakstītu NO MUL 0
realName tinytext NO
instantMessages smallint (5) NO 0
unreadMessages smallint (5) NO 0
buddy_list teksts NO
pm_ignore_list teksts NO
messageLabels teksts NO
passwd varchar (64) NO
emailAddress tinytext NO
personalText tinytext NO
dzimums tinyint (4) neparakstītu NO 0
Dzimšanas datums datums NO MUL 0001-01-01
websiteTitle tinytext NO
websiteUrl tinytext NO
atrašanās vieta 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
paraksts teksts NO
timeOffset pludiņš NO 0
avatar tinytext NO
pm_email_notify tinyint (4) NO 0
karmaBad smallint (5) neparakstītu NO 0
karmaGood smallint (5) neparakstītu 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) neparakstītu NO 0
is_activated tinyint (3) neparakstītu NO 1
validation_code varchar (10) NO
ID_MSG_LAST_VISIT int (10) neparakstītu NO 0
additionalGroups tinytext NO
smileySet varchar (48) NO
ID_POST_GROUP smallint (5) neparakstītu NO MUL 0
totalTimeLoggedIn int (10) neparakstītu NO 0
passwordSalt varchar (5) NO

Lauki mums ir nepieciešams pievērst uzmanību:

  • memberName - Self Explanitory.
  • dateRegistered - nav nepieciešams, bet, ja nav aizpildīts datums reģistrēto parāda kā 31 decembris 1969. Datums tiek saglabāts kā laikmeta laikspiedolu. Nezinu, kā aprēķināt timestamps ar galvu? Nekādu problēmu. Es izmantoju bezmaksas ģenerators atrodams šeit .
  • realName - būtu jāiekļauj. Kad es neesmu pārliecināts, ka es tikai atkārtoju memberName šeit.
  • emailAddress - Self Explanitory.
  • is_activated - ir iestatīts uz 1, jo mēs esam manuāli aktivizētu loceklis.
  • ID_POST_GROUP - es ne meli. Es neesmu pārliecināts, kas šis ir, bet tas vienmēr šķiet, ir noteikts 4. Tā .... Es vienmēr noteikt to līdz 4. Nav labākais veids, kā programmu, bet to, ko jūs varat darīt?
  • passwd - parole, kuru vēlaties, lai dotu jaunu lietotāju. Nav iespējams izdomāt, kā ieiet bez apskatot SMF dokumentāciju. Pareizu kodu, lai šifrētu SMF paroli datubāzes izskatās šādi:

($memberName).$password) $ Passwd = sha1 (strtolower ($ memberName) paroli. $)

Iepriekš līnijas kodu, $ parole ir lietotāja faktisko paroli.

Kā to izdarīt:

/ / Pirmkārt, izveidojiet savienojumu ar SMF datubāze

$ Uzņēmēja = "resursdatora"; / / Host vārds
$ Username = "username", / / mysql username
$ Mypassword = "parole"; / / mysql paroli
$ Db_name = "username"; / / Datubāzes nosaukums

("cannot connect to server"); mysql_connect ("$ host", "$ username", "$ mypassword") vai die ("Nevar izveidot savienojumu ar serveri");
("cannot select DB"); mysql_select_db ("$ db_name") vai die ("nevar izvēlēties BP");

$ MemberName = "Ironman";
$ RealName = "Tony Stark";
$ EmailAddress = "ironMan@ironMan.com";
$ Is_activated = 1;
$ ID_POST_GROUP = 4;

$ Parole = "Tony1234";

($memberName).$password); $ Parole = sha1 (strtolower ($ memberName)). $ Parole;

$ DateRegistered = 1216951200; / / 2008/07/25 02:00

$ Query = "INSERT INTO smf_members (memberName, realName, emailAddress, is_activated, ID_POST_GROUP, passwd, dateRegistered) vērtības (" $ memberName "," $ realName "," $ emailAddress "," $ is_activated "," $ ID_POST_GROUP "," $ parole "," $ dateRegistered ")";
("SMF Error 101.234 "); $ Rezultāts = mysql_query ($ query) vai die ("SMF Kļūda 101,234");

Tas viss notiek ar to!