##############################################################################
#
# Files Ver.2.4 （WEBファイル共有PHPスクリプト）
#
# 株式会社　テクノワークス
#
# Written by  : Takashi Miyagi
#
# Copyright (c) 2004-2008 Technoworks Co., Ltd. All rights reserved.
#
# Last Update : 2008/03/25
#
##############################################################################

ファイル名：
	files24.tgz

ソフトウェア名：
	Files Ver.2.4（WEBファイル共有PHPスクリプト）

著作権者名：
	株式会社　テクノワークス
	http://www.technoworks.co.jp

概要：
	このプログラムは、PHP4が使用可能なWEBサーバーで上で、ファイル共有機能を
	提供するPHPスクリプトです。

特徴：
	WEBサーバーに共有フォルダを作成し、クライアントからブラウザを使用して
	ファイルのアップロードやダウンロードが行えます。

	サーバーの共有フォルダの中には、複数階層のサブフォルダを作成することが
	でき、ファイルの削除、ファイルのコメント編集ができます。

	カットバッファを使用して、ファイルの切り取り、コピー、貼り付け等の機能
	を提供します。

	利用者別の複数の共有フォルダを管理することができます。
	各々の共有フォルダは、独立した先頭フォルダを持ち、互いのフォルダ間では
	参照やファイルコピーなどは出来ません。ユーザー登録も別に行います。

	FTPやSSH等が使用できない環境で、ファイルの受け渡しをする際に、メールに
	添付したのではサイズが大き過ぎる、といった場合に使用することを想定して
	います。

	ログイン時の認証には、MD5ハッシュを使用しています。
	PHPのセッションIDと、パスワードのMD5ハッシュを組み合わせ、それをさらに
	MD5ハッシュ関数にかけるといった方法で暗号化しています。

動作環境：
	Linux + Apache + PHP5 の組み合わせでしか検証していません。
	（PHP4以上が使用できるHTTPサーバーなら、使えるかもしれません）

	ログイン処理やページの切り替え処理にJavaScriptを使用しているため、
	JavaScriptとが動作することがクライアントの条件になります。

	動作検証は以下の環境で行っています。

	サーバー：
		Fedora Core 5 + Apache 2.2.2 + php 5.1.6
		Fedora Core 7 + Apache 2.2.4 + php 5.2.2

	クライアント：
		WindowsXP Pro + InternetExplorer6
		WindowsXP Pro + InternetExplorer7
		WindowsXP Pro + Firefox 2.0.0.6

準備：
	WEBサーバーでPHPが使えるようにしておきます。
	共有フォルダを作成する場所がWEBサーバーから書込みきるように設定されて
	いる必要があります。（HTTPサーバーのユーザーが書込み可能にしておく。）

	PHPではファイルをアップロードできるようにしておきます。

	/etc/php.ini の設定項目の例
	  file_uploads = On		--> 必須
	  upload_max_filesize = 10M	--> アップロード最大ファイルサイズ
	  post_max_size = 10M 		--> アップロード・ファイルサイズに影響

インストール：

	HTTPサーバーがアクセス可能で、PHPスクリプトが実行可能なディレクトリに
	アーカイヴを展開します。
	filesXX（XXはバージョン番号）というディレクトリが作成され、その中に
	スクリプトファイルが展開されます。

	ex:
		tar zxvf filesXX.tgz  （XXはバージョン番号）

バージョンアップ：

	バージョンアップする場合は、設定ファイルとパスワードファイル以外の
	既存のスクリプトファイルを上書きします。
	設定ファイルは、追加項目のみを既存の設定ファイルに追加するか、新しい
	設定ファイルに既存の設定ファイルの設定内容の変更を加えて使用してください。
	データ用のフォルダの内容は変更する必要はありません。
	HTMLで使用する文字コードが、EUCからUTF8 に変わっているので、EUCで運用する
	場合は、filesXX/locale/euc/ の下のファイルとディレクトリを filesXX 直下に
	コピーするようにしてください。
	（その際も既存の設置ファイル files.confの内容を反映するのを忘れないように
	してください。）

