PHPで簡単な掲示板(メッセージボード)を作ってみようと思っています。
今考えているのは、
(1)HTMLのテキストエリアの文字列(投稿者名、メッセージ)をサーバーのphpファイルあてにsubmitし、
(2)(1)および投稿日時間をサーバーにあるテキストファイルに追加し、
(3)(2)をブラウザに表示する
というシンプルなものです。
この発想に何か問題はありますか?
あと、上記の掲示板を作るとして、ひとつ気になっていることがあります。
メッセージ10件で1ページ表示するようにしたいと思っていますが、メッセージ10件の区切りをどうしたらいいのかわかりません。
「件名」や「投稿者」という文字列を検索して、メッセージごとの区切りを見つけるという方法を思いつきましたが、これだと、もし万一メッセージの文章中に「件名」や「投稿者」という文字列があった場合、そこが
メッセージの境だと認識されてしますので難しいなと思ったのです。
何かアドバイスありましたら、よろしくお願いいたします。
No.3ベストアンサー
- 回答日時:
掲示板というより簡易メッセージボード的なものなら、別途DBやデータファイルに管理データをもたずに
HTMLにメッセージをためていく仕様でも充分だと思います。
DBを使う場合に必須なSQLインジェクション考えなくてすみますし。
ただし、HTMLタグを拒否する仕組み(サニタイズ)はどちらにしても必要ですが。
なお、区切りを見つける方法としては、
1メッセージ1行のHTMLファイルにする方法もありますし
HTMLコメント式でもいいかと思います。
HTMLコメント式だと、たとえば、
<!---start--->
投稿者:~
メッセージ:~
<!---end--->
みたいにHTMLを生成しておけば、<!--~-->部分はブラウザには表示されませんが、PHPの処理としてはHTMLファイル中のこの文字列を検索できすし、
投稿された投稿者やメッセージをhtmlspecialchars()やstriptags()しておけば、
<!-- -->という文字がでてくることはありませんので、誤認識されません。
レスありがとうございます。
HTMLコメントのアイディアは素晴らしいと思いますので、
簡易的メッセージボードはこれで行こうと思います。
No.4
- 回答日時:
PHP5でしたら、最初からSQLiteというデータベースが入っています。
これは、ファイルベースのRDBMSですが、試しに使うのにはいいでしょう。
最初のURLでは、直接sqlite関数を使っていますが、もしその後MySQL、PostgreSQLなどに乗り換えるとしたら、PDO(PHP Data Object)(2番目のURL)を使ったほうがいいでしょう。
参考URL:http://www.phpbook.jp/database/sqlite/,http://ww …
レスありがとうございます。
データベースに関する情報ありがとうございます。
とりあえずSQLiteを試してみます。
まだまだわからないことばかりですので、今後ともご指導よろしくお願いいたします。
No.2
- 回答日時:
私もデータベースを使わないときは「タブ区切り」にしますね。
explodeで"\t"で分解するだけで使えますから。#テキストエリアの改行はnl2brしたあとで\rと\nを削除します。
あと「スレッド」は扱わない前提でいいんですかね?これをしたくなると1スレッド1ファイル(レスごとに行を追加していく)にするとかになってくるので・・。まぁこのあたりも含めてデータベースを使う方が格段に楽です。
レスありがとうございます。
データベースはAccess2007を少し触った程度です(名簿)。
私のようなデータベース初心者がPHPで掲示板を作る時に便利なデータベースを教えていただけると幸いです。
nl2brや\tについては、調べてみます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- MySQL 【投稿情報用データベース posts】は必要ないと思います。 1 2022/06/02 21:25
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- PHP PHP MySql ページング 2 2022/09/20 06:38
- Google+ Google workspaceのspaceでメッセージ削除した場合について 投稿後、すぐに削除した 1 2023/02/02 20:00
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/04/21 13:46
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
- PHP 文字列を段落で分ける方法を教えて下さい。 2 2023/03/09 10:03
- HTML・CSS リンクバナーのHTMLタグ。画像を変えたり、設置位置を変えるとバナー貼付け側はどう見える? 2 2023/02/01 12:01
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
バッチファイルの作り方(CSV→...
-
全角と半角文字が混在している...
-
タブの色を変更する方法
-
【Access2003】VBAでタブ区切り...
-
C言語で特定の行を抽出する方法...
-
VBAのFileFormatで悩んでいるこ...
-
batファイルでrenameができませ...
-
window.open でのファイル指定方法
-
awkスクリプトでダブルクォーテ...
-
ExcelをCSV書き出す場合のシー...
-
csvファイルの横方向への改行に...
-
Perlで空白行を削除
-
perlにて2つのファイル比較
-
動かなくなったのでJavaソース...
-
DOSコマンドで、標準出力を出力...
-
fgets で値が取得できない
-
Windowsで複数のファイルを同じ...
-
VBAでCSVファイルを途中行まで...
-
perl上からfindを使い検索した...
-
readdir()で得られるファイル・...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バッチファイルの作り方(CSV→...
-
C言語で特定の行を抽出する方法...
-
【エクセル】改行無しテキスト...
-
タブの色を変更する方法
-
Edge スクレイピング
-
全角と半角文字が混在している...
-
空白文字 \\f と\\v の違いに...
-
htaccessで特定のディレクトリ...
-
デルファイ TabControl タブの...
-
Arduino Excel
-
VBAのFileFormatで悩んでいるこ...
-
VBAでタブ区切りテキストの保存...
-
【Access2003】VBAでタブ区切り...
-
C++でファイルから複数行のデー...
-
PHPで掲示板を作りたいです
-
テキストファイル(tsv)を改行...
-
awkスクリプトでダブルクォーテ...
-
VBAでCSVファイルの特定行を書...
-
DOSコマンドで、標準出力を出力...
-
ExcelをCSV書き出す場合のシー...
おすすめ情報