※ ChatGPTを利用し、要約された質問です(原文:PHPについて質問です。)
PHPのCMS機能を応用してフォームの内容を指定した場所に追記するシステムの作り方
このQ&Aのポイント
PHPのCMS機能を使い、既存のPHPファイルにフォームの内容を追記したい場合、以下の手順が必要です。
まず、フォームの内容を受け取るnew.phpファイルを作成します。このファイルには<form>タグを使い、<textarea>要素を用意し、送信ボタンを設置します。
次に、makefile.phpというファイルを作成し、このファイルにはフォームの内容を受け取り、指定した場所に追記するプログラムを記述します。追記したい場所はindex.phpファイル内の{{次からここに追記したい}}の部分です。
PHPのCMS機能を応用して既存のPHPファイル(例ではindex.php)の指定した場所にフォームの内容を追記していくシステムを作りたいのですがよくわかりません。
文字だけだとわかりにくいため簡単な例を
参考サイト→http://php.muzin.org/miniblog/
[[index.php (追記したいファイル)]]
<html><head>
</head>
<body>
<div></div> //テンプレート
{{次からここに追記したい}}
</body></html>
[[template.php (テンプレート)]]
<div><%PAGECONTENTS></div>
[[new.php(フォーム)]]
<html><head>
<form action="makefile.php" method="POST">
<textarea name="honbun" rows="5" cols="50"></textarea><br />
<input type="submit" value="送信" />
</form>
</head>
</html>
[[makefile.php(追記するためのプログラム)]]
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=euc-jp">
</head>
<body>
<?php
if ($_POST{"honbun"}) {
//フォームに記入されていればファイル生成開始
$honbun = $_POST{"honbun"};
//文字コードをEUCに変換
$honbun = mb_convert_encoding($honbun, "EUC-JP","AUTO");
//クオーテーションマークを変換
if(get_magic_quotes_gpc()) { $honbun = stripslashes($honbun); }
// index.phpに追記
$filename = "index.php";
// ファイル生成&書き込み
$handle = fopen( $filename, 'w');
fwrite( $handle, $honbun);
fclose( $handle );
// メッセージ表示
echo $filename. "に追記しました";
} else {
echo "フォームから記事の内容を送信してください。";
}
?>
</body>
</html>
以上です。
このままだとお察しの通りindex.phpの</html>の後に<div></div>が記入されてしまいます(多分)。
これのどこを変えればindex.phpの{{次からここに追記したい}}の場所に追記することができますか?
わかりにくい場合は言ってもらえれば追記します。
回答よろしくお願いします。
補足
なるほど、理解しました。 番号で言うと2番です。 ここでは乱数を用いたファイル作成が書かれています。 それを<html>~</html>間への追記に変更したいのです。