現在、作成しているwebアプリの中(管理画面)に、リッチテキストエディタを自作して
表示しており、動作も問題ありません。
・使用言語:php, js
※ブログなどの記事編集できる管理画面を想像していただければ、
イメージしやすいと思います。
今回、お聞きしたいのは2点です。
1.編集した記事をMySQLに挿入するとカラムの値が0になってしまうこと。
例えば、エディタから記事のタイトル、記事本文を保存したい場合、
下のように書いています。(もちろん, $_POSTには値はしっかり入っています。)
$req = $db->prepare('insert into texts (title, edit_text) values (title = :title, edit_text = :edit_text)');
$req->execute(array(
':title' => ($_POST['title']),
':edit_text' => stripslashes($_POST['mytext'])
));
すると、テーブルtextsのtitle,edit_textにそれぞれ0が入ってしまいます。
ログをみても特に怪しいところもなく、エラーも出てないようなので全く理由が
わかりません。なぜなのか、ご教授いただけないでしょうか?
2. エディタで編集した記事の内容はどこに保存するべきなのでしょうか?
※こちらも、ブログ記事編集画面を想像していただければと思います。
1つのtextareaに装飾したテキストや画像もある場合、一気mysqlに
保存することは難しいと思っております。
また、仮に保存できたとしても、強調したテキストや下線の入ったテキストなどの形式まで
保存はできないですよね?
どのようにしたらよいのか全く解決策が見えませんので、ご教授いただけないでしょうか?
宜しくお願い申し上げます。
No.5ベストアンサー
- 回答日時:
>このままで、問題なく表示はできるのですが、
>大丈夫でしょうか?
質問の意図がよくわからないのですが
考え方だけ・・・
まずもともとの質問、データを登録するときの問題は、どう保存してもよい
という回答でご理解いただいたでしょうか?
むしろそれを考慮してのプリペアード処理なのだと推測して回答したつもりです。
また今回の質問が信頼できないユーザーの投稿や、他人の書いた文書を取り込んで
そのまま表示させたときに問題があるか?という命題であれば、
閲覧者が意図していないページへ誘導されたりいろいろ問題です
仮に自分が書いたものもしくは自分の属するグループが書いたものであれば
セキュリティ面ではある程度リスクは低くなりますが、「強調したテキストや下線」
など意図したとおり見せることは少し難しいです
必ずしも情報提供者と同じ環境ではないユーザーが閲覧するため
ご自身で下線と思って表示したつもりでも相手の環境では網掛けになっているかも
しれません(もちろんそれを考慮していろいろデザインを工夫するのでしょうけど)
ご自身の見られる表示に近い形で他人にみせようとするなら、画像やpdfといった
環境に依存しにく手法をとることになります。
No.3
- 回答日時:
1.
カラムの型がINTになっていたりはしませんか?一般的にはサイズ指定したVARCHARかTEXTを用います。
2.
装飾テキストや画像はどうやって埋め込んでいるのでしょうか?単にHTMLタグを使った装飾なら何の問題も無く保存できます。画像に関しては、画像のバイナリデータを格納できるテーブルも作っておけばいいんじゃないでしょうか。表示するときにだけ引っ張り出してきてテンポラリファイルを生成するなり、PHPファイルで直接画像を出力するなりすればいいと思います。
あと1つ気になったのですが、
stripslashes($_POST['mytext'])
このstripslashesって不要なのでは?
バックスラッシュが含まれていても問題なく処理できますよ。
PHPからデータベースに接続するときのまとめ
http://qiita.com/mpyw/items/b00b72c5c95aac573b71
ご回答ありがとうございます。
>装飾テキストや画像はどうやって埋め込んでいるのでしょうか?
designMode= Onにして execCommandで埋め込んでます。
現在,mysql二保存されているソースは以下のようなイメージです。
このままでもよいのか、それともバイナリデータだけ
別にmysqlに保存したほうのがよいのか、パフォーマンスに
差がでないのならこのままでもよいかと思っているのですが、
実際、どうなんでしょうか?
以上、宜しくお願いします。
<font color="#0000ff">テストテスト</font><div><font color="#0000ff"><br></font></div><div>テストテスト</div><div><br></div><div>テストテスト<br><div></div><div><img src="./images/preview_hogehoge.jpg"></div>
No.2
- 回答日時:
>htmlのソースごとmysqlに保存するのは、できたのですが、
>果たしてそのやり方でよいのでしょうか?
データはなるべく生に近い形で持った方がよいので、
特に変なエンコードを考えずにソースのあるがままとっておけばよいのでは?
運用ポリシーの問題なので好きにすればいいです
そこからキーワードを検索したいなどあるなら
全文検索など視野に入れてもよいかもしれませんが、思う以上に面倒です
mysqlに保存されているソースが下のようなイメージです。
<font color="#0000ff">テストテスト</font><div><font color="#0000ff"><br></font></div><div>テストテスト</div><div><br></div><div>テストテスト<br><div></div><div><img src="./images/preview_hogehoge.jpg"></div>
このままで、問題なく表示はできるのですが、
大丈夫でしょうか?
No.1
- 回答日時:
的外れな回答かもしれませんが
>insert into texts (title, edit_text) values (title = :title, edit_text = :edit_text)
ってSQL文としておかしくないですか?
せめて、insert into texts (title, edit_text) values (:title, :edit_text) ではない?
この回答への補足
htmlのソースごとmysqlに保存するのは、できたのですが、
果たしてそのやり方でよいのでしょうか?
念のため、edit_textのデータ型をLONGTEXTにしているのですが、
他に方法はあるものなのでしょうか?
どーもhtmlソースごと保存するということに違和感を覚えましたので。
宜しくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Googleドライブへの保存がWi-Fi...
-
エクセルをPDFで保存し、ファイ...
-
サイト上の画像や背景等を保存...
-
知恵袋を見ていたら、Googleド...
-
Wordの自動保存が解除できません
-
法律上の「備置き」と「保存」...
-
Excelの保存で" "を付けないよ...
-
フォトショップでブラシで書い...
-
「名前を付けてリンク先を保存」と「...
-
DNAの保存温度
-
PDFの回転と保存
-
リッチテキストエディタの内容...
-
運動量保存則と力学的エネルギ...
-
PCR後の遺伝子の安定性について...
-
webページを保存するとwebペー...
-
グーグルカレンダーの保存方法...
-
WeBoxで保存できないサイトにつ...
-
クエリの保存場所
-
長い文章のデータベース格納に...
-
Webページと単一ファイルWebぺ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Googleドライブへの保存がWi-Fi...
-
エクセルをPDFで保存し、ファイ...
-
サイト上の画像や背景等を保存...
-
Wordの自動保存が解除できません
-
「名前を付けてリンク先を保存」と「...
-
DNAの保存温度
-
FireFoxで動画を保存できない
-
知恵袋を見ていたら、Googleド...
-
Excelの保存で" "を付けないよ...
-
pixivで画像の保存てどうやるん...
-
PDFの回転と保存
-
法律上の「備置き」と「保存」...
-
PCR後の遺伝子の安定性について...
-
フォトショップでブラシで書い...
-
Webページと単一ファイルWebぺ...
-
【Word】自動的に上書き保存さ...
-
PCで保存したブックマークを、...
-
クエリの保存場所
-
WEB用に保存すると余白ができて...
-
office365って抵抗感ないですか?
おすすめ情報