pkwkmail2.inc.php†
サマリ | 確認画面のあるメールフォームを作るプラグインです(pkwkmail.inc.phpの後継) |
リビジョン | 0.8.8 |
対応バージョン | 1.4.7 |
投稿者 | jidaikobo |
投稿日 | |
このプラグインは?†
確認画面のあるメールフォームを生成するプラグインです。
このプラグインは pkwkmail.inc.php プラグインの後継プラグインです。php の class の勉強しがてら作ってみました。
プラグイン呼び出しの書式は以下の通りです(pkwkmail2 からマルチラインプラグインでなくなりました)。
#pkwkmail2(0)
括弧内の数字は、pkwkmail2 の id です。任意の数字を入れますが、省略した場合は id = 0 の扱いになります。
編集/利用についての条件(必ずお読みください)†
メールフォームのプラグインなので、だれでも編集できてしまうとスパムの発射台になりうるなど問題があります。
このプラグインは pukiwiki.ini.php で $modifier として設定されている人が BASIC 認証に入っていないと編集できないようにしています。
また、設定情報を :config/plugin ... 以下の wiki ページに書き込むので、管理者以外が :config 以下を編集できるような環境では用いないでください(ページ名称がコロンで始まるページに編集認証をかけるなどしてください。参考「ユーザ認証による書き込み・参照」)。
手っ取り早く試してみる方法†
あくまで試してみるためだけの措置です。実際に使うときはこの設定で運用なさらないようにしてください。
pukiwiki.ini.php の 122 行めを編集
// Site admin's name (CHANGE THIS)
$modifier = 'xxx'; ← xxx を何か別のものに。
pukiwiki.ini.php の 192 行めを編集
// Default: always fail
$adminpass = '{x-php-md5}1a1dc91c907325c69271ddf0c944bc72';
ここでは、pass を設定しています。
pukiwiki.ini.php の 233 行めを編集
ここの xxx も適当なものに変更。
// User definition
$auth_users = array(
// Username => password
'xxx' => '{x-php-md5}1a1dc91c907325c69271ddf0c944bc72',
'bar' => '{x-php-md5}f53ae779077e987718cc285b14dfbe86', // PHP md5() 'bar_passwd'
'hoge' => '{SMD5}OzJo/boHwM4q5R+g7LCOx2xGMkFKRVEx', // LDAP SMD5 'hoge_passwd'
);
pukiwiki.ini.php の 258 行めを編集($edit_auth を 1 にして、ページ編集を xxx に許可する)
// Edit auth (0:Disable, 1:Enable)
$edit_auth = 1;
$edit_auth_pages = array(
// Regex Username
'#/*#' => 'xxx',
'#HogeHoge#' => 'hoge',
'#(NETABARE|NetaBare)#' => 'foo,bar,hoge',
);
これでプラグインを有効にしたページにいくと使えるようになると思います。
できること/注意事項†
- 複数の確認画面付きメールフォームを設置できます。
- 一度作ったメールフォームは、同じ id を用いることで何回でも使えます。
- 管理画面でフォームの部品を設定できます。
- 管理画面の全般設定で各種文言などをカスタマイズできます。。
- 添付ファイルを送信できるようです*1
- 添付ファイルは確認画面で再編集すると内容が失われますので、再度添付が必要です。
- 送信できる添付ファイルの種類はデフォルトでは「jpg,jpeg,png,gif,pdf」です。変なファイルは送れないようにした方が安全だと思います。
- 添付ファイルのサイズもいちおう上限を設定できますが、サーバの設定が優先されると思います。
- フォーム部品は任意の name 属性を持てますが、name 属性が同一フォーム内で重複しないように注意してください*2。
- name 属性に name という値をあてると、自動返信メールの1行目で名前として扱われます。この動作が嫌な場合は全般設定「メールのテキスト」>「あいさつ」の欄を空欄にしてください。
- フォームの部品として、見出し(h2,h3)を各フォーム部品の間に挟むことができます。
- 同梱の pkwkmail2_date.php を同じプラグインフォルダにアップして、全般設定「プラグイン設定」に「pkwkmail2_date.php」と入れると、フォームの初期値に「%DATE%」を書いた際、現在時刻がフォームに初期値として入れられます。
- ほかにもいろいろと機能がありますが、触ってみたほうがわかると思います。
ダウンロード†
すべて UTF-8 です。EUC の場合は、文字コードを変更してお使いください。
pkwkmail2 0.83(http://www.jidaikobo.com/pukiwiki/pkwkmail2_083.zip )
pkwkmail2 0.84(http://www.jidaikobo.com/pukiwiki/pkwkmail2_084a.zip )
pkwkmail2 0.85(http://www.jidaikobo.com/pukiwiki/pkwkmail2_085.zip )
- pkwkmail2 0.88(http://www.jidaikobo.com/pukiwiki/pkwkmail2_088.zip )
ライセンス/免責†
- PukiWiki と同じライセンスです。
- 使用にあたっては自己責任でお願いします。プログラム制作者は、このプログラム利用時のいかなるトラブルの責任も負いません。
2007年9月15日 | いちおう公開 | 0.8.3 |
2007年9月18日 | フォームが複製できない不具合と必須項目が有効にならない不具合を修正 | 0.8.4 |
2007年9月25日 | メールの件名をいじれるように修正 | 0.8.5 |
2008年6月25日 | こまごまと修正 | 0.8.8 |
コメント/雑談†
- 最新版を使用していますが、どうもIDの複製が出来ないようです。pkwkmail2.inc.phpの631行目がエラーとでますねぇ。 --
- アーカイブを作るときに間違えてしまったようです。多分今度は大丈夫なので、ダウンロードし直してみてください。 -- jidaikobo &new([nodate]){date}: Invalid date string;
- 無事複製できました!このプラグインすごい使いやすいです。感謝感激。有難うございます。 --
- ご報告、感想をどうもです :) -- jidaikobo &new([nodate]){date}: Invalid date string;
- EUC のため文字コードを変更して導入させていただきました。558行目でエラーが出てしまいなぜかうまく動作しません。Fatal error: Call to undefined function: pkwk_headers_sent()というエラーなのですが初心者のため対処法がまったくわかりません。何かよいアドバイスがあれば教えていただけますでしょうか? -- Qoo
- PukiWiki 1.4.7 かそれ以上を対象にしたプラグインを、*3古いバージョンのPukiWikiに対して使おうとされているのでしょう。 -- henoheno
- henoheno さん、アドバイスをありがとうございます。古いバージョンには、pkwk_headers_sent() がなかったんですね……、存じませんでした。 jidaikobo
- 呼び出しの引数に直接メールのサブジェクトを記述するようなことはできないのでしょうか? --
- お返事遅れてすみません。……が、いまのところは、なるべくシンプルにプラグイン呼び出しをしたいと思って作った仕様なので、メールの件名を入れる仕組みは考えていません。また今度考えてみますが、いつになるか分かりません…… m(._.)m -- jidaikobo
- 使わせてもらおうと思いダウンロードしてインストールしました。 -- kane
- すみません、書いてる途中で送信してしまいました。続きですが、アクセスしたら次のエラーが起きてしまいました。Parse error: syntax error, unexpected T_IF, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' 一応 on line 1515と書いてあったのでソースの行をみたのですが、何が原因かわかりません。何かわかる方いればお願いします。 -- kane
- なんでしょかね? あとで見てみますので、ちょっとお待ちください。ちなみに php のバージョンとか分かります? -- jidaikobo
- いろいろいじってみたんですが、エラーが再現できません。心に留めておきますが、ほかに検討材料あったらお願いします。 -- jidaikobo
- 大変はずかしいのですが、管理画面というものに入る方法がわかりません。フォーム部分の大きさ等を変更したいのですが、、 --
- 私も、管理画面の入り方がわかりません。 -- noge
- 反応、遅れてすみません。このプラグインは modifier 以外がいじれてしまうと、スパム発射台になるので、modifier で BASIC 認証を通過していないと管理画面へのリンクも現れないようになっています。まずは modifier の ID で入ってみてください。 -- jidaikobo
- 基本的にログインのような認証をする事がなかった(通常ではそのようなBASIC認証は出来ない?)ので、:configに編集制限をかけて、編集認証グループIDを$modifierで設定したものと同じにしてみました。:configにアクセスし、認証画面を表示させて認証した後に設置したフォームを確認したところ管理画面のリンクが出現しました。とても初歩な質問に対して丁寧な対応ありがとうございます。これからも活用させていただきます。 --
- どちらかというと「ひとり wiki」向けのプラグインなので、BASIC 認証を通過する必要のないサイトではそういう工夫が必要になってしまいますね。使用事例レポートをありがとうございます。 -- jidaikobo
- 使ってみようと思い、インストールしてみたのですが、使用しているサーバでは"-f"オプションを付ける必要があるらしいのですが、どうしたらよいのかさっぱり分かりません。申し訳ないのですが、教えていただけますでしょうか? -- nishi
- プラグインを呼び出したページを開いたら真っ白な画面になりました。何がいけないのでしょうか? -- noge
- PukiWiki のバージョン等の情報がないと・・・(このプラグイン以外が理由かもしれないので) --
- すみません、pukiwiki 1.4.6です。 -- noge
- pluginディレクトリにmail2.iniをアップすればよいんですよね。他にもやることとかあれば、それが原因かも・・・ -- noge
- mail2.ini って何?! はいいとして、pkwkmail2 0.85 を使っているんですよね?PHP 5.2.6 (win32) で、error_reporting(E_ALL)を使って試しに動かしてみたところ、エラーが出てスクリプトが停止しました。理由はPkwkmail2 クラスの初期化時に、同じ変数名が使われているからのようです。pkwkmail2 0.85 の場合、37行目と、91行目、94行目をコメントアウトしたら、画面が表示はされるようです(そこまでしか試してないとも言う)。 --
- 反応がとっても遅くなりました。すみません。ご指摘の箇所など、近いうちに時間を作ってみておきます。 -- jidaikobo
- たしかにメンバ変数が重複していました。E_ALL で作っていたのに、なんでこれまでエラーが出なかったのかよくわかりませんが。 -- jidaikobo
- 携帯からでもフォーム使えますか?教えてください。すみません。 -- koko
- うーん、きちんと実験してないので、動作保障はありません。すみません……。 -- jidaikobo
- 正しい認識なのか分かりませんが、部品の配列は入力順で、後から並びを変えることが出来ないんでしょうか? --
- 項目を編集したら、重要度という値をいじることで変更ができると思いますよ --
- どうもありがとうございます。でも、重要度という言葉は、初心者には適切じゃないなー 順番とか順序とかな。
- 環境設定からうまく設定できないものがあるみたいです。たとえば、問い合わせという項目に入力できなかったり、ラジオが選択できなかったりしています。 -- hoge
- フォームのボタンの文字を変更することは可能でしょうか?英語サイトを作っているので漢字ではなく英語で表示させたいのです。 -- ぺけ
- 英語、ひととおり入れてたような気がするんですが、出てこないですか? -- jidaikobo