Si të manualisht Fut një User në një forum SMF Përdorimi PHP
Ky shembull i veçantë është për SMF 1.1.5. Unë nuk mund të garantojë se do të punojë me ndonjë version tjetër.
Kështu që ju drejtuar Simple Machine Forum Software dhe duan të dorë të hyrë në një përdorues? Nuk ka problem. Unë e di këtë problem duket shumë specifike, por idetë shpjegoi këtu mund të përshtatet për lloje të tjera të forumeve dhe bazës së të dhënave të tjera të paketave software shtyrë të tilla si Wordpress. Para se të marrim në saktësi se si ta bëni këtë, le të marrin një sy se si Simple Machine Forum mban gjurmët e përdoruesit. Në bazën e të dhënave SMF ka një tabelë të quajtur smf_members. Smf_members Struktura duket si ky:
| Fushë | Lloj | I pavlefshëm | Kyç | Default | Shtesë |
|---|---|---|---|---|---|
| ID_MEMBER | mediumint (8) unsigned | JO | PRI | NULL | auto_increment |
| memberName | VARCHAR (80) | JO | Mul | ||
| dateRegistered | int (10) unsigned | JO | Mul | 0 | |
| Postimet | mediumint (8) unsigned | JO | Mul | 0 | |
| ID_GROUP | smallint (5) unsigned | JO | Mul | 0 | |
| lngfile | tinytext | JO | Mul | ||
| lastLogin | int (10) unsigned | JO | Mul | 0 | |
| realname | tinytext | JO | |||
| instantMessages | smallint (5) | JO | 0 | ||
| unreadMessages | smallint (5) | JO | 0 | ||
| buddy_list | tekst | JO | |||
| pm_ignore_list | tekst | JO | |||
| messageLabels | tekst | JO | |||
| passwd | VARCHAR (64) | JO | |||
| emailAddress | tinytext | JO | |||
| personalText | tinytext | JO | |||
| gjini | tinyint (4) unsigned | JO | 0 | ||
| Ditëlindja | data | JO | Mul | 0001-01-01 | |
| websiteTitle | tinytext | JO | |||
| websiteUrl | tinytext | JO | |||
| vend | tinytext | JO | |||
| ICQ | tinytext | JO | |||
| AIM | VARCHAR (16) | JO | |||
| YIM | VARCHAR (32) | JO | |||
| MSN | tinytext | JO | |||
| hideEmail | tinyint (4) | JO | 0 | ||
| showOnline | tinyint (4) | JO | 1 | ||
| timeFormat | VARCHAR (80) | JO | |||
| nënshkrim | tekst | JO | |||
| timeOffset | nxjerr në shitje | JO | 0 | ||
| avatar | tinytext | JO | |||
| pm_email_notify | tinyint (4) | JO | 0 | ||
| karmaBad | smallint (5) unsigned | JO | 0 | ||
| karmaGood | smallint (5) unsigned | JO | 0 | ||
| usertitle | tinytext | JO | |||
| notifyAnnouncements | tinyint (4) | JO | 1 | ||
| notifyOnce | tinyint (4) | JO | 1 | ||
| notifySendBody | tinyint (4) | JO | 0 | ||
| notifyTypes | tinyint (4) | JO | 2 | ||
| memberIP | tinytext | JO | |||
| memberIP2 | tinytext | JO | |||
| secretQuestion | tinytext | JO | |||
| secretAnswer | VARCHAR (64) | JO | |||
| ID_THEME | tinyint (4) unsigned | JO | 0 | ||
| is_activated | tinyint (3) unsigned | JO | 1 | ||
| validation_code | VARCHAR (10) | JO | |||
| ID_MSG_LAST_VISIT | int (10) unsigned | JO | 0 | ||
| additionalGroups | tinytext | JO | |||
| smileySet | VARCHAR (48) | JO | |||
| ID_POST_GROUP | smallint (5) unsigned | JO | Mul | 0 | |
| totalTimeLoggedIn | int (10) unsigned | JO | 0 | ||
| passwordSalt | VARCHAR (5) | JO |
Fushat e ne duhet t'i kushtojnë vëmendje të:
- memberName - Explanitory Vetë.
- dateRegistered - A nuk është e nevojshme, por në qoftë se nuk plotësohet nga data e regjistruara tregon si 31 dhjetor 1969. Data e ruhet si një Ndërmjetës epoke. A nuk e di se si të llogaritur timestamps në kokën tuaj? Nuk ka problem. I use gjenerator pa gjetur këtu .
- realname - duhet të shtohet. Kur unë nuk jam i sigurt se unë vetëm e përsëris memberName këtu.
- emailAddress - Explanitory Vetë.
- is_activated - Duhet të jetë vendosur në 1 sepse jemi me dorë aktivizimin një anëtar.
- ID_POST_GROUP - Unë nuk do të gënjeshtër. Unë nuk jam i sigurt se çfarë është kjo, por ajo gjithmonë duket të jetë e vendosur për të 4. Pra .... Unë gjithmonë e vendosur atë në 4. Nuk është mënyra më e mirë për të programit, por çfarë mund të bëni?
- passwd - fjalëkalimin që dëshiron të japë përdorues të ri. Është e pamundur të kuptoj se si të hyjnë pa shikuar në dokumentacionin SMF. Kodi i duhur për të encrypt SMF një fjalëkalim për bazën e të dhënave duket si ky:
($memberName).$password) $ Passwd = sha1 (strtolower ($ memberName). $ Password)
Në linjë mësipërme të kodit, fjalekalimin $ është fjalëkalimin aktual të përdoruesit.
Si të bëhet kjo:
/ / Së pari, lidhur me bazën e të dhënave SMF
$ host = "hostname"; / / Emri i Host
$ username = "username"; / / username MySQL
mypassword $ = "Fjalëkalimi"; / / MySQL password
db_name $ = "username"; / / emri i të Dhënave
("cannot connect to server"); mysql_connect ("host" $, "$ username", "$ mypassword") ose të vdesin ("nuk mund të lidheni me serverin");
("cannot select DB"); mysql_select_db ("$ db_name") ose të vdesin ("nuk mund të zgjidhni DB");
memberName $ = "Ironman";
realname $ = "Toni i ngurtë";
emailAddress $ = "ironMan@ironMan.com";
$ Is_activated = 1;
$ ID_POST_GROUP = 4;
$ password = "Tony1234";
($memberName).$password); $ password = sha1 (strtolower ($ memberName). $ password);
$ DateRegistered = 1216951200; / / 2008/07/25 02:00
$ query = "INSERT NË smf_members (memberName, realname, emailAddress, is_activated, ID_POST_GROUP, passwd, dateRegistered) VLERAT ('$ memberName', '$ realname', '$ emailAddress', '$ is_activated', '$ ID_POST_GROUP', ' Fjalëkalimi $ ',' $ dateRegistered ') ";
("SMF Error 101.234 "); $ rezultati = mysql_query ($ query) ose të vdesin ("Gabim SMF 101,234");
Kjo është e gjitha nuk është për atë!








