ファイル構成：（ filesXX の XX はバージョン番号）

	filesXX/			スクリプト格納ディレクトリ
		README.txt			このファイル(UTF-8版)
		README.euc-jp		このファイル(EUC-JP版)
		README.shift-jis	このファイル(Shift-JIS版)
		README.us-ascii		このファイル(英語版)
		confmenu.php	共有フォルダ設定メニュー
		cut.php			ファイル／フォルダのカット及びコピー処理
		delconf.php		作成済みの共有フォルダ削除処理
		delete.php		ファイル／フォルダの削除処理
		dirlist.php		作成済みの共有フォルダ一覧画面
		download.php	ファイルのダウンロード処理
		edit.php		ファイル／フォルダの名称・コメント・属性編集
		files.conf		管理用の設定ファイル
						(使用されるファイル(デフォルトはUTF8))
		files.php		共有フォルダ内のファイル／フォルダの一覧画面
		files_com.php	共通サブルーチン・ファイル
		group.php		ユーザーとグループ設定処理
		icon_img.php	ファイルのアイコンイメージ定義ファイル
						ファイルのアイコンを追加する場合はこのファイルを編集
		index.php		共有フォルダへの入り口用のページ
						（login.phpにジャンプする）
		locale.php		言語及び文字コード別の文字列の設定ファイル
						（使用される設定ファイル(デフォルトはUTF8)）
		login.php		ログイン処理
		md5hash.js		クライアント用のMD5ハッシュ関数JavaScript
		mkdir.php		共有フォルダ内のフォルダ作成処理
		modconf.php		作成済みの共有フォルダの設定更新処理
		newconf.php		共有フォルダの新規作成処理
		passwd			管理用のパスワードファイル
		passwd.php		パスワード作成・変更処理
		paste.php		ファイル／フォルダのペースト処理
		session.php		セッション確立と継続のためのサブルーチン
		setconf.php		構成ファイルの配置設定処理
		upload.php		ファイルのアップロード処理

	filesXX/config/		デフォルトの共有フォルダ設定の格納用ディレクトリ
						（設定で変更できます）
						共有フォルダのエントリーページ(index.php)もここに作成される

	filesXX/data/		デフォルトの共有フォルダ・データ格納用ディレクトリ
						（設定で変更できます）

	filesXX/images/		イメージファイル格納ディレクトリ
		back.png		背景イメージ
		bmp.png			ビットマップファイルのアイコン
		copy.png		コピー・アイコン
		cut.png			切り取り・アイコン
		delete.png		削除・アイコン
		edit.png		編集・アイコン
		excel.png		エクセルデータファイルのアイコン
		folder.png		フォルダ・アイコン
		gif.png			GIFイメージファイルのアイコン
		html.png		HTMLファイルのアイコン
		iso.png			isoイメージファイルのアイコン
		lzh.png			圧縮ファイルのアイコン
		mail.png		OutlookExpressデータ(.eml)ファイルのアイコン
		movie.png		動画ファイルのアイコン
		paste.png		貼り付け・アイコン
		pdf.png			PDFファイルのアイコン
		sound.png		MIDIファイルのアイコン
		text.png		テキストファイルのアイコン
		title.png		タイトル・イメージ（デフォルトはTechnoworksのイメージ）
		unknown.png		形式の不明なファイルのアイコン
		up.png			上位フォルダ・アイコン
		wav.png			サウンドファイルのアイコン
		word.png		ワード文書ファイルのアイコン
		wordpad.png		ワードパッド文書ファイルのアイコン


	filesXX/locale/		文字コード別のファイルを格納したディレクトリ
		euc-jp/			文字コードがEUCのファイルを格納したディレクトリ
						システムで使用する文字コードがEUCの場合は、この
						中のファイルを filesXX 直下に上書きコピーする。

			locale.php	言語及び文字コード別の文字列の設定ファイル（EUC版）
						（filesXX/locale.php に上書きコピーする）
			files.conf	管理用の設定ファイル（EUC版）
						（filesXX/files.conf に上書きコピーする）
			manual/		マニュアル格納ディレクトリ（EUC版）
						（filesXX/manual に上書きコピーする）
				folder_manual.html	共有フォルダ・操作説明
				index.html			ヘルプ・メニュー
				kanri_manual.html	管理画面・操作説明
				readme.html			概要とセットアップ

		utf-8/			文字コードがUTF8のファイルを格納したディレクトリ
						システムで使用する文字コードがUTF8の場合は、この
						中のファイルを filesXX 直下に上書きコピーする。

			locale.php	言語及び文字コード別の文字列の設定ファイル（UTF8版）
						（filesXX/locale.php に上書きコピーする）
			files.conf	管理用の設定ファイル（UTF8版）
						（filesXX/files.conf に上書きコピーする）
			manual/		マニュアル格納ディレクトリ（UTF8版）
						（filesXX/manual に上書きコピーする）
				folder_manual.html	共有フォルダ・操作説明
				index.html			ヘルプ・メニュー
				kanri_manual.html	管理画面・操作説明
				readme.html			概要とセットアップ

		shift-jis/		文字コードがShift_JISのファイルを格納したディレクトリ
						システムで使用する文字コードがShift_JISの場合は、この
						中のファイルを filesXX 直下に上書きコピーする。

			locale.php	言語及び文字コード別の文字列の設定ファイル（Shift_JIS版）
						（filesXX/locale.php に上書きコピーする）
			files.conf	管理用の設定ファイル（Shift_JIS版）
						（filesXX/files.conf に上書きコピーする）
			manual/	マニュアル格納ディレクトリ（Shift_JIS版）
					（filesXX/manual に上書きコピーする）
				folder_manual.html	共有フォルダ・操作説明
				index.html		ヘルプ・メニュー
				kanri_manual.html	管理画面・操作説明
				readme.html		概要とセットアップ

		us-ascii/		文字コードがUS-ASCIIのファイルを格納したディレクトリ
						システムで使用する文字コードがUS-ASCIIの場合は、この
						中のファイルを filesXX 直下に上書きコピーする。

			locale.php	言語及び文字コード別の文字列の設定ファイル（英語版）
						（filesXX/locale.php に上書きコピーする）
			files.conf	管理用の設定ファイル（英語版）
						（filesXX/files.conf に上書きコピーする）
			manual/	マニュアル格納ディレクトリ（英語版）
					（filesXX/manual に上書きコピーする）
				folder_manual.html	共有フォルダ・操作説明
				index.html		ヘルプ・メニュー
				kanri_manual.html	管理画面・操作説明
				readme.html		概要とセットアップ

	filesXX/manual/		マニュアル格納ディレクトリ（デフォルトはUTF8版）
		folder_manual.html	共有フォルダ・操作説明
		index.html			ヘルプ・メニュー
		kanri_manual.html	管理画面・操作説明
		readme.html			概要とセットアップ

