php

簡単なCMSを作ってみよう

梅木千世で

御座います。

法人ホームページなんか作っているとよくあるんですが、クライアントが更新しやすいようにCMSにする事があります。
というとWordPressで作ればいいんですが、せっかくWordPressで作ってもトップページしか更新しないのではかけた時間がもったいないですので、
今日は既存のWebサイトの、更新履歴など一部分をCMSぽくするPHPを書いてみました。

ターゲットとなる本体ページ「include.php」
入力フォーム「article_form.php」
プログラム本体「fputs.php」
更新に使う上書きファイル「article.php」(「deta」というフォルダの中に格納する事にします)

article.phpはとりあえず空でいいです。

はずは送信に使うフォーム。事実上の管理ページになります。

<DOCUTYPE html>
<html>
<head><title>フォームの送信</title>
<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″ />

</head>
<body>

<form action=”fputs.php” method=”post”>

<p>
本文:<br>
<textarea name=”writingtext” rows=”40″ cols=”80″></textarea><!–writingtextの値をfputsに送っています–>
</p>
<p>
<input type=”submit” value=”送信”><input type=”reset” value=”リセット”>
</p>
</form>
</body>
</html>

次にプログラム本体。

<?php

$comment = $_POST[“writingtext”];/*受け取った値を$commentに代入します*/

$column = $comment.”\n\n”;/*受け取った値を$commentと改行コード2つ(1個だと行の終わりになり改行しない)を$columnに代入します*/

$file = fopen(“./deta/article.php”,”wb”);/*detaに格納したarticleを上書きモードで呼び出します*/
flock($file,LOCK_EX);/*自分以外が編集できると困るので排他的にロックします*/
fputs($file,$column);/*article.phpファイルに$columnを書き込みます*/
flock($file,LOCK_UN);/*排他的ロックをやめます*/
fclose($file);/*ファイルを閉じます*/

?>

<DOCUTYPE html>
<html>
<head>
<title>フォームの入力</title>
<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″ />

</head>
<body>

<p>
書き込みが完了しました。<br>
</p>
<p>
<a href=”include.php” target=”_blank”>ページを確認する</a>
</p>
<a href=”article_form.php”>入力ページ</a>
<p>

</p>

</body>
</html>

最後に更新されたファイルを読み込んでHTMLにします。

<DOCUTYPE html>
<html>
<head><title>インクルードを使う</title>
<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″ />

</head>
<body>

<p>
<?php include(“deta/article.php”); ?>/*articleはHTMLの形をしていないので、HTMLを書くファイルに埋め込みます*/
</p>

</body>
</html>

こんな感じで、最低限それっぽいファイルができたんじゃないかと思います。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です