※このサンプルの解説は、「CGI(Perl)の解説」をすべて読み終えてる方を前提としています。
後になるほど省略されている場合がありますのでできるだけ順番に読んでください。
また、実行に際しては、サーバーでPHPが利用できる事を前提に解説しています。
■ フォルダ作成のツール
このツールを使えばブラウザだけでサーバーに新しいフォルダ(ディレクトリ)を作成する事ができます。
その時、そのフォルダのパーミッションも指定する事ができます。
このツールを使うに当って、「セキュリティ」面で注意が必要ですが、このサンプルでは「ユーザーID」と「パスワード」で保護してます。
- 【 解 説 】
-
まず、「HTML」で作成するフォルダ名とパーミッションを入力するフォームを作ります。
また、この処理を勝手に使われる事を避けるため、「ユーザーID」と「パスワード」の入力ボックスも用意し、管理者権限でなければ使用できないようにします。入力フォームの記述サンプルは次のような感じ。
<form method="post" action="makdir.php"> フォルダ名:<input type="text" name="folder"><br> パーミッション:<input type="text" name="fmod" size="4"><br><br> ユーザー名:<input type="text" name="userid"><br> パスワード:<input type="password" name="userpwd"><br><br> <input type="submit" value="作成"> </form>パラメータの取得方法は「PHPサンプル」-「投稿フォームの作成」で解説していますのでここでは省略します。
フォルダを作成する命令は、次のような記述方法を取ります。
mkdir((フォルダ名), (パーミッション) );具体的には、次のような感じです。
mkdir("aaa", 0666);取得したパラメータを使用してフォルダを作成する場合は、次のように記述します。
mkdir($_POST[folder], eval("0$_POST[fmod]");
※「eval("0$_POST[fmod]")」は、パラメータが文字列で入ってくるため、パーミッション記述でよく使われる「8進数」表記に変換する「ひとつの方法」です。次にチェックするための「ユーザー名」と「パスワード」を、使いやすいように次のようなそれぞれの変数にセットしておきます。
$userid = "test"; $userpwd = "test";「ユーザー名」と「パスワード」のチェックについては「PHPサンプル」-「ファイルのパーミッション変更ツール」で解説してますのでそちらを参照してください。
これに、結果表示なども組み込むと次のような感じになります。
if (($_POST[userid] == $userid) and ($_POST[userpwd] == $userpwd)){ mkdir $_POST[folder], eval("0$_POST[fmod]"); print "作成完了!<br><br>\n"; print "フォルダ名:$_POST[folder]<br>\n"; print "パーミッション:$_POST[fmod]<br>\n"; }else{ print "<h3>ユーザーID、パスワードが違います。</h3>"; }
では、まず入力用のフォームを「HTML形式」で作成します。
ファイル名は「folder.html」とするといいでしょう。
- 【記述サンプル】
- <HTML> <HEAD> <title>フォルダの作成</title> </HEAD> <BODY> <div align="center"> <h4>【フォルダの作成】</h4> </div> <table cellpadding="8" border="1" align="center"> <tr> <td bgcolor="#eeeeff"> <form method="post" action="makdir.php"> フォルダ名:<input type="text" name="folder"><br> パーミッション:<input type="text" name="fmod" size="4"><br><br> ユーザー名:<input type="text" name="userid"><br> パスワード:<input type="password" name="userpwd"><br><br> <input type="submit" value="作成"> </form> </td></tr></table> <br> </BODY> </HTML>
次に、入力フォームのデータを取得してパーミッションを変更するするPHPを作成します。
ファイル名は「folder.php」にしてください。
- 【記述サンプル】
- <?php print <<< END_DOC <HTML> <HEAD> <title>フォルダの作成</title> </HEAD> <BODY> END_DOC; $userid = "test"; $userpwd = "test"; if (($_POST[userid] == $userid) and ($_POST[userpwd] == $userpwd)){ mkdir $_POST[folder], eval("0$_POST[fmod]"); print "作成完了!<br><br>\n"; print "フォルダ名:$_POST[folder]<br>\n"; print "パーミッション:$_POST[fmod]<br>\n"; }else{ print "<h3>ユーザーID、パスワードが違います。</h3>"; } print <<< END_DOC </BODY> </HTML> END_DOC; ?>