アーカイブSMF用(簡易機械フォーラム)

どのようにユーザーのヘルプには、簡単にサイトのSMFを埋め込む動画に

で掲示されるSMFの(単純な機械フォーラム) 2008年10年8月ShortLikeAFoxに

だから、単純な機械フォーラムベースのサイトを設定する担当にあり、確実な方法を許可する人気videoのサイト(YouTube、Googleビデオは、IGN、など)から埋め込み動画にusers。 神はどのような結果が得られます知っているので、正当恐れユーザは、単に個々のサイトから埋め込みコードを使用することができますで、可能性があります。 この問題を解決するようにすることができますように簡単です。 カールベンソンは、切断やビデオがこのパッケージにはログイン表示されるページのURLを貼り付けるだけで簡単にビデオの埋め込みを行う修正パッケージを書き込み150以上のサイトに動作しAEVAC(と呼ばれてオーディオ埋め込みビデオ/オーディオクリップ)。 最新のリリースとされるバージョン3.1.2を見つけることができますここ

これは、私は非常にお勧めモジュールです。 を正しく使用することが大幅に周波数を減らすために、フォーラムの管理者の頭痛の種の重大度可能性があります。

のユーザーへPHPの使用法をフォーラムSMFのグループをどのようにする手動で挿入

で掲示されるSMFの(簡易機械フォーラム)PHPは 2008年30 7月ShortLikeAFoxに

このチュートリアルは:前提として私に精通してあなたが投稿する方法フォーラムに手動で挿入ユーザーへSMFのPHPを使用します。

私は最近、データベースからのSMFにバンドを800以上もの移動への挑戦に直面した。 私は問題が私が最初の記事でカバーしなかったの動きを作るのカップルに直面して:

  1. バンド名は、安全な文字単位での移動SMFのデータベースにすることが保証されていない。 名のある種の機能を変更したために採用する。
  2. バンドは、パスワードを持っていない。 パスワード生成のいくつかのタイプが必要だから採用する。

手順は、私はすべてのフォーラムのバンドの登録に行ってこのような少し行った:

バンドデータベースを開く

