Kuidas käsitsi Lisa kasutaja SMF foorumi kasutamine PHP

Posted in SMF (Simple Machine Forum) , php poolt ShortLikeAFox kohta 28. juuli 2008

See konkreetne näide on SMF 1.1.5. Ma ei saa garanteerida see toimib mis tahes muu versiooni.

Nii et sa jooksed Antud Machine Foorum Tarkvara ja soovite käsitsi sisestada kasutaja? See pole probleem. Tean, et see probleem näib väga spetsiifiline, kuid ideid seletada siin saab kohandada muud liiki foorumeid ja muid andmebaasi sõita paketid nagu Wordpress. Enne kui me sattuda täpselt, kuidas seda teha, let's võtma vaadata, kuidas lihtsate Machine Foorumid jälgib kasutajatele. In SMF andmebaas on tabel nimega smf_members. Smf_members struktuur näeb välja selline:

Väli Tüüp Null

Võti Default Lisatasu
ID_MEMBER mediumint (8) signeerimata NO PRI NULL auto_increment
memberName varchar (80) NO Mitmekordsed
dateRegistered int (10) signeerimata NO Mitmekordsed 0
postitused mediumint (8) signeerimata NO Mitmekordsed 0
ID_GROUP smallint (5) signeerimata NO Mitmekordsed 0
lngfile tinytext NO Mitmekordsed
lastLogin int (10) signeerimata NO Mitmekordsed 0
realName tinytext NO
Kiirsõnumid smallint (5) NO 0
unreadMessages smallint (5) NO 0
buddy_list tekst NO
pm_ignore_list tekst NO
messageLabels tekst NO
passwd varchar (64) NO
emailAddress tinytext NO
personalText tinytext NO
sugu tinyint (4) signeerimata NO 0
sünnipäev kuupäev NO Mitmekordsed 0001-01-01
websiteTitle tinytext NO
websiteUrl tinytext NO
asukoht 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
allkiri tekst NO
timeOffset ujuk NO 0
avatari tinytext NO
pm_email_notify tinyint (4) NO 0
karmaBad smallint (5) signeerimata NO 0
karmaGood smallint (5) signeerimata NO 0
tiitel 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) signeerimata NO 0
is_activated tinyint (3) signeerimata NO 1
validation_code varchar (10) NO
ID_MSG_LAST_VISIT int (10) signeerimata NO 0
additionalGroups tinytext NO
smileySet varchar (48) NO
ID_POST_GROUP smallint (5) signeerimata NO Mitmekordsed 0
totalTimeLoggedIn int (10) signeerimata NO 0
passwordSalt varchar (5) NO

Valdkonnad peame pöörama tähelepanu järgnevale:

  • memberName - enesestmõistetavad.
  • dateRegistered - ei ole vaja, kuid kui seda ei täidetud kuupäeva registreeritud displeisid 31. detsember 1969. Kuupäev on salvestatud epohhi timestamp. Ei tea, kuidas arvutada loomisaja on su peas? See pole probleem. Ma kasutan vaba generaator leitud siin .
  • realName - tuleks lisada. Kui ma ei ole kindel, et ma lihtsalt kordan memberName siin.
  • emailAddress - enesestmõistetavad.
  • is_activated - Peab olema 1, sest me käsitsi aktiveerimine liige.
  • ID_POST_GROUP - ma ei valeta. Ma ei tea, mis see on, kuid ta on alati tundub, et määratud 4. Nii et .... Olen alati seadke 4. Ei ole parim viis programmi, kuid mida saate teha?
  • passwd - parool soovite anda uue kasutaja. On võimatu aru saada, kuidas siseneda ilma vaadates SMF dokumendid. Õige kood krüpteerimiseks SMF andmebaasi parool näeb välja selline:

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

Eespool koodirida, $ parool on kasutaja tegelikku parool.

Kuidas seda teha:

/ / Esiteks, looge SMF andmebaas

$ Vastuvõtva = "hostname" / / Serveri nimi
$ Kasutajanimi = "kasutajanimi"; / / MySQL kasutajanime
$ Mypassword = "parool"; / / MySQL parool
$ Db_name = "kasutajanimi"; / / Andmebaasi nimi

("cannot connect to server"); mysql_connect ("$ host", "$ kasutaja", "$ mypassword") or die ("ei saa ühendust serveriga");
("cannot select DB"); mysql_select_db ("$ db_name") or die ("ei saa valida 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). $ Parool);

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

$ Query = "INSERT INTO smf_members (memberName, realName, emailAddress, is_activated, ID_POST_GROUP, passwd, dateRegistered) väärtused ('$ memberName', '$ realName', '$ emailAddress', '$ is_activated', '$ ID_POST_GROUP", " $ parool ',' $ dateRegistered) ";
("SMF Error 101.234 "); $ Result = mysql_query ($ query) or die ("SMF Viga 101,234);

See kõik on see!