【top.php】
<html>
<head><title></title>
</head>
<body>
<?php
// エラー処理
error_reporting(1);
// フォームデータを変数に格納
$no = "wr";
// 削除データ変数格納
$digi = $_GET['del'];
if($_POST['data3'] <> ""){ $no = $_POST['data3']; }
// ファイル削除判定
// 削除ボタンが押され、確認を行った時に削除、キャンセルの実行
if($digi <> "" || $no == "de"){
if($no == "de"){
$data = $_POST['YES'];
if($data == "はい"){
$digi = $_POST['data2'];
unlink($digi);
$message = "削除しました。";
$data = "";
$digi = "";
$no = "";
}elseif($data == "いいえ"){
$message = "キャンセルしました。";
$data = "";
$no = "";
}
}else{
// 削除ボタンのみ押された時の実行
$message = "確認メッセージを表示しました。";
$inc_link = "top.php";
$no = "de";
$box_pre = "削除しますか?";
include('top_5.php');
}
}
// 削除判定以外の実行
if($no == "wr"){
// 新規作成か上書き処理の判定
$data = $_POST['YES'];
// 上書き保存の判定
if($data == "はい"){
$filename = $_POST['data'];
$textarea = $_POST['data1'];
$message = "上書きしました。";
$data = "";
include('top_4.php');
}elseif($data == "いいえ"){
$message = "キャンセルしました。";
$data = "";
}else{
// 該当するメッセージを変数に格納する
if(!$_POST['go']){ $message = "------";
}else{
// フォームの入力確認
// 新規作成の判定
if($_POST['filename']){
$no = "wr";
include('top_1.php');
}else{ $message = "ファイル名が未入力です。"; }
}
}
}
// 画面左上に表示するメッセージ
print "結果表示:<font size='4'><b><i>" . $message . "</i></b></font>";
?>
<div style="font-size:10pt; color:#0000ff; top:8px; left:320px; position:absolute;">
【このシステムの利用方法】
</div>
<table style="font-size:10pt; color:#000000; top:20px; left:320px; width:580px; position:absolute;">
<tr>
<td>
・ 書き込みフォームにHTML言語など書き込み任意のファイル名を書き込み、ファイルの種類を.htmにして作成・上書き保存のボタンを押すとHTMLファイルが出来ます。<br>
・ ファイルの一覧には作成されたファイルを表示しています。<br>
・ ファイル名をクリックすると実行結果が見れます。<br>
・ 作成したファイルを編集や削除する事も出来ます。<br>
・ 編集をクリックすると、書き込みフォームにファイルの内容が表示されます。<br>
・ ファイルの種類はHTMLとテキストファイルのみです。<br>
</td>
</tr>
</table>
<form method="POST" action="top.php">
<div style="font-size:10pt; color:#0000ff; top:52px; left:10px; position:absolute;">【ファイル作成フォーム】</div>
<table border="0" style="top:64px; left:10px; position:absolute;">
<tr>
<td>
ファイル名
</td>
<td>
<input type="text" name="filename">
<select name="kaku">
<option>.htm</option>
<option>.txt</option>
</select>
</td>
</tr>
<tr>
<td>
<input type="submit" name="go" value="作成・上書保存">
</td>
</tr>
</table>
<div style="font-size:10pt; color:#0000ff; top:135px; left:310px; position:absolute;">【書き込みフォーム】</div>
<TEXTAREA style="font-size:10pt; background-color:#ffffff; color:#000000; top:150px; left:310px; position:absolute;" name="write" rows="25" cols="80">
<?php
//アドレスにあるデータを変数に格納
$ReWriteFile = $_GET['rewrite'];
if($ReWriteFile <> ""){ include('top_3.php'); }
?></TEXTAREA>
</form>
<div style="font-size:10pt; color:#0000ff; top:135px; left:10px; position:absolute;">【ファイル一覧】</div>
<iframe style="font-size:10pt; color:#0000ff; top:150px; left:10px; position:absolute;" src="./top_2.php" name="Yamei" width="300" height="355">
</iframe>
</body>
</html>
-------------------------------------------------------
【top_1.php】
<html>
<head><title></title>
</head>
<body>
<?php
// エラー処理
error_reporting(1);
// 入力文字チェック
if (preg_match("/^[a-zA-Z0-9_\.\-]+$/", $_POST['filename'])) {
// ファイル名を変数に格納
$filename = $_POST['filename'] . $_POST['kaku'];
// ファイルがない場合はファイルを作成し、書込み可能にする。
if(!file_exists($filename)){
include('top_4.php');
// 以下の処理で何も無ければこのメッセージが格納されたままになる
$message = "ファイル作成しました。";
}else{
$inc_link = "top.php";
$box_pre = "上書きしますか?";
include('top_5.php');
$message = "確認メッセージを表示しました。";
}
}else{
$message = "半角英数字のみ使用してください。";
}
?>
</body>
</html>
---------------------------------------------------------------------------------------
【top_2.php】
<html>
<head><title></title>
</head>
<body>
<?php
// エラー処理
error_reporting(1);
if(!$updir){ $updir = "./";}
// 作成されたファイルの一覧を表示
print "<table border='0'>";
if($dir = opendir($updir)){
while(FALSE !== ($file = readdir($dir))){
if ($file != "." && $file != ".."&& $file != "top.php"&& $file != "top_1.php" && $file != "top_2.php" && $file != "top_3.php" && $file != "top_4.php" && $file != "top_5.php"){
print "<tr><td><a href='" . $updir . $file . "' target='_blank'>" . $file . "</a></td><td><a href='top.php?del=" . $updir . $file . "' target='_top' style='text-decoration:none; border-style:outset; color=#000000; background-color=#cccccc;'>削除</a></td><td><a href='top.php?rewrite=" . $updir . $file . "' target='_top' style='text-decoration:none; border-style:outset; color=#000000; background-color=#cccccc;'>編集</a></td></tr>";
}
}
closedir($dir);
}
print "</table>";
?>
</body>
</html>
--------------------------------------------------------------------------------------
【top_3.php】
<?php
// エラー処理
error_reporting(1);
// ファイルを開き変数に格納
$openfile = fopen($ReWriteFile,"r") or die("ファイルの読み取りに失敗しました。");
// ファイル読み込みと出力
print fread($openfile,filesize($ReWriteFile));
///////////////////////////////////////////////////////////
//ファイルの読み込みと出力【fgetの場合】
//while(($line = fgets($openfile,filesize($ReWriteFile)))){
// print ltrim($line);
//}
///////////////////////////////////////////////////////////
// ファイルを閉じる
fclose($openfile);
?>
--------------------------------------------------------------------------------------
【top_4.php】
<?php
// エラー処理
error_reporting(1);
if($textarea <> ""){
$writefile = fopen($filename,'w') or die("ファイルを開けません");
flock ($writefile,LOCK_EX);
fputs ($writefile,$textarea);
flock ($writefile,LOCK_UN);
fclose($writefile);
$textarea = "";
}else{
// 変数が格納されていたら以下を実行
if($filename <> ""){
touch($filename);
chmod($filename,0755);
$writefile = fopen($filename,'w') or die("ファイルを開けません");
flock ($writefile,LOCK_EX);
fputs ($writefile,$_POST['write']);
flock ($writefile,LOCK_UN);
fclose($writefile);
}
}
?>
--------------------------------------------------------------------------------------
【top_5.php】
<form method="POST" action="<?php print $inc_link; ?>">
<table bgcolor="#ffaaff" border="0" style="top:95px; left:145px; position:absolute;">
<tr>
<td>
<?php print "<div>【" . $box_pre . "】</div>"; ?></td></tr><tr><td align="center">
<input type="submit" name="YES" value="はい">
<input type="submit" name="YES" value="いいえ">
<input type="hidden" name="data" value="<?php print $filename; ?>">
<input type="hidden" name="data1" value="<?php print $_POST['write']; ?>">
<input type="hidden" name="data2" value="<?php print $digi; ?>">
<input type="hidden" name="data3" value="<?php print $no; ?>">
</td>
</tr>
</table>
</form>