(バンド)(

生成パスワード

名前を変更するバンド"安全"という名前の

グラブや情報を挿入するユーザーに必要な生成

挿入バンドはにsmf_members

送信バンドパスワードをEメール

情報は、私が便利に含まれてバンドデータベース:bandName、bandEmailから、利用可能なを持ち、bandWebsite

ここから使用(blatently取られる私はパスワード機能生成totallyphp.co.uk ):

関数 createRandomPassword()(

$文字="abcdefghijkmnopqrstuvwxyz023456789";

() * 1000000); srandを ((ダブル)microtime()* 1000000);

$ iは= 0;

$は、="渡します。



($ iが<= 7)

33; $ numが= ランド()%33;

$ tmpに= substrは ($文字、$ numは、1);

$は、= $渡す渡します。 $ tmpに。

$ iが+ +;



戻り値は、$を渡す。

パスワードはここで作成した比較的弱いですが、それは十分に私の目的のためによかった。 任意のパスワード生成機能は動作しますここ結構です。 私はこの1つをメンバーに簡単に、彼らはそれを変更することを選択した場合覚えておくとなるため選びました。

どのようにそれを実行する:

/ /最初は、データベースバンド接続する
$名="bandUsername";
$ホスト="bandHost";
$ mypasswordという="bandPassword";
$ db_nameに="bandDatabase";

("cannot connect to server");にmysql_connect("$ホスト"、"$ユーザ名"、"$ mypasswordという" または死ぬ ("サーバーに接続できません");
("cannot select DB"); mysql_select_db("$ db_nameに") または死ぬ (""DBの選択はできません);

/ /ここでデータベースのバンドからつかむのすべて
$クエリ="します。SELECT *からの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に") または死ぬ (""DBの選択はできません);

/ / $はvaild_chars名の文字許可の配列にする予定です。 私が番号を決め文字にのみ可能です。 ある数字文字とのみで行って他のことに使用できる文字は希望しなくなる問題をすることを決めた私はその理由が、スタイル
$ valid_chars ="abcdefghijklmnopqrstu vwxyz 0 1 2 3 4 5 6 7 8 9";
$ valid_chars =)は爆発 (""、$ valid_chars;

/ /ここで私たちがバンドに必要な各ループ

){ ($ iが<$ userRows; $ iは+ ($ iは= 0; +)

($bands)){ (バンド)) するif($行= するmysql_fetch_assoc($

/ /抽出バンド情報
)を解凍します ($行;
パスワードのバンドを作成します/ /
$ realPassword = createRandomPassword();
/ /私はそれをデバッグパスワードを一部としてのbandnameエコーを選択するおよびよう関数を見ることができる私が動作する
エコー )(172-32-1176"$ bandName - $ realPassword";
$ newBand ="";
から$ valid_chars有効な文字を、それぞれ/ /は文字と一致することはかどうかを見てのに私たちが行くバンド名。 それは名前をバンドは切り捨てとしている我々は取得し、取り除くのに
($bandName); $j ++ ){ 0($ jが=; $ jは< は、strlen($ bandName); $ jは+ +)(

($band[$j])); $ tempは= str_replaceの ($)valid_chars、"X"は、 であるstrtolowerは ($ jのバンド[ドル]);
== するif($一時の"X")

$ newBand = $ newBand。$バンドは$ j]と[;


/ /私はパスワードを、古い名前と理由私はエコーと同じ新しい名前のために
" エコー ( - $ newBand");
/ /我々は、名前を持つ新しいバンド...。 現在の聞かせてデータベースに挿入で起動する5323必要情報を私たちは...
$ memberNameに= $ newBand;
$実名= $はnewBand / /私は、同じ設定の本当の名前とメンバー名。 変更するには必要は場合することができますバンドが
$ EmailAddressの= $ bandEmail;
$ websiteUrl = $ bandWebsite / /以来、私はそれらをかもしれないとしても入力してウェブサイトを持って'バンド
$ websiteTitle = $ newBand;
$ is_activated = 1;
$ = 4のID_POST_GROUP;
($memberName).$realPassword); //Password must be encrypted $パスワードは= sha1のであるstrtolower($ memberNameに)$ realPassword); / /パスワードは、暗号化する必要があります

/ /データベースを確認のSMF名と同じメンバを確認のisn'taの。 我々は2人を入力して誤ってしたくない
$クエリ="します。SELECT * FROMはのWHERE ='$ memberNameに"をメンバー名smf_members;
("Config Error 2222343242b"); $結果= するmysql_query($クエリ) または死ぬ ("構成エラー2222343242b");
$ nrows = はmysql_num_rows($結果);

/ /場合は、メンバ名は、何もしない発見さ
するif($ nrows> 0)(

他(

/ /場合は、ユーザーではない、すでにフォーラムの署名を電子メールを行うので、送信...。
$ queryは="のINSERT INTO(実名、EmailAddressの、ID_POST_GROUPは、passwd、websiteUrl、websiteTitle is_activatedメンバー名)のVALUES('$ memberNameに'、'$'EmailAddressの'、'、'$をis_activated'$を実名を'smf_members ID_POST_GROUP' 、'$パスワード'、'$ websiteUrl'、'$ websiteTitle')";

("Config Error 2232 "); $結果= するmysql_query($クエリ) または死ぬ ("構成エラー2232");

/ /ここで我々は電子メールのバンドを送信する必要に
$に= $ EmailAddressの;
$件名="あなたのフォーラムのユーザー名とパスワード";

/ /投稿者
ドルからヘッダー=":私は<me@mysite.com>";

/ /あなたのメッセージ
$メッセージ.="あなたのログイン名とパスワードは以下のとおりです。あなたはいつでもどちらかで変更することができます。あなたは私たちのフォーラムに参加したくない場合は、問題はありませんよ。ログインするだけではない、それは何のように今まで起こったことがされます。\ r \ nを";
$メッセージ.="ユーザー名:$ memberNameにパスワード:$ realPassword \ r \ nを";

/ /メールを送信
$送信済みメール= メール ($は、$件名、$ messageは、$ヘッダー);
場合 )($送信済みメール

" エコー ( -はい!");
/ /これはエコー部の我々の最後です。 "-はい!" 送信されるメールは場合にのみ印刷されます。 このためフルプリントアウトのようなものになります行は:
/ /アダムストライフ- 4s6vsxag - AdamStrife -はい!


にSMFのフォーラム使用してPHPをユーザはどのように手動で挿入

で掲示されるSMFの(簡易機械フォーラム)PHPは 2008年28 7月ShortLikeAFoxに

この特定の例では、1.1.5 SMFのですの。 私は、バージョン、他のすべてのことで動作しない保証は。

だから、簡単な機械フォーラムソフトウェアを実行し、ユーザーが手動で入力したいですか? 問題ありません。 私はこの問題を知って非常に特殊な、しかし、そう考えはhereフォーラムや他のデータベース駆動softwareのパッケージ他の種類のWordpressのsuchとして適応と説明した。 我々はこれを行うにどのように入る前に、簡単な機械フォーラムは、ユーザーを追跡する方法を見てみましょう。 SMFのデータベースで、テーブルと呼ばれてsmf_members。 構造をsmf_membersこのようになります:

フィールド タイプ ヌル

キー デフォルト 余分な
ID_MEMBER mediumint(8)符号なし なし PRIの NULLの AUTO_INCREMENTカラム
memberNameに (80)varchar型 なし MULが
dateRegistered int型(10)なし なし MULが 0
投稿 mediumint(8)符号なし なし MULが 0
ID_GROUP smallint型(5)なし なし MULが 0
lngfile tinytext なし MULが
lastLogin int型(10)なし なし MULが 0
実名 tinytext なし
instantMessages (5)smallint型 なし 0
unreadMessages (5)smallint型 なし 0
buddy_list テキスト なし
pm_ignore_list テキスト なし
messageLabels テキスト なし
passwdコマンド (64)varchar型 なし
のEmailAddress tinytext なし
personalText tinytext なし
性別 tinyint型(4)なし なし 0
生年月日 日付 なし MULが 0001-01-01
websiteTitle tinytext なし
websiteUrl tinytext なし
場所 tinytext なし
ICQの tinytext なし
AIMの (16)varchar型 なし
イム (32)varchar型 なし
MSNの tinytext なし
hideEmail (4)tinyint型 なし 0
showOnline (4)tinyint型 なし 1
timeFormat (80)varchar型 なし
署名 テキスト なし
timeOffset フロート なし 0
アバター tinytext なし
pm_email_notify (4)tinyint型 なし 0
karmaBad smallint型(5)なし なし 0
karmaGood smallint型(5)なし なし 0
usertitle tinytext なし
notifyAnnouncements (4)tinyint型 なし 1
notifyOnce (4)tinyint型 なし 1
notifySendBody (4)tinyint型 なし 0
notifyTypes (4)tinyint型 なし 2
memberIP tinytext なし
memberIP2 tinytext なし
secretQuestion tinytext なし
secretAnswer (64)varchar型 なし
ID_THEME tinyint型(4)なし なし 0
is_activated tinyint型(3)なし なし 1
validation_code (10)varchar型 なし
ID_MSG_LAST_VISIT int型(10)なし なし 0
additionalGroups tinytext なし
smileySet (48)varchar型 なし
ID_POST_GROUP smallint型(5)なし なし MULが 0
totalTimeLoggedIn int型(10)なし なし 0
passwordSalt (5)varchar型 なし

フィールドは私たちが注意を払う必要があります:

  • memberNameに-自己Explanitory。
  • dateRegistered - 12月としてはない必要に応じて表示されますを登録して日付を記入していない場合が31日1969年。 日付はエポックタイムスタンプとして保存されます。 どのように頭の中でタイムスタンプを計算するために知っているか? 問題ありません。 私は発電機を使用して、無料がここに
  • 実名は-挿入される必要があります。 私はここmemberNameに繰り返しているだけではなく、私が確認します。
  • のEmailAddress -自己Explanitory。
  • 以来、我々のメンバーの活性化を手動で1 is_activated はに - を設定する必要がありますがあります。
  • ID_POST_GROUP -うそをつくことはありません。 私はこれがわからないんだけど、それは常に4に設定されているようだ。 だから...。 私は常に4に設定します。 プログラムには最善の方法が、あなたは何をできるか?
  • passwdファイル-パスワードをユーザーに新しいしたい与える。 ことは不可能方法を入力する把握するSMFのマニュアルを見もせずです。 適切なコードは、データベース用のSMFのパスワードを暗号化するようになります:

($memberName).$password) $)がpasswdのmemberNameに= sha1をであるstrtolowerを ($、$パスワード)

