ポンクソフト

掲示板1(シンプル) - PHPでファイルの読み書き・掲示板

前ページ PHPでファイルの読み書き・掲示板 TOP 

目次

  1. PHPでファイルの読み書き・掲示板
  2. ファイルの読み込み
  3. ファイルの書き込み
  4. ファイルの読み書き(ゲストブック)
  5. 設定ファイルの読み書き
  6. CSVファイルの読み込み
  7. テキストエディタの作成
  8. アンケートシステムの作成
  9. 掲示板1(シンプル)

掲示板1

シンプルな機能の掲示板を作成します。

プログラムの作成

以下のソースを入力してください。
<?php
  function h($str) {
    return htmlspecialchars($str, ENT_QUOTES);
  }
  $rows = json_decode(file_get_contents('bbs1.json'), true);
  if (!empty($_POST['write'])) {
    $row = array(
      'name' => $_POST['name'],
      'title' => $_POST['title'],
      'contents' => $_POST['contents'],
      'time' => date("Y/m/d H:i:s")
    );
    array_unshift($rows, $row);
    file_put_contents('bbs1.json', json_encode($rows));
  }
?>
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>掲示板1</title>
</head>
<body>
<form method="post">
お名前: <input name="name"><br>
題名: <input name="title"><br>
<textarea name="contents" cols="60" rows="5"></textarea><br>
<input type="submit" name="write" value="送信">
</form>
<hr>
<?php foreach($rows as $row): ?>
  <strong><?php echo h($row['title']) ?></strong>
  <br><small>投稿者:<?php echo h($row['name']) . ' ' . h($row['time']) ?></small>
  <p><?php echo nl2br(h($row['contents']), false) ?></p>
  <hr>
<?php endforeach ?>
</body>
</html>
入力が終わったら「bbs1.php」というファイル名でウェブサーバーにアップロードします。

データファイルの作成

書き込んだ内容が入るデータファイルを作成します。
[]
とだけ入力して「bbs1.json」というファイル名でPHPファイルと同じ場所にアップロードしてください。必要ならば書き込み許可属性を与えてください。

ソースの解説

  $rows = json_decode(file_get_contents('bbs1.json'), true);
JSON形式で格納されているデータファイルの内容をデコードします。
  if (!empty($_POST['write'])) {
書き込みボタンが押されたらsubmitボタンのname属性により、POST変数writeに値が入るので、以下の書き込み処理を行ないます。
    $row = array(
      'name' => $_POST['name'],
      'title' => $_POST['title'],
      'contents' => $_POST['contents'],
      'time' => date("Y/m/d H:i:s")
    );
フォームから入力された名前・題名・本文と、投稿日時を配列に格納します。
    array_unshift($rows, $row);
データファイルの内容が入っている変数$rowsの先頭に、投稿した内容を格納します。
    file_put_contents('bbs1.json', json_encode($rows));
投稿した内容を付け加えた$rowsをJSONに戻し、ファイルbbs1.jsonに書き戻しています。
<?php foreach($rows as $row): ?>
  <strong><?php echo h($row['title']) ?></strong>
  <br><small>投稿者:<?php echo h($row['name']) . ' ' . h($row['time']) ?></small>
  <p><?php echo nl2br(h($row['contents']), false) ?></p>
  <hr>
<?php endforeach ?>
データファイルの内容を、一行づつ整形して画面に出力します。
前ページ PHPでファイルの読み書き・掲示板 TOP 
このエントリーをはてなブックマークに追加 そっか0

このページに関するコメントをどうぞ

お名前:


paywinlv
すべての
calltrackingsource.com 13s.info nhadeptrongoi.com kashinvestment.com csgo-butterfly.com anklebitergaming.com
csfire.pro envelopesstore.com ginastarmusic.com mp3-teca.com csgoodstakes.com
went.black 2pay4win.com appliancerepairsnearme.com oferta-netflix.com
techitax.com csprey.com lightshadowspace.com csboom.pro
投稿者
2017/01/24 18:04

anklebitcw
すべての
calltrackingsource.com 13s.info nhadeptrongoi.com kashinvestment.com csgo-butterfly.com anklebitergaming.com
csfire.pro envelopesstore.com ginastarmusic.com mp3-teca.com csgoodstakes.com
went.black 2pay4win.com appliancerepairsnearme.com oferta-netflix.com
techitax.com csprey.com lightshadowspace.com csboom.pro
投稿者
2017/01/24 11:35

butterfxa
すべての
calltrackingsource.com 13s.info nhadeptrongoi.com kashinvestment.com csgo-butterfly.com anklebitergaming.com
csfire.pro envelopesstore.com ginastarmusic.com mp3-teca.com csgoodstakes.com
went.black 2pay4win.com appliancerepairsnearme.com oferta-netflix.com
techitax.com csprey.com lightshadowspace.com csboom.pro
投稿者
2017/01/24 03:37

nhadeptronmr
すべての
calltrackingsource.com 13s.info nhadeptrongoi.com kashinvestment.com csgo-butterfly.com anklebitergaming.com
csfire.pro envelopesstore.com ginastarmusic.com mp3-teca.com csgoodstakes.com
went.black 2pay4win.com appliancerepairsnearme.com oferta-netflix.com
techitax.com csprey.com lightshadowspace.com csboom.pro
投稿者
2017/01/23 20:39

nhadeptronlv
すべての
calltrackingsource.com 13s.info nhadeptrongoi.com kashinvestment.com csgo-butterfly.com anklebitergaming.com
csfire.pro envelopesstore.com ginastarmusic.com mp3-teca.com csgoodstakes.com
went.black 2pay4win.com appliancerepairsnearme.com oferta-netflix.com
techitax.com csprey.com lightshadowspace.com csboom.pro
投稿者
2017/01/23 15:24

sinforve
すべての
calltrackingsource.com 13s.info nhadeptrongoi.com kashinvestment.com csgo-butterfly.com anklebitergaming.com
csfire.pro envelopesstore.com ginastarmusic.com mp3-teca.com csgoodstakes.com
went.black 2pay4win.com appliancerepairsnearme.com oferta-netflix.com
techitax.com csprey.com lightshadowspace.com csboom.pro
投稿者
2017/01/23 12:46

calltrackju
すべての
cbbnews24.com
csgobooms.com
csgojoybets.com
incareersjobs.com
stcmidtenn.org
thewill.in
sakirkaratas.com
apexturnkey.in
medray.in
applevalleymarket.com
b8b90.com
danhhotgay.com
cstopstake.com
nsm.org.in
vov-fc.com
csgohugepots.com
eaglesapparelshop.com
mymobileappmobiappssub2016.com
sbppl.org
gracedental.in
kehulin.com
cheappricetoyou2015.com
vamortgageloantexas.com
doitacdoanhnghiep.com
techimanage.com
elmi.co
upea.in
esncordoba.org
goal888cash.com
fullebookz.com
2winde222.com
投稿者
2017/01/23 09:37

calltrackxm
すべての
cbbnews24.com
csgobooms.com
csgojoybets.com
incareersjobs.com
stcmidtenn.org
thewill.in
sakirkaratas.com
apexturnkey.in
medray.in
applevalleymarket.com
b8b90.com
danhhotgay.com
cstopstake.com
nsm.org.in
vov-fc.com
csgohugepots.com
eaglesapparelshop.com
mymobileappmobiappssub2016.com
sbppl.org
gracedental.in
kehulin.com
cheappricetoyou2015.com
vamortgageloantexas.com
doitacdoanhnghiep.com
techimanage.com
elmi.co
upea.in
esncordoba.org
goal888cash.com
fullebookz.com
2winde222.com
投稿者
2017/01/22 23:55

techitaxxe
すべての techitax.com csprey.com lightshadowspace.com csboom.pro cbbnews24.com csgobooms.com csgojoybets.com incareersjobs.com stcmidtenn.org thewill.in sakirkaratas.com apexturnkey.in 投稿者
2017/01/22 20:37

test
testです
2017/01/22 16:39

残りを読む »