Як вручну включити користувача в SMF форум з використанням PHP
Цей конкретний приклад для SMF 1.1.5. Я не можу гарантувати це буде працювати з будь-який інший варіант.
Таким чином, ви виконаєте Simple Machine Forum Software і хочете, щоб вручну ввести користувач? Без проблем. Я знаю, що це проблема, схоже, дуже специфічних, але ідеї пояснюється тут може бути адаптована для інших типів форумів та інших базами даних програмних пакетів, таких як Wordpress. Перш ніж ми перейдемо, як саме це зробити, давайте подивимося, як Simple Machine Форуми відстежує користувачів. У базі даних SMF є таблиця, звана smf_members. Структура smf_members виглядає наступним чином:
| Поле | Тип | Нуль | Ключ | Умовчання | Додатково |
|---|---|---|---|---|---|
| ID_MEMBER | MEDIUMINT (8) непідписаних | NO | PRI | NULL | auto_increment |
| тетЬегИате | VARCHAR (80) | NO | MUL | ||
| dateRegistered | Int (10) непідписаних | NO | MUL | 0 | |
| повідомлень | MEDIUMINT (8) непідписаних | NO | MUL | 0 | |
| ID_GROUP | SMALLINT (5) непідписаних | NO | MUL | 0 | |
| lngfile | tinytext | NO | MUL | ||
| lastLogin | Int (10) непідписаних | NO | MUL | 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 | |||
| підлогу | ТШУШТ (4) непідписаних | NO | 0 | ||
| народження | день | NO | MUL | 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 | ТШУШТ (4) | NO | 0 | ||
| showOnline | ТШУШТ (4) | NO | 1 | ||
| timeFormat | VARCHAR (80) | NO | |||
| підпис | текст | NO | |||
| timeOffset | поплавець | NO | 0 | ||
| аватар | tinytext | NO | |||
| pm_email_notify | ТШУШТ (4) | NO | 0 | ||
| karmaBad | SMALLINT (5) непідписаних | NO | 0 | ||
| karmaGood | SMALLINT (5) непідписаних | NO | 0 | ||
| usertitle | tinytext | NO | |||
| notifyAnnouncements | ТШУШТ (4) | NO | 1 | ||
| notifyOnce | ТШУШТ (4) | NO | 1 | ||
| notifySendBody | ТШУШТ (4) | NO | 0 | ||
| notifyTypes | ТШУШТ (4) | NO | 2 | ||
| memberIP | tinytext | NO | |||
| memberIP2 | tinytext | NO | |||
| secretQuestion | tinytext | NO | |||
| secretAnswer | VARCHAR (64) | NO | |||
| ID_THEME | ТШУШТ (4) непідписаних | NO | 0 | ||
| is_activated | ТШУШТ (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 | MUL | 0 | |
| totalTimeLoggedIn | Int (10) непідписаних | NO | 0 | ||
| passwordSalt | VARCHAR (5) | NO |
Поля ми повинні звернути увагу на наступне:
- тетЬегИате - Self Explanitory.
- dateRegistered - не є необхідним, але якщо не заповнені датою реєстрації виглядає як 31 грудня 1969. Дата зберігається в епоху позначки. Не знаю, як розрахувати позначки у вашій голові? Без проблем. Я використовую безкоштовний генератор знайти тут .
- реальне ім'я - Повинен бути введений. Коли я не впевнений, що я просто повторюю тетЬегИате тут.
- EmailAddress - Self Explanitory.
- is_activated - повинен бути встановлений в 1, оскільки ми вручну активізації членів.
- ID_POST_GROUP - Я не буду брехати. Я не впевнений, що це таке, але завжди здається, бути встановлений на 4. Так що .... Я завжди встановити його на 4. Не найкращий шлях до програми, але що поробиш?
- Passwd - пароль, який ви хочете, щоб дати новий користувач. Неможливо зрозуміти, як туди потрапити, не дивлячись на документи SMF. Правильний код для шифрування пароля SMF для бази даних виглядає наступним чином:
($memberName).$password) $ Passwd = SHA1 (strtolower ($ тетЬегИате). $ Пароль)
У наведеній вище рядку коду, $ пароль фактичний пароль користувача.
Як це зробити:
/ / По-перше, підключитися до бази даних SMF
Приймаючою $ = "ім'я" / / ім'я хоста
$ Ім'я користувача = "Ім'я користувача" / / ім'я користувача Mysql
MyPassword $ = "пароль"; / / MySQL пароль
$ Імя_бази_данних = "Ім'я користувача" / / Ім'я бази даних
("cannot connect to server"); mysql_connect ("$ господар", "$ Ім'я користувача", "$ MyPassword"), або померти "(" Не вдається підключитися до сервера ");
("cannot select DB"); mysql_select_db ("$ імя_бази_данних") або померти ("не може вибрати БД");
$ ТетЬегИате = "Залізна людина";
$ Реальне ім'я = "Тоні Старк";
EmailAddress $ = "ironMan@ironMan.com";
Is_activated $ = 1;
ID_POST_GROUP $ = 4;
$ Пароль = "Tony1234";
($memberName).$password); $ Пароль = SHA1 (strtolower ($ тетЬегИате). $ Пароль);
$ DateRegistered = 1216951200 / / 7-25-2008 2 ранку
$ Діегу = "INSERT INTO smf_members (тетЬегИате, реальне ім'я, EmailAddress, is_activated, ID_POST_GROUP, пароль, dateRegistered) VALUES ('$ тетЬегИате', '$ реальне ім'я', '$ EmailAddress', '$ is_activated', '$ ID_POST_GROUP', ' $ пароль ',' $ dateRegistered ");
("SMF Error 101.234 "); $ Результат = mysql_query ($ запиту) або померти ("Помилка SMF 101,234");
От і все, що потрібно зробити!








