上記のコード行では、$パスワードは、ユーザーの実際のパスワードです。

どのようにそれを実行する:

/ /最初に、SMFのデータベースへの接続

$ホスト="ホスト名"; / /ホスト名
$名="ユーザ名"; / / MySQLユーザ名
$ mypasswordという="パスワード"; / / MySQLのパスワード
$ db_nameに="ユーザ名"; / /データベース名

("cannot connect to server");にmysql_connect("$ホスト"、"$ユーザ名"、"$ mypasswordという"または死ぬ ("サーバーに接続できません");
("cannot select DB"); mysql_select_db("$ db_nameに") または死ぬ (""DBの選択はできません);

$ memberNameに="鉄人";
$実名="トニースターク";
$ EmailAddressの="ironMan@ironMan.com";
$ is_activated = 1;
$ = 4のID_POST_GROUP;

$パスワード="Tony1234";

($memberName).$password); $パスワード= sha1のであるstrtolower($ memberNameに)$パスワード);

$ dateRegistered = 1216951200 / / 2008年7月25日午前2時

$ queryは="のINSERT INTO(実名、EmailAddressの、ID_POST_GROUPは、passwd、dateRegistered is_activatedメンバー名)のVALUES('$ memberNameに'、'$'EmailAddressの'、'、'$をis_activated'$を実名を'smf_members ID_POST_GROUP'、' $パスワード'、'$ dateRegistered')";
("SMF Error 101.234 "); $結果= するmysql_query($クエリ) または死ぬ ("SMFのエラー101.234");

それはとても簡単です!