管理画面機能 ver1.4

追加ファイルを設置して管理画面機能を有効にすると、送信ログの保存・閲覧・ダウンロードと、保存されている添付ファイルの閲覧・ダウンロードがブラウザ上で出来るようになります。

管理画面機能の有効化

init.phpに追加ファイルのinit_add.phpをincludeやrequireで読み込ませるか、
設定をコピペしてZM_ADMINtrueにすると有効になります。

デフォルトではディレクトリがadminになっていますが、この名前は変更出来ます。
(ファイル名は内部でindex.phpに固定してあるので変更しないでください)
アクセス先はhttp://www.example.com/zeromail/admin/となります。

設定項目

ZM_ADMIN 管理画面を使用するかどうか(使用するならtrue
ZM_ADMINPASS ログインパスワード
ZM_ADMINDIR 管理者ディレクトリ名
LOGFILEPASS ログファイルのパス
ZM_ROOTOUT ログファイルをadminディレクトリ外に置く(YESならtrue
trueにする場合はLOGFILEPASSにrootからの絶対パスを設定
ZM_ADMIN_LOGMAX ログの最大記録行数(NULLで無制限)
$zadmuse_fid 管理画面を使用するフォームのIDとタイトル
'id'=>'タイトル' と設定すると$sidebarにセレクトメニューが表示されます。

複数のフォームを管理する ver1.4.5

ログイン画面のパスワード入力の上にフォームIDを入力する項目があります。
そこにフォームのIDを入力すれば管理先が切り替わります。
IDを入力しなかった場合はinit.phpが管理対象となります。

Example
ログイン画面

$zadmuse_fidを設定しておくと、サイドバーにフォームを切り替えるメニューが表示されるようになります。

Example
ログイン後画面

特定のIDを設定しないinit.phpのフォームIDは0です。

$zadmuse_fid = array('0'=>'お問い合わせ','2'=>'求人応募');

ログファイル

デフォルトではlog.phpがadminディレクトリ下にあります。
ファイル名は変更できますが、拡張子はPHPから変更しないでください。

adminディレクトリの外に置く場合はZM_ROOTOUTtureにして、
LOGFILEPASSにはrootからの絶対パスを設定してください。
この設定により、ドキュメントルート外にログファイルを置けるようになります。

Example
図の位置に置く場合の絶対パスは/home/user/log.phpになります。

ZM_ROOTOUTfalseの場合は、adminディレクトリ下にあるものとして動くので、
LOGFILEPASSにはファイル名のみ設定してください。
パーミッションは644でも動作しますが600(suEXEC)・606などを推奨します。

テンプレート

ファイル名はtemplate.php固定なので変更出来ません。
下記変数にメッセージなどが出力されます。

$logout ログアウトボタン
$pate_title ページタイトル
$message システムメッセージ
$table ログなどのテーブル
$sidebar メニュー

変数はいずれもPHP形式なので、テンプレートに埋め込む時はprintかechoを併用してください。

<?php print($table);?>

ログイン

ログイン画面はindex.phpにアクセスすると自動的に表示されます。ページタイトルは「ログイン」になります。
ver1.4.5以上はログインの際にフォームのIDとパスワードの入力が必要です。IDを省略した場合はinit.phpが読み込まれます。

$tableにはログイン用のフォームが出力されます。

<form action="index.php" method="post" class="login">
  <dl>
	<dt><label for="formid">Form ID:</label></dt>
	<dd><input type="text" name="id" id="formid" size="5" /></dd>  	
	<dt><label for="password">Password:</label></dt>
	<dd><input name="password" id="password" type="password" /></dd>
	</dl>
	<p class="button"><button name="mode" type="submit" value="login" id="submit">Login</button></p>
</form>

ログアウトボタン

ログイン時に限り$logoutにボタンだけ出力されます。

<form class="logout" method="post" action="">
<button value="logout" type="submit" name="mode">Logout</button>
</form>

ログ一覧画面

保存されるログはinputのnameとその名称設定で設定されているものと、送信日時・ホスト・IPです。
ログが無い場合は表示されません。

$tableに出力されるソースの例:

<form class="loglist" action="" method="post">
<div id="logs">
<table>
<thead>
<tr><th scope="col">#</th><td scope="col">送信日時</td><td scope="col">お名前</td><td scope="col">ふりがな</td><td scope="col">E-Mail</td><td scope="col">郵便番号</td><td scope="col">住所</td><td scope="col">電話番号</td><td scope="col">URL</td><td scope="col">お問い合わせ内容</td><td scope="col">ご連絡方法</td><td scope="col">ご連絡希望時間</td><td scope="col">ご連絡希望時間(詳細)</td><td scope="col">添付ファイル</td><td scope="col">添付ファイル2</td></tr></thead>
<tbody>
<tr>
<th scope="row">1</th>
<td>2010/06/25 - 10:53:22</td>
<td>ああああ</td>
<td>ああああ</td>
<td>info@example.com</td>
<td>123-4567</td>
<td>穂気都参古区出藻町12-345</td>
<td>090-2134-5678</td>
<td><a href="http://example.com/">http://example.com/</a></td>
<td>先日購入したグレートソードについてですが、メタルスライムとの戦闘で刃先が欠けてしまいました。改修をお願いしたいのですが、修理が終わるまで何日くらいかかりますか?</td>
<td>電話</td>
<td>とにかく早く連絡が欲しい</td>
<td> </td>
<td><input type="checkbox" value="a50edc47.jpg" name="delTempFile[]"><a target="_blank" href="../upfile/a50edc47.jpg">a50edc47.jpg (331.495kb)</a></td>
<td>
</td>
</tr>
</tbody>
</table></div>
<p class="button">
<button value="delete" name="mode" id="submit" type="submit">チェックしたファイルを削除</button><button value="deleteall" name="mode" id="submit" type="submit">ログを全て削除</button></p>
</form>

ファイルディレクトリの参照

一時保存ディレクトリにある全ファイルをリストアップします。
ファイル名の横にあるチェックボックスから選択して削除することが出来ます。

$tableに出力されるソースの例:

<form class="loglist" action="" method="post">
<div id="logs">
<table>
<thead>
<tr><th scope="col">#</th><td scope="col">送信日時</td><td scope="col">お名前</td><td scope="col">ふりがな</td><td scope="col">E-Mail</td><td scope="col">郵便番号</td><td scope="col">住所</td><td scope="col">電話番号</td><td scope="col">URL</td><td scope="col">お問い合わせ内容</td><td scope="col">ご連絡方法</td><td scope="col">ご連絡希望時間</td><td scope="col">ご連絡希望時間(詳細)</td><td scope="col">添付ファイル</td><td scope="col">添付ファイル2</td></tr></thead>
<tbody>
<tr>
<th scope="row">1</th>
<td>2010/06/25 - 10:53:22</td>
<td>ああああ</td>
<td>ああああ</td>
<td>info@example.com</td>
<td>123-4567</td>
<td>穂気都参古区出藻町12-345</td>
<td>090-2134-5678</td>
<td><a href="http://example.com/">http://example.com/</a></td>
<td>先日購入したグレートソードについてですが、メタルスライムとの戦闘で刃先が欠けてしまいました。改修をお願いしたいのですが、修理が終わるまで何日くらいかかりますか?</td>
<td>電話</td>
<td>とにかく早く連絡が欲しい</td>
<td> </td>
<td><input type="checkbox" value="a50edc47.jpg" name="delTempFile[]"><a target="_blank" href="../upfile/a50edc47.jpg">a50edc47.jpg (331.495kb)</a></td>
<td>
</td>
</tr>
</tbody>
</table></div>
<p class="button">
<button value="delete" name="mode" id="submit" type="submit">チェックしたファイルを削除</button><button value="deleteall" name="mode" id="submit" type="submit">ログを全て削除</button></p>
</form>

ログのダウンロード

ログ・ファイルが存在する場合にダウンロード可能になります。ログはCSV、ファイルはtar.gz形式です。
ファイルの圧縮はシステムコマンドを使っているので、Linuxサーバーのみ動作します。(Windowsサーバーだと動かない)

$tableに出力されるソースの例:

<form class="download" action="" method="post">
<div id="downloads">
<table>
<thead><th scope="col">対象</th><td scope="col">概要</td><td scope="col">ダウンロード</td></thead>
<tbody>
<tr><th scope="row">log.php</th>
<td><dl><dt class="mtime">最終更新日時</dt><dd class="mtime">2010/06/25 - 04:27:16</dd>
<dt class="count">ログ件数</dt><dd class="count">1</dd></dl></td><td><button value="dl_csv" name="mode" type="submit">OK</button><p class="option"><label><input type="checkbox" value="allclear" name="option">ログを全て削除</label></p></td></tr><tr><th scope="row">upfile/</th><td><dl><dt class="count">ファイル数</dt><dd class="count">1</dd></dl></td><td>
<button value="dl_dir" name="mode" type="submit">OK</button><p class="option"><label><input type="checkbox" value="allclear" name="option">ファイルを全て削除</label></p></td></tr>
</tbody>
</table>
</div></form>