質問するログイン新規登録
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

phpMyAdmin

phpMyAdminはオープンソースで、PHPで書かれたウェブベースのMySQL管理ツールのことです。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

1回答

293閲覧

DB利用の文章の登録、抽出における改行とコードの途中使用の方法

asahi555

総合スコア9

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

phpMyAdmin

phpMyAdminはオープンソースで、PHPで書かれたウェブベースのMySQL管理ツールのことです。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

2クリップ

投稿2025/09/05 17:42

編集2025/09/06 01:21

0

2

実現したいこと

文章登録フォーム作成にあたり改行をDBにサニタイズの上保存し、間に画像の挿入や太字などの設定を実現したいと考えております。

発生している問題・分からないこと

HTML textareaタグにて改行の保存は実現しております。ですが文章が一塊になっている影響で画像の挿入については、決まった場所に決まった数のみしか出力ができません。
この画像を好きな位置に好きな数挿入するようにすることは可能でしょうか。
また文字をサニタイズ、改行を保持したうえでデザインする方法があればご教示お願いいたします。

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

力技としてすべて一行ごとにDB保存する方法は試しましたが後の編集といった管理の面でほかの方法はないかと模索しております。

補足

具体的に処理の説明を追記します。

 文章登録フォーム ー(DB登録)→ 登録内容をDBから出力

登録フォームのイメージとしてはteratailの質問投稿フォームのような形をイメージしております。
出力する際には文章登録の改行をそのまま出力したいという意図がございます。
また、その際に画像や文字デザインの設定も組み込みたいと考えております。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

TakaiY

2025/09/06 04:53

> その際に画像や文字デザインの設定も組み込みたい 文書の段落などの体裁やフォントのサイズや色、任意の場所に画像も組込んだデータを作ってDBに保存したいということだと思いますが、であれば、文書のフォーマットはHTMLそのものにすればいいんじゃないかと思いますけど、そうしない理由は何ですか? HTML形式で入力してもらう方法がわかなないということですか?
asahi555

2025/09/06 07:00

回答ありがとうございます。 文章入力に関して複数人になるため、形式はメモ帳のように入力内容がそのまま反映できる形を模索しております。
TakaiY

2025/09/06 11:11

> メモ帳のように入力内容がそのまま反映できる形 メモ帳だた、フォントのサイズを変えたり文書の中に画像を埋め込んだりすることはできませんよね。それでは質問の趣旨と合いませんよ。 markdownで進めるようですが、ちょっと腑に落ちません。
tezcello

2025/09/06 14:15

いろいろな意見の人が居ますから「これが絶対」とは言いませんが... > 改行をDBにサニタイズの上保存し 「サニタイズ」という言葉を使うという事は、入り口で危険なモノを除去しようという考え方だと思います。 渡されたデータを改変する事と等しく、「修正後のモノ」と「修正後の様に入力されたモノ」の区別がつかなくなるので元に戻せないのが問題になると考えます。 データは渡す相手にとって安全である様にエスケープする様にすれば、この様な問題は起こらないはずです。 > HTML textareaタグにて改行の保存は実現 改変してないデータ文字列を HTMLとして表示する際に(htmlspecialchars()を通した後) nl2br()を通せば実現できます。 textareaタグに縛られないので、自由な表記が可能だと思います。 しかし全ての HTMLタグの入力を許容するのは危険極まりないので、特定のモノだけを許容するとか、markdownのサブセットのみを受け入れるとかで制限するのがお手軽だと思います。 __僕なら後者にして HTMLタグは全て削除 __これは HTMLタグを有効な入力(期待する入力)とは見做さないという事 __(有効な入力であるかの選別=バリデーション) __または全てを受け入れ(=入力データに手を入れない)htmlspecialchars()を通した後 __(特定の)markdownの処理をして、nl2br()を通して HTMLとして出力 > 画像や文字デザインの設定も組み込みたい 利用者に自由に入力させるのではなく、入力を許すのは表示すべき文字だけにして、文字の装飾等は AJAX経由でのみ許す方法を考えるかなぁ...
tezcello

2025/09/08 16:59

ご提案のCKEditorは、HTMLを知らない人がボタン操作で HTMLを生成する為のツールの様な気がします(公式サイトを読んでいません)が、合っているでしょうか? 僕は一般利用者に HTMLの直接入力を許すのはとても危険というスタンスなので、「定番のWYSIWYGエディタライブラリを使った方が安全」とは思えないです。
Lhankor_Mhy

2025/09/08 23:28

なるほど、そうですか。
Lhankor_Mhy

2025/09/08 23:58

もしかして、9/7のコメントがtezcelloさんのコメントへの批判だとお読みになっているのであれば、それは誤解です。あちらは質問に対してのコメントでした。
guest

回答1

0

ベストアンサー

<textarea>タグを使わずに、

  • 文章そのものは<p>タグ
  • 明示的な改行は<br>タグ
  • 画像は<img>タグ
  • 太字は<strong>タグ

に変換してDBに保存するとよいと思います。

投稿2025/09/05 21:45

hiroki-o

総合スコア1586

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

asahi555

2025/09/05 22:43

回答ありがとうございます。 大変恐縮ですが質問がございます。 <textarea>タグを使用しないとなると、どのように改行や画像を認識し変換すればよいでしょうか。 <input>タグを使用し、別途画像挿入用のボタン等を設置するイメージでしょうか。 ご回答いただけますと幸いです。
hiroki-o

2025/09/05 23:13 編集

それは、このシステムの詳細が質問に提示されていないので、回答できません。 質問の主旨は、DB保存方法では? <textarea>タグは改行が保存されますが、他のタグが入らないです。 <textarea>タグを使用しなければ他のタグが使えるのでは、という提案です。 (質問は編集できますので、追加情報があれば追記してください)
asahi555

2025/09/06 01:20

回答ありがとうございます。 質問の内容、情報が不足しており申し訳ございません。 質問内容はDB保存方法で認識に間違いございません。 ですがそのDB保存方法にあたり、DB保存後に別途出力するという前提がございました。 出力する際に文章保存時の改行をそのまま出力したいという意図がございます。 また、その際に画像や文字デザインの設定も組み込みたいと考えております。 ご回答いただけますと幸いです。
hiroki-o

2025/09/06 06:49 編集

ああ、なるほど、やりたいことが見えてきました。 TakaiYさんのコメントにあるようにHTMLで入力してもらうか、今どきならMarkdownで入力してもらうのは、どうでしょうか? HTMLとMarkdown間で変換するライブラリは既にありそうですし、タグを限定して自前で変換してもいいと思います。 どちらの形式でも、DB上は単なる文字列です。 (最初の回答は、入力されたフリーのテキストを、こちらでHTMLに変換したらよいのではという意味です。)
asahi555

2025/09/06 07:02

回答ありがとうございます。 Markdown記法は思いつきませんでした...! 少し調べたところMarkdown記法にて、今回実現したいことは達成できそうだと思いました。 非常に助かりました。 ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.30%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問