Архив для SMF (Simple Машина форума)

Как помочь пользователям легко Вставить видео на SMF сайта

Опубликовано в SMF (Simple Машина форум) по ShortLikeAFox по 10 августа 2008

Так вы за создание простой машины Форум основан на сайте и хотите верный путь, чтобы позволить пользователям вставлять ролики с популярных видео-сайтов (YouTube, Google Video, IGN и т.д.). Можно обоснованно бояться в позволяя пользователям просто вставлять код из этих отдельных участков, потому что Бог знает, какие будут результаты. Для решения этой проблемы так же просто, как может быть. Карл Бенсон написал модификацию пакета, что делает видео вложения также просто, как резка и вставки адрес страницы видео появится дюйм Этот пакет работает более 150 сайтов и называется AEVAC (Audio Вставить видео / аудио роликов). В последнем выпуске версии 3.1.2, и его можно найти здесь.

Это мода я очень рекомендую. Б правильно это может значительно снизить частоту и тяжесть администратор форума головные боли.

Как вручную Включить группы пользователей SMF форум Использование PHP

Опубликовано в SMF (Simple Машина форум), PHP на ShortLikeAFox от 30 июля 2008

В этом руководстве предполагается, что вы знакомы с моей должности: Как вручную включить пользователя SMF форум помощью PHP.

Недавно я столкнулся с проблемой перемещения 800 или около того полосах из базы данных в SMF форум. Я столкнулся с парой проблем при переезде, что я не охватывают в первую должность:

  1. Полоса имена не были гарантированы безопасность для посимвольно перейти в SMF данных. Поэтому какой-то изменить имя функции должно быть занято.
  2. Полос не имеют паролей. Поэтому какой-либо пароль поколение должно быть занято.

Эти шаги я ходил регистрировать все полосы в форуме пошли мало так:

Открытая база данных Band

за каждый (Band) (

Сгенерировать пароль

Переименовать Band с "безопасными" имя

Хватай и накопления информации, необходимой для вставки пользователя

Включить Band в smf_members

Band Отправить письмо с паролем

)

Информация я можно получить диапазон данных, которая является полезной включали: bandName, bandEmail и bandWebsite

Вот функция генерации паролей я использовал (blatently взяты из totallyphp.co.uk):

Функция createRandomPassword () (

$ символов = "abcdefghijkmnopqrstuvwxyz023456789";

() * 1000000); srand ((двухместный) microtime () * 1000000);

$ I = 0;

$ передвинуйте = ";



а ($ I <= 7) (

33; $ NUM = RAND ()% 33;

$ TMP = substr ($ символы, $ NUM, 1);

$ передвинуйте = $ пасс. $ TMP;

$ I + +;

)

вернуть $ проход;

)

Пароль создали здесь сравнительно слабы, но он был достаточно хорош для моих целей. Любая генерация паролей функция будет работать штрафом здесь. Я выбрал это потому, что это будет легко для членов запомнить, если они решили не изменять его.

Как это сделать:

/ / Первые подключения к базе данных полоса
Имя пользователя $ = "bandUsername";
$ принимающей = "bandHost";
$ MyPassword = "bandPassword";
$ DB_NAME = "bandDatabase";

("cannot connect to server"); mysql_connect ( "$ хост", "$ имя пользователя", "$ MyPassword") или умереть ( "не могу подключиться к серверу");
("cannot select DB"); mysql_select_db ( "$ DB_NAME") или умереть ( "Невозможно выбрать БД");

/ / Теперь захватывать все полосы из базы данных
$ запрос = "SELECT * FROM allBands";
$ полос = mysql_query ($ запроса) или умереть ( "Ошибка конфигурации 2222b");
$ userRows = mysql_num_rows ($ полос);

/ / Теперь позволяет подключаться к БД SMF
$ принимающей = "smfhost"; / / Имя хоста
Имя пользователя $ = "smfuser; / / MySQL имя пользователя
$ MyPassword = "smfpassword"; / / MySQL пароль
$ DB_NAME = "smfdatabase"; / / имя базы данных

("cannot connect to server"); mysql_connect ( "$ хост", "$ имя пользователя", "$ MyPassword") или умереть ( "не могу подключиться к серверу");
("cannot select DB"); mysql_select_db ( "$ DB_NAME") или умереть ( "Невозможно выбрать БД");

/ / $ vaild_chars будет массив разрешенных символов для пользователей. Я решил позволить только буквы и цифры. Есть и другие символы, которые можно использовать, что бы не вызвать проблемы, но по стилю причин я решил пойти с только буквы и цифры
$ valid_chars = "abcdefghijklmnopqrstu vwxyz 0 1 2 3 4 5 6 7 8 9";
$ valid_chars = взорваться ( "", $ valid_chars);

