番号 | 日時 | メッセージ |
---|---|---|
354 | 2023-04-17 16:43:17 | あああ |
353 | 2023-02-15 08:30:04 | あ |
352 | 2023-02-15 08:26:59 | kkkkkkk |
351 | 2023-01-20 15:15:37 | てすと3 |
350 | 2023-01-20 15:13:54 | test2 |
349 | 2023-01-20 15:12:59 | test |
348 | 2023-01-20 15:05:11 | test |
347 | 2023-01-20 15:04:33 | あああ |
346 | 2023-01-20 15:03:55 | あああ |
345 | 2022-12-19 00:23:33 | あああ |
344 | 2022-12-19 00:23:21 | あ |
343 | 2022-12-12 15:51:45 | aaa |
342 | 2022-01-16 22:05:43 | hoge |
341 | 2022-01-05 15:14:35 | とら |
340 | 2022-01-05 14:50:37 | ほげほげ げほげほ |
339 | 2021-08-10 21:37:14 | 💩💩💩💩💩💩💩💩💩💩💩💩💩💩💩💩💩💩💩💩💩💩💩💩💩💩💩💩💩💩💩💩💩💩💩💩💩💩💩💩💩💩💩💩💩💩💩💩💩💩💩💩💩💩💩💩💩💩💩💩💩💩💩💩💩💩💩💩💩💩💩💩💩💩💩💩💩💩💩💩💩💩💩💩💩💩💩💩💩💩💩💩💩💩💩💩💩💩💩💩💩💩💩 |
338 | 2021-06-09 13:15:30 | ああああああああああ |
337 | 2021-05-19 15:13:45 | メガテラ・ゼロ |
336 | 2021-05-19 15:12:35 | 領域展開 |
335 | 2021-05-14 23:09:06 | <script>alert('test');</script> |
上には次のように書いてあるだけです。
<form action="sqbbs.php" method="post"> <p>メッセージ:<br> <textarea name="msg" rows="5" cols="60"></textarea><br> <input type="submit" value="送る"> <input type="reset" value="クリア"></p> </form> <?php try { $db = new PDO('sqlite:ファイル名'); if (@$_POST['msg'] != '') { date_default_timezone_set('Asia/Tokyo'); $s = $db->prepare("insert into okumurabbs values(NULL, ?, ?)"); $s->bindValue(1, date("Y-m-d H:i:s")); $s->bindValue(2, $_POST['msg']); $s->execute() or die("<p>書き込みに失敗しました</p>"); } $sql = "select * from okumurabbs order by id desc limit 20"; echo "<table border=\"1\">\n"; echo "<tr><th>番号</th><th>日時</th><th>メッセージ</th></tr>\n"; foreach ($db->query($sql) as $a) { echo "<tr><td>", $a['id'], "</td><td>", $a['t'], "</td><td>", htmlspecialchars($a['msg']), "</td></tr>\n"; } echo "</table>\n"; $db = null; } catch (PDOException $e) { echo "<p>エラー:", $e->getMessage(), "</p>"; } ?>
ここではあらかじめ次のようにして okumurabbs という名前のテーブルを作っておきました。
sqlite3 ファイル名 create table okumurabbs(id integer primary key, t text, msg text); .quit
SQLite は integer primary key に NULL という値を insert すると1から始まる連番を自動挿入します。 上の例では連番がなくても日時で並べることもできますが,削除のときには番号があると楽です。
特殊文字の無害化については セキュリティ上の配慮 をご覧ください。
Last modified: