投稿されたメッセージをサーバーに保存する

入力されたテキストをサーバー上に保存する処理をして、読み込んで一覧表示する処理。

メッセージを入力して送信ボタンを押すと・・・
一覧に表示されました。
そして入力画面に戻ってもう一度メッセージを入力
一覧に入力した順番に表示されました。

それでは早速、作ってみましょう!

board-input.php

<?php require ‘header.php’; ?>

<p>投稿メッセージを入れてください</p>
<form action=”board-output.php” method=”post”>
<input type=”text” name=”message”>
<input type=”submit” value=”送信”>
</form>
<?php require ‘footer.php’; ?>
<form>タグで囲みます。

board.txt

投稿されたメッセージを保存しておくため、今回は「board.txt」というファイルを準備しておきます。

送信された「こんにちは」「さようなら」はUnicodeで表現されます。文字コードを4桁の16進数で表記してます。

配列にて複数のメッセージが格納されていることがわかります。

メッセージをファイルに保存する際には、JSON(ジェイソン)という形式を使います。その利点は、文字列や配列といったデータ構造を、簡単にファイルに書き込めたり、読み込めたりできることです。

board-input.php

<?php require ‘header.php’; ?>

<?php
$file = ‘board.txt’;
board.txtは変数fileに格納しておきます。
if (file_exists($file)){
   
➀存在確認
file_exists関数を使ってファイルが存在するかを調べます。指定したファイルが存在する場合はTRUE、存在しない場合はFALSEを返します。
$board = json_decode(file_get_contents($file));
}
➁文字列の取得
file_get_contents関数はファイルの全体を読み込み、内容を文字列として返します。

➂文字列の変換
読み込むファイルは、JSON形式で保存されています。そこでJSON形式の文字列を解釈してPHPの文字列や配列データに変換するjson_decode関数を使います。
$board[] = htmlspecialchars($_REQUEST[‘message’]);
file_put_contents($file, json_encode($board));
foreach ($board as $message){
    echo ‘<p>’, $message, ‘</p><hr>’;
}
?>
<?php require ‘footer.php’; ?>
「htmlspecialchars関数」
セキュリティを考慮し、有害なプログラムを実行させないためHTMLタグを無効にさせる。

「file_put_contents(ファイル名, 文字列)」
指定した文字列を指定したファイルに書き込みます。

「json_encode(値)」メッセージの配列をJSON形式に変換する
「foreach」
配列の$boardからメッセージを1個ずつ取得し、変数$messageに格納します。
<hr>タグは水平線を書きます。
PHPについて

この本から引用、参考にして学び、完成させることができました。しかし、ここではプログラミング初心者の私が詳しく解説することは、おこがましく、難しく出来ません(ToT)
その点、この本では丁寧な解説が載っていますので、解説とともにコードを書き、完成させればより深く学ぶことができます(^.^)、実際、初心者の私でもわかりやすかったです。身に付け消えないスキルが3,000円弱ならコスパよく、買っておいてよかったと満足してます。


短期間でのレベルアップにはプロから学ぶのもありです。

キャリアアップに必要なスキルを取得しよう。

オンラインで受講ができるスクールですので、全国どこからでも。

就職・転職支援