/ / Теперь нам необходимо петле в каждом диапазоне

){ за ($ i = 0; $ I <$ userRows; $ I + +) (

($bands)){ если ($ подряд = mysql_fetch_assoc ($ полос)) (

/ / Извлечение информации полоса
Экстракт ($ строка);
/ / Создать пароль для полосы
$ realPassword = createRandomPassword ();
/ / Я выбрал бы повторить bandname и пароль, а часть моей отладки и так я вижу, как функция работает
эхо ( "<br/> $ bandName - $ realPassword");
$ newBand = "";
/ / Для каждого письма в полосе название мы собираемся смотреть, чтобы, если он совпадает с действительным характером от $ valid_chars. Это не мы собираемся, чтобы избавиться от ее и обрезать полосы имя
($bandName); $j ++ ){ за ($ J = 0; $ J <strlen ($ bandName); $ J + +) (

($band[$j])); $ Temp = str_replace ($ valid_chars, "X", strtolower ($ полосы [$ J]));
если ($ Temp == "X")

newBand $ = $ newBand. диапазоне $ [$ J];

)
/ / Я поддерживаю новое название для этой же причине я поддерживаю старые имя и пароль
эхо ( "- $ newBand");
/ / У нас есть новое название группе .... Теперь давайте начнем buliding информацию нужно включить в базу данных ...
memberName $ = $ newBand;
realName $ = $ newBand / / Я реальное имя и имя то же самое. Полос может измениться, если они хотят
emailAddress $ = $ bandEmail;
websiteUrl $ = $ bandWebsite / / Со мною полосах сайта могут также войти в них
websiteTitle $ = $ newBand;
$ is_activated = 1;
$ ID_POST_GROUP = 4;
($memberName).$realPassword); //Password must be encrypted $ Password = SHA1 (strtolower ($ memberName). realPassword $) / / Пароль должен быть зашифрован

/ / Убедитесь, что не является членом их с тем же именем в SMF данных. Мы не хотим никого вводить случайно два раза
$ запрос = "SELECT * FROM smf_members ГДЕ memberName = '$ memberName";
("Config Error 2222343242b"); $ результат = mysql_query ($ запроса) или умереть ( "Ошибка конфигурации 2222343242b");
$ nrows = mysql_num_rows ($ результата);

/ / Если имя найдено ничего не делать
если ($ nrows> 0) ()

еще (

/ / Если пользователь еще не зарегистрировались на форуме, сделать это, и отправить по электронной почте ....
$ запрос = "INSERT INTO smf_members (memberName, realName, emailAddress, is_activated, ID_POST_GROUP, пароль, websiteUrl, websiteTitle) VALUES ( '$ memberName', '$ realName', '$ emailAddress',' $ is_activated ',' $ ID_POST_GROUP ' , '$ пароль', '$ websiteUrl', '$ websiteTitle') ";

("Config Error 2232 "); $ результат = mysql_query ($ запроса) или умереть ( "Конфигурация Ошибка 2232");

/ / Теперь мы должны направить группу по электронной почте
= $ до $ emailAddress;
$ SUBJECT = "Ваш форум, имя пользователя и пароль";

/ / С
$ = заголовок "От: Me <me@mysite.com>";

/ / Ваше сообщение
$ .= сообщение "Ваш логин и пароль, перечислены ниже. Вы можете либо изменить в любой момент. Если вы не хотите участвовать в наших форумах, это не проблема. Просто никогда не войти, и он будет, как ничего не произошло . \ R \ N ";
$ .= сообщение "Имя пользователя: $ memberName Пароль: $ realPassword \ R \ N";

/ / Написать письмо
$ = отправленные почтой ($ к $ при условии, $ послание, $ заголовок);
если ($ отправленные)

эхо ( "- ДА!");
/ / Это последняя часть нашей эхо. "-ДА!" будет только печатные, если сообщение отправляется. Поэтому полная распечатка строке будет выглядеть так:
/ / Адам волнений - 4s6vsxag - AdamStrife - ДА!

)

)
)

Как вручную включить пользователя SMF форум Использование PHP

Опубликовано в SMF (Simple Машина форум), PHP на ShortLikeAFox от 28 июля 2008

Этот конкретный пример для SMF 1.1.5. Я не могу гарантировать это будет работать с любой другой версии.

Таким образом вы запускаете Простые машины форум программного обеспечения и хотят ввести пользователя? Нет проблем. Я знаю, эта проблема представляется весьма конкретной, но идеи, пояснил здесь могут быть адаптированы для других типов форумов и других баз данных по инициативе программных пакетов, таких, как Wordpress. Перед тем как попасть в точности, как это сделать, давайте взглянем на то, как простые машины Форумы отслеживает пользователей. В SMF данных есть таблицы называется smf_members. Smf_members структура выглядит следующим образом:

Поле Печатать Нуль

