कैसे मैन्युअल डालें एक प्रयोक्ता के लिए एक SMF फोरम में PHP का प्रयोग

SMF (सरल मशीन फोरम), जुलाई पर ShortLikeAFox द्वारा PHP 28, 2008 में तैनात

यह विशिष्ट उदाहरण SMF 1.1.5 के लिए है. मैं इसे किसी भी दूसरे संस्करण के साथ काम करेंगे गारंटी नहीं दे सकते.

तो क्या आप सरल मशीन फोरम सॉफ्टवेयर चलाने और स्वयं एक प्रयोक्ता प्रवेश करना चाहते हैं? कोई समस्या नहीं है. मैं इस समस्या को बहुत खास लगता है, लेकिन पता विचारों यहाँ मंचों और अन्य डेटाबेस Wordpress जैसे सॉफ्टवेयर संकुल संचालित अन्य प्रकार के लिए अनुकूलित किया जा सकता है के बारे में बताया. इससे पहले कि हम वास्तव में यह कैसे करना पड़ जाना है, ले कैसे सरल मशीन Forums उपयोगकर्ता का ट्रैक रखता है पर एक नज़र करते हैं. इस SMF डेटाबेस में एक मेज कहा जाता है smf_members. यह संरचना smf_members इस तरह दिखता है:

मैदान प्रकार अशक्त

कुंजी चूक अतिरिक्त
ID_MEMBER mediumint (8) अहस्ताक्षरित NO PRI Null auto_increment
memberName varchar (80) NO एमयूएल
dateRegistered int (10) अहस्ताक्षरित NO एमयूएल 0
पोस्ट mediumint (8) अहस्ताक्षरित NO एमयूएल 0
ID_GROUP smallint (5) अहस्ताक्षरित NO एमयूएल 0
lngfile tinytext NO एमयूएल
lastLogin int (10) अहस्ताक्षरित NO एमयूएल 0
realName tinytext NO
instantMessages smallint (5) NO 0
unreadMessages smallint (5) NO 0
buddy_list पाठ NO
pm_ignore_list पाठ NO
messageLabels पाठ NO
passwd varchar (64) NO
emailAddress tinytext NO
personalText tinytext NO
लिंग tinyint (4) अहस्ताक्षरित NO 0
जन्मतिथि तिथि NO एमयूएल 0001-01-01
websiteTitle tinytext NO
websiteUrl tinytext NO
स्थान 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
हस्ताक्षर पाठ NO
timeOffset फ्लोट NO 0
अवतार tinytext NO
pm_email_notify tinyint (4) NO 0
karmaBad smallint (5) अहस्ताक्षरित NO 0
karmaGood smallint (5) अहस्ताक्षरित 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) अहस्ताक्षरित NO 0
is_activated tinyint (3) अहस्ताक्षरित NO 1
validation_code varchar (10) NO
ID_MSG_LAST_VISIT int (10) अहस्ताक्षरित NO 0
additionalGroups tinytext NO
smileySet varchar (48) NO
ID_POST_GROUP smallint (5) अहस्ताक्षरित NO एमयूएल 0
totalTimeLoggedIn int (10) अहस्ताक्षरित NO 0
passwordSalt varchar (5) NO

खेतों हम ध्यान देने की जरूरत है:

  • memberName - स्व Explanitory.
  • dateRegistered - है, लेकिन जरूरी नहीं है यदि तारीख 31 दिसंबर 1969 के रूप में प्रदर्शित करता है पंजीकृत बाहर भर नहीं है. दिनांक एक युग टाइमस्टैम्प के रूप में सहेजा है. कैसे अपने सिर में timestamps की गणना करने के लिए नहीं पता? कोई समस्या नहीं है. मैं यहाँ पाया मुफ्त जनरेटर का उपयोग करें.
  • realName - डाला जाना चाहिए. जब मैं मैं बस memberName यहाँ दोहराने यकीन नहीं है.
  • emailAddress - स्व Explanitory.
  • जब से हम स्वयं एक सदस्य को सक्रिय कर रहे हैं is_activated - 1 करने के लिए सेट किया जाना चाहिए.
  • ID_POST_GROUP - मैं झूठ नहीं बोलूँगी. मैं यह क्या है यकीन नहीं है, लेकिन यह हमेशा से 4 करने के लिए सेट किया जा रहा है. तो .... मैं हमेशा से 4 करने के लिए यह निर्धारित किया है. कार्यक्रम करने का सबसे अच्छा तरीका नहीं है, लेकिन आप क्या कर सकते हैं?
  • passwd - कूटशब्द आप नये उपयोगकर्ता देना चाहता हूँ. यह कैसे SMF दस्तावेज़ीकरण देख बिना प्रवेश करने के लिए पता करने के लिए असंभव है. यह उचित कोड डेटाबेस के लिए एक SMF पासवर्ड एन्क्रिप्ट करने के लिए इस तरह दिखता है:

($memberName).$password) $ passwd = sha1 (strtolower ($ memberName). $ पासवर्ड)

कोड के ऊपर की रेखा में, $ पासवर्ड उपयोगकर्ता के वास्तविक कूटशब्द है.

कैसे करना है:

/ / पहले, SMF डेटाबेस से कनेक्ट

$ मेजबान = "होस्टनाम"; / / मेजबान नाम
$ उपयोगकर्ता नाम = "उपयोगकर्ता नाम", / / MySQL प्रयोक्ता नाम
$ mypassword = "कूटशब्द"; / / MySQL पासवर्ड
$ db_name = "उपयोगकर्ता नाम", / / डाटाबेस नाम

("cannot connect to server"); "मेजबान (" $ mysql_connect, "$ उपयोगकर्ता नाम", "$ mypassword") या मर ( "सर्वर से") कनेक्ट नहीं कर सकते हैं;
("cannot select DB"); mysql_select_db ( "$ db_name") या मर ( "") DB का चयन नहीं कर सकते हैं;

$ memberName = "ironMan";
$ realName = "टोनी स्टार्क";
$ emailAddress = "ironMan@ironMan.com";
$ = 1 is_activated;
$ ID_POST_GROUP = 4;

$ कूटशब्द = "Tony1234";

($memberName).$password); $ कूटशब्द = sha1 (strtolower ($ memberName). $ पासवर्ड);

$ = 1216951200 dateRegistered; / / 7/25/2008 2

$ क्वेरी = "घुसाएँ में, '$' emailAddress, '$' is_activated, '$ realName' '$ memberName' (, emailAddress, ID_POST_GROUP, dateRegistered passwd is_activated realName) memberName मूल्यों ( '$ smf_members ID_POST_GROUP', ' $ कूटशब्द ',' $ dateRegistered ') ";
("SMF Error 101.234 "); $ परिणाम = mysql_query ($ क्वेरी) या मर ( "SMF त्रुटि 101,234");

यह सब वहाँ यह करने के लिए है!