כיצד ידנית הוספת המשתמש SMF פורום באמצעות PHP
זו דוגמה ספציפית היא עבור SMF 1.1.5. אני לא יכול להבטיח שזה יעבוד עם כל גירסה אחרת.
אז אתה מפעיל מכונה פשוטה פורום תוכנה רוצה להזין ידנית משתמש? אין בעיה. אני מכיר את הבעיה הזו נראה מאוד ספציפי, אבל הרעיונות הסביר כאן ניתן להתאים סוגים אחרים של פורומים אחרים מונעים באתר חבילות תוכנה כגון Wordpress. לפני שניכנס בדיוק איך לעשות את זה, בוא נסתכל איך שומר פשוט מכונת פורומים המסלול של משתמשים. באתר 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 | |
| שם אמיתי | 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 בראש שלך? אין בעיה. אני משתמש גנרטור חינם נמצא כאן .
- שם אמיתי - צריך להיות מוכנס. כאשר אני לא בטוח שאני פשוט חוזר memberName כאן.
- emailAddress - Explanitory עצמי.
- is_activated - חייב להיות מוגדר 1 מאז אנחנו ידנית שהפעיל חבר.
- ID_POST_GROUP - אני לא אשקר. אני לא בטוח מה זה, אבל זה תמיד נראה מוגדר 4. אז .... אני תמיד להגדיר את זה 4. לא הדרך הכי טובה בתוכנית, אבל מה אפשר לעשות?
- passwd - סיסמה שאתה רוצה לתת את המשתמש החדש. אי אפשר להבין איך להיכנס בלי להסתכל בתיעוד SMF. הקוד הנכון כדי להצפין את הסיסמה SMF עבור מסד הנתונים נראה כך:
($memberName).$password) $ Passwd = sha1 (strtolower ($ memberName). $ הסיסמה)
בשורה מעל הקוד, הסיסמה היא הסיסמה $ בפועל של המשתמש.
איך עושים את זה:
/ / ראשון, להתחבר אל מסד הנתונים של SMF
המארח $ = "המארח": / / שם מארח
$ username = "שם משתמש"; / / שם המשתמש Mysql
mypassword $ = "הסיסמה"; / / סיסמה Mysql
db_name $ = "שם משתמש"; / / שם מסד נתונים
("cannot connect to server"); mysql_connect ("המארח $," $ username "," $ mypassword ") או למות (" לא יכול להתחבר לשרת ");
("cannot select DB"); mysql_select_db ("$ db_name") או למות ("לא יכול לבחור DB");
memberName $ = "איש ברזל";
שם אמיתי $ = "טוני סטארק";
emailAddress $ = "ironMan@ironMan.com";
$ Is_activated = 1;
ID_POST_GROUP $ = 4;
הסיסמה $ = "Tony1234";
($memberName).$password); הסיסמה $ = sha1 (strtolower ($ memberName). $ סיסמה);
$ DateRegistered = 1216951200: / / 2008/07/25 02:00
שאילתה $ = "INSERT INTO smf_members (memberName, שם אמיתי, emailAddress, is_activated, ID_POST_GROUP, passwd, dateRegistered) VALUES ('$ memberName', '$ שם אמיתי', '$ emailAddress', '$ is_activated', '$ ID_POST_GROUP', ' הסיסמה $ ',' $ dateRegistered ') ";
("SMF Error 101.234 "); התוצאה $ = mysql_query ($ query) או למות ("SMF שגיאה 101.234");
זה כל מה שיש זה!








