Ключ По умолчанию Экстра
ID_MEMBER mediumint (8) неподписанными НЕТ PRI NULL auto_increment
memberName VARCHAR (80) НЕТ MUL
dateRegistered INT (10) неподписанными НЕТ MUL 0
должности, mediumint (8) неподписанными НЕТ MUL 0
ID_GROUP SMALLINT (5) неподписанными НЕТ MUL 0
lngfile tinytext НЕТ MUL
lastLogin INT (10) неподписанными НЕТ MUL 0
realName tinytext НЕТ
instantMessages SMALLINT (5) НЕТ 0
unreadMessages SMALLINT (5) НЕТ 0
buddy_list Текст НЕТ
pm_ignore_list Текст НЕТ
messageLabels Текст НЕТ
пароль VARCHAR (64) НЕТ
emailAddress tinytext НЕТ
personalText tinytext НЕТ
пол tinyint (4) неподписанными НЕТ 0
Дата рождения свидание НЕТ MUL 0001-01-01
websiteTitle tinytext НЕТ
websiteUrl tinytext НЕТ
местонахождение tinytext НЕТ
ICQ tinytext НЕТ
AIM VARCHAR (16) НЕТ
YIM VARCHAR (32) НЕТ
MSN tinytext НЕТ
hideEmail tinyint (4) НЕТ 0
showOnline tinyint (4) НЕТ 1
timeFormat VARCHAR (80) НЕТ
подпись Текст НЕТ
timeOffset поплавковый НЕТ 0
Аватара tinytext НЕТ
pm_email_notify tinyint (4) НЕТ 0
karmaBad SMALLINT (5) неподписанными НЕТ 0
karmaGood SMALLINT (5) неподписанными НЕТ 0
usertitle tinytext НЕТ
notifyAnnouncements tinyint (4) НЕТ 1
notifyOnce tinyint (4) НЕТ 1
notifySendBody tinyint (4) НЕТ 0
notifyTypes tinyint (4) НЕТ 2
memberIP tinytext НЕТ
memberIP2 tinytext НЕТ
secretQuestion tinytext НЕТ
secretAnswer VARCHAR (64) НЕТ
ID_THEME tinyint (4) неподписанными НЕТ 0
is_activated tinyint (3) неподписанными НЕТ 1
validation_code VARCHAR (10) НЕТ
ID_MSG_LAST_VISIT INT (10) неподписанными НЕТ 0
additionalGroups tinytext НЕТ
smileySet VARCHAR (48) НЕТ
ID_POST_GROUP SMALLINT (5) неподписанными НЕТ MUL 0
totalTimeLoggedIn INT (10) неподписанными НЕТ 0
passwordSalt VARCHAR (5) НЕТ

Поля мы должны обращать внимание на:

  • memberName - Self Explanitory.
  • dateRegistered - не является необходимым, но, если не заполнены дата зарегистрированных дисплеи, как 31 декабря 1969. Дата сохраняется в эпоху времени. Не знаю, как для расчета времени в вашей голове? Нет проблем. Я использую бесплатно генератор найти здесь.
  • realName - должна быть установлена. Когда я не уверен, что я просто повторяю memberName здесь.
  • emailAddress - Self Explanitory.
  • is_activated - должны быть установлены к 1, так как мы вручную активировать член.
  • ID_POST_GROUP - Я не буду лгать. Я не уверен, что это такое, но он всегда, как представляется, будет установлен на 4. Так .... Я всегда его на 4. Не самый лучший путь к программе, но что поделаешь?
  • пароль - пароль вы хотите дать новому пользователю. Невозможно понять, как на въезд, не глядя на SMF документации. Правильный код для шифрования SMF пароль для базы данных, выглядит следующим образом:

($memberName).$password) $ пароль = SHA1 (strtolower ($ memberName). $ пароль)

В приведенной выше строке кода, $ пароля пользователя фактический пароль.

Как это сделать:

/ / Во-первых, подключение к базе данных SMF

$ принимающей = "имя"; / / Имя хоста
Имя пользователя $ = "Имя пользователя"; / / MySQL имя пользователя
$ MyPassword = "пароль"; / / MySQL пароль
$ DB_NAME = "Имя пользователя"; / / имя базы данных

("cannot connect to server"); mysql_connect ( "$ хост", "$ имя пользователя", "$ MyPassword") или умереть ( "не могу подключиться к серверу");
("cannot select DB"); mysql_select_db ( "$ DB_NAME") или умереть ( "Невозможно выбрать БД");

$ memberName = "ironMan";
$ realName = "Тони Старка";
$ emailAddress = "ironMan@ironMan.com";
$ is_activated = 1;
$ ID_POST_GROUP = 4;

$ Password = "Tony1234";

($memberName).$password); $ Password = SHA1 (strtolower ($ memberName). $ паролем);

$ dateRegistered = 1216951200 / / 7-25-2008 2 AM

$ запрос = "INSERT INTO smf_members (memberName, realName, emailAddress, is_activated, ID_POST_GROUP, пароль, dateRegistered) VALUES ( '$ memberName', '$ realName', '$ emailAddress',' $ is_activated ',' $ ID_POST_GROUP ',' $ пароль ',' $ dateRegistered ') ";
("SMF Error 101.234 "); $ результат = mysql_query ($ запроса) или умереть ( "Ошибка SMF 101,234");

Это все есть в этом!