初期設定：
	展開したフォルダ内の files.conf が基本設定ファイルになっています。
	設定ファイルは、キーワード<TAB>設定値 のような構成で、１行で１つの項目を
	設定するようになっています

	特に変更が必要な箇所は、以下の２つです

		CONFIG_TOP_DIR	./config
		TOPDIR	./data

	CONFIG_TOP_DIR はパスワード・ファイルやフォルダの設定ファイルが格納される
	ディレクトリの指定なので、ブラウザでは直接参照できない場所に変更しておく
	ことをお勧めします。
	ただし、WEBサーバーの実行ユーザーが読み書きできる場所でなければなりません。

	TOPDIR も同様に、WEBサーバーの実行ユーザーが読み書きできる場所で、かつ
	ブラウザでは参照できない場所に設定したほうが良いでしょう。

	その他は初期設定のままでも使用できますが、INDEX_TOP_DIR と INDEX_TOP_URL
	は、利用するサーバーの環境に合わせて、変更することをお勧めします。
	この項目値は、ファイル一覧画面に表示されるリンクＵＲＬに使用されるので、
	相対表記ではなく絶対表記にしておくと、リンクＵＲＬも正しく表記されます。

	また、デフォルトの文字コードが UTF-8 になっているので、各システムの
	使用している文字コードにあわせて、filesXX/locale の下の文字コード別の
	ファイルを filesXX 以下に上書きコピーしてから使用してください。

	Ver.2.1 からは、設定ファイルとパスワードを格納するディレクトリを、
	管理画面で設定できるようになりました。
	共有フォルダの入り口になるページ（index.php）を格納するディレクトリも
	同じページで変更できるようになっています。

使い方：
	展開した時の設定では、展開して出来たディレクトリ中のconfigディレクトリ
	に作成する共有フォルダの設定ディレクトリが作られるようになっています。
	また、実際のデータを入れる共有フォルダも展開したディレクトリ直下のdata
	ディレクトリ以下に先頭フォルダが作成されます。

  1)基本設定の変更

	まず、http://サーバーアドレス/展開したURI/index.php にクライアントから
	ブラウザで接続します。

	ログイン画面が表示されるので、ユーザーID： admin、パスワード：nimda で
	ログインします。

	（デフォルトの管理者は admin パスワードは nimda に設定されています）

	ログインすると管理画面になるので、まず最初に構成ファイルの配置変更を行います。

	デフォルトの設定では、ファイル名のURLを直接指定すればパスワードファイルや
	設定ファイルがブラウザで閲覧できてしまいます。
	パスワードファイル中のパスワード部分はハッシュ関数を通してあるので、直接
	パスワードが見れるわけではありませんが、危険なことに変わりはありません。
	そのため、パスワードファイルと設定ファイルをブラウザで閲覧できない場所
	に移す必要があります。

	設定ファイルの場所を変更は、管理メニューの「構成ファイル配置設定」メニュー
	から行います。
	構成ファイル配置設定画面で設定を実行すると、実際にファイルの移動が行われる
	ので、注意して設定を行ってください。

	構成ファイル配置設定ができたら、次に「パスワード設定」を行います。
	admin が特権ユーザーになっていますので、必ずパスワードを変更しておいて
	ください。

  2)共有フォルダの作成：

	共有フォルダ一覧では、作成済みの共有フォルダの一覧が表示され、設定の
	修正や、削除、共有フォルダの毎のログイン画面へのジャンプが行えます。

	共有フォルダ作成では、新規に共有フォルダを作成します。
	共有フォルダの設定名が設定ファイルの格納ディレクトリ名になります。
	先頭フォルダには、実際に共有するフォルダの先頭ディレクトリを指定します。
	先頭フォルダは、WEBサーバーがアクセス可能、書込み可能な場所に設定しな
	ければなりません。
	フルパスか、スクリプトのディレクトリからの相対パスで指定します。

	このバージョンから、URLで直接参照できないディレクトリでも指定できる
	ようになったので、セキュリティを考慮するとWEBサーバーの管理下に無い
	ディレクトリを先頭フォルダに指定した方が良いかも知れません。

	WEBサーバーの管理下にあるフォルダを指定する際は、データ用のディレクトリに
	以下のような内容の .htaccess ファイルを置いて、指定URL上のページ上のリンク
	からのアクセスだけを受け付ける等の対策をした方が良いでしょう。

		SetEnvIf REFERER "^http://www\.example\.com" ref_ok
		Order deny,allow
		deny from all
		allow from env=ref_ok

	（上記はApacheの場合です。）

	その他は適当に設定してください。

	共有フォルダを作成すると、設定ファイル(files.conf)の CONFIG_TOP_DIR で
	指定したディレクトリの下に設定名と同じ名前のディレクトリが作成され、
	その中に設定ファイルとパスワード・ファイルが書き出されます。
	設定ファイル名は、設定名.conf という形式のファイル名になります。

	設定画面で編集できる内容は、設定ファイルのごく一部の項目だけです。
	設定ファイルはエディタで編集可能なので、他の詳細項目はエディタで編集
	します。

	取り敢えずは上記の設定だけで使用できると思います。

	共有フォルダを作成したら、共有フォルダ一覧画面を開きます。
	共有フォルダ一覧画面の設定名かURLが、共有フォルダのログイン画面への
	リンクになっています。

  3)共有フォルダの操作：

	一覧画面から、作成したフォルダの名称、またはURLを選択します。

	作成した共有フォルダへのログイン画面にジャンプするので、ここでも
	ユーザーID：admin 、パスワード：nimda でログインします。
	（adminのパスワードはログイン後に変更してください）

	共有フォルダの操作の基本になる、ファイル一覧の画面が表示されます。
	この画面の上部に、「フォルダ作成」「アップロード」「パスワード設定」
	の各機能へのリンクが表示されています。

	「フォルダ作成」でサブフォルダを作成し、「アップロード」でクライアント
	からファイルをアップロードします。

	作成したフォルダへの移動は、フォルダ名か行先頭のアイコンを選択します。
	下位フォルダから上位フォルダへの移動は先頭行の上位フォルダの名前か矢印
	アイコンを選択します。

	アップロードしたファイルの名前が、一覧上にリンクとして表示されます。
	ダウンロードする場合は、このリンクを選択してクライアントにダウンロード
	します。
	コメントの編集や削除、複写、切取はファイル名の横のアイコンを選択します。

  4)設定ファイルの編集：

	設定ファイルの日本語文字コードはシステムで使用する文字コードで記述し、
	改行はLFのみを使用します。

	設定項目は１行に１項目を記述し、

	キーワード<tab>設定値１<tab>[設定値２]<tab>[設定値３]<LF>

	という形式になっています。
	
	キーワードは行頭から開始し、値との区切りは必ず１つのTabで区切ります。
	区切りに複数のTabを入れてはいけません。
	キーワードの種類によって、設定値２、設定値３が無いものもあります。

	行頭が # の行はコメント行です。

	設定ファイルの項目については、設定ファイルの先頭にコメントで表記されて
	いますので、そちらを参照してください。

利用規定：

・使用条件
	個人使用、非営利目的の使用に於いては無償で利用できます。
	このソフトで直接利益を得るのでなければ、企業での利用も可です。

・配布について
	編集・改造を行っていない状態での再配布は自由です。

・変更・改造について
	変更・改造は自由に行えますが、変更を加えたものを再配布する場合は、
	変更内容を明記したドキュメントを配布物に含める必要があります。
	ただし、著作権情報に関する部分の編集は不許可とします。
	このソフトウェアのソースコードの全て、もしくは一部を他のソフトウェアに
	無断で使用することはできません。 

・免責事項
	このソフトウェアを使用したことで利用者が何らかの不利益を被ったとした
	としても、それに関して当社はいっさい責任を負いません。
	自己責任でご使用ください。

・バグ・要望について
	バグや要望については、メールでお願いします。
	ただし、バグ修正、要望の反映が保証される物ではありません。

	ご意見・ご要望を記入していただけるように、掲示板を設置しました。
		URL: http://www.technoworks.co.jp/forum/forum.php

著作権情報：
	このソフトウェアの著作権は（株）テクノワークス が保有します。
	このソフトウェアは日本国著作権法および国際条約により保護されています。
	利用規定の範囲内で使用することを許諾しますが、利用規定に違反して使用、
	配布などを行うと、著作権の侵害となりますのでご注意ください。

連絡先：
	株式会社　テクノワークス
	webmaster@technoworks.co.jp

更新履歴：

Ver.1.0.0  2004/04/27 初版

Ver.1.0.1  2004/05/12
	Tableのサイズ指定を固定サイズ（ピクセル）指定から相対サイズ
	（パーセント）指定に変更
	ヘルプを追加

Ver.1.0.2  2004/05/18
	files_com.php の get_post_get_val() を修正してバックスラッシュに
	よるエスケープに対処

Ver.1.0.3  2004/05/23
	MacOS上のブラウザでMD5ハッシュ化の JavaScript が正しく動作しない為
	設定ファイルにMD5の使用条件、MD5_PASSWD_USE を追加し、値として
	YES、NO、NO_MAC の3種類を設定できるように修正。

Ver.1.0.4  2005/08/02
	ファイルのアイコン定義ファイルを別ファイルに切り出して、編集方法を
	コメントで付加。（アイコン追加の要望があったため）
	
	ヘルプにダウンロード方法の記述が無かったので、追加しました。

	ファイル・アップロード時に上書きの確認をするように修正。

	管理者のデフォルト・パスワードをブランクでなく設定ファイルで指定
	されたものにするように修正。
	デフォルトでは、以下の設定になっています。
		管理者ユーザーID： admin
		管理者パスワード： nimda

Ver.2.0	2007/09/05
	・表示する文字列の変更を locale.php のみの修正で行えるように、
	　表示文字列を locale.php に配列として分離した。
	　表示する文字列取得は get_txt() を使用して行うように修正。
	・ユーザーとグループでのパーミッション設定機能を追加した。
	・ファイルのダウンロード方法をリンクではなくダウンロードスクリプトを
	　使用するように変更した。（これにより、データフォルダがWEBサーバーの
	　管理下でなくてもダウンロード可能となった。）
	・設定ファイルで、スクリプトが作成するファイルのパーミッションを、
	　全てのユーザーが読み書き可能に出来るようにした（PERMIT_ALL=YES）。
	・文字コード別に設定ファイルを用意した。
	　filesXX/locale の下に文字コードに依存するファイル用のディレクトリを
	　用意して、euc-jp、utf-8、shift-jis、us-ascii の4種類の文字コード用の
	　設定ファイルを用意した。

Ver.2.1	2007/12/01
	・ログイン画面へのリンクを記述したindex.phpファイルを設定ファイルを、
	　パスワードファイルとは別の場所に作成できるようにした。
	・ダウンロード・スクリプト download.php の余分な記述を削除した。
	・管理メニューに構成ファイル配置設定を追加した

Ver.2.1	2007/12/02
	・index.php のスクリプトのＵＲＬが絶対パス指定になっていたので
	　相対パスに修正をしました

Ver.2.2	2007/12/07
	・Ver.2.1 でリリースしたスクリプトの中の、文字コードが UTF-8 のファイルに
	　BOMが混入してるものがあったので、差し替えた。

Ver.2.3 2008/02/09
	・PHP 4.3.3 以前のバージョンで、session_start() でエラーになる場合が
	　あったので、session_start() の前に ini_set()を実行するように修正した

	・PHP4でサポートされていない関数 stripos() を使用していたので、代わりに
	　stristr() を使うように変更した。

	・構成ファイル配置設定で、設定ファイル用フォルダのパスが同じままで設定
	　された場合、元の設定ファイルを消してしまう不具合を修正した。

Ver.2.4 2008/03/25
	・ログイン画面への接続用のURLを表示するようにした

	・ダウンロード・ファイルのリンク方法を変更した。

	・日本語名のファイルをダウンロードする際に、ブラウザの種類を考慮して
	　ファイル名を変換するようにした。

	・カットバッファのファイルへのリンク先が間違っていたので修正した

-- End --
