演習課題「掲示板に投稿結果を書き込む」
右の環境には、PHPで1行掲示板のプログラムが作成してありますが、投稿一覧にデータが追加されません。投稿一覧に投稿結果が以下の形式で追加されるように、プログラムを修正してください。
Article,Name
採点して、すべてのジャッジに正解すれば、演習課題クリアです!
#08:1行掲示板を作ろう - 投稿をファイルに保存する
ここでは、数回に渡って、PHPを使ったWebアプリケーションの具体例として、簡単な1行掲示板を作成します。いよいよ、投稿をファイルに保存する機能を作成してみましょう。
末尾を改行しておく。
public_html/articles.txtHello World,paiza
Hello Ruby,paiza
Hello Sinatra,paiza
世界の皆さんコンニチハ,霧島
にゃー,ネコ
public_html/bbs.php<?php
$message = 'Hello World';
$lines = file(__DIR__ . '/articles.txt', FILE_IGNORE_NEW_LINES);
require_once 'views/bbs.tpl.php';
public_html/views/bbs.tpl.php<!DOCTYPE html>
<html lang='ja'>
<?php include('header.inc.php'); ?>
<body>
<h1>1行掲示板</h1>
<p><?= $message ?></p>
<form action='result.php' method='post'>
<label for='article'>投稿</label>
<input type='text' name='article'>
<p></p>
<label for='name'>名前</label>
<input type='text' name='name'>
<button type='submit'>送信する</button>
</form>
<h2>投稿一覧</h2>
<?php foreach ($lines as $line) { ?>
<p><?= $line ?></p>
<?php } ?>
<?php include('footer.inc.php'); ?>
</body>
</html>
public_html/result.php<?php
$message = 'This is paiza';
$article = htmlspecialchars($_REQUEST['article']);
$name = htmlspecialchars($_REQUEST['name']);
$line = $article . ',' . $name . PHP_EOL;
file_put_contents(__DIR__ . '/articles.txt', $line, FILE_APPEND | LOCK_EX);
require_once 'views/result.tpl.php';
cd public_html
chmod -v a+w articles.txt
public_html/views/result.tpl.php<!DOCTYPE html>
<html lang='ja'>
<?php include('header.inc.php'); ?>
<body>
<h1>書き込みました</h1>
<p><?= $message ?></p>
<p>
<?php
if(isset($article)) {
echo $article . ', ';
}
if(isset($name)) {
echo $name;
}
?>
</p>
<form action='bbs.php' method='get'>
<button type='submit'>戻る</button>
</form>
<?php include('footer.inc.php'); ?>
</body>
</html>
- PHP: file_put_contents - Manual
http://php.net/manual/ja/function.file-put-contents.php
- PHPでファイル書き込みを行う方法:file_put_contents() | UX MILK
http://uxmilk.jp/13027
- PHPで改行を入れるには PHP_EOLを使う(と美しい)
https://it-geek.xyz/post_734
- パーミッションなどを設定する!chmodコマンドの詳細まとめ【Linuxコマンド集】
https://eng-entrance.com/linux-command-chmod
- 【 chmod 】コマンド――ファイル/ディレクトリのパーミッション(許可属性)を変更する:Linux基本コマンドTips(14) - @IT
http://www.atmarkit.co.jp/ait/articles/1605/23/news020.html