• 締切済み

mySQLのデータベースにhtmlのコードをそのまま保存することはできますか?

mySQLのデータベースにhtmlのコードを保存させて、ブログのように管理したいと考えています。けれど、微妙に元のコードが変形してしまって困っています。 フォームを作って、そこに <p style="font-size:18pt;">aiueo</p> このように入力して、そのまんまの形でデータベースに保存させたいのですが、 <p style=\"font-size:18pt;\">aiueo</p> このようにクォーテーションマークの前にバックスラッシュが挿入されてしまいます。 これが原因で、CSSなどが機能せず困っています。誰か分かる方いますでしょうか?ブログなどはどうやっているのでしょうか? 助けてください。ヒントになるソースなどでも教えていただけると助かります。 作業環境は、 データベース mySQL サーバー言語 php, ZendFramework それから、フォームの送信時にjavascript(jQuery Form)を媒介させて入力チェックなどを行っています。 windowsXP

  • MySQL
  • 回答数1
  • ありがとう数1

みんなの回答

回答No.1

こんにちは。具体的な解決策ではないのですが、参考になればと思い回答させていただきます。 >ブログなどはどうやっているのでしょうか? この部分の回答になりますが、一般的な手段としては、MySQLにはHTMLコードやスタイルを保存させるのではなく、実際のデータのみを登録させ、表示させる際にMySQLのデータベースからデータのみを抽出し、PHP内でHTMLやスタイルを適用させる形式になります。 このようにすることで、HTMLの特殊な処理等を省くことができるので、 後々編集等を管理ページ等で行う際に簡単です。 また、デザインの更新時などに、HTMLを変える必要性がある場合、HTMLやスタイルまで登録していたら、その全てを更新しなければならず大変な労力になると思います。 HTMLを直接データベースに入力する必要性がある場合もあるかもしれませんが、参考になれば幸いです。

metheglin
質問者

お礼

ご返信どうもありがとうございます。 なるほど、テキストデータだけを保存するのはよさそうですね。参考になります。 ですが、画像なんかもまぜあわせながらできるだけ自由度の高いブログのようにしたいと思っているので、どうしても<img src="" />のようにクォーテーションマークが必要になるかと思うのです。 javascriptでワンクッションおいてるところがあやしいと思っているんですが、難しいですね・・・。 Crystalizeさん、気にかけてくださってどうもありがとうございました。

metheglin
質問者

補足

完全な解決ではないのですが、とりあえず受け取った文字列をサーバー側で、 str_replace("\\", "", $_POST["description"]); のようにすることで、\を取り除くことに成功しました。 ただ、これでは文章中に\記号を書くことができませんが、とりあえずはこれで解決としておこうと思います。

関連するQ&A

  • MySQLデータベースについて

    データベースについて詳しい方にお聞きしたい事があります。 初心者なので書いている内容におかしな点もあるかと思いますが、よろしくお願いします。 5年ほど前のJavaを習っていて、簡単なデータベースを作ったことはあります。 □現在、会社が違うレンタルサーバーを一つずつ借りています。 A社のサーバー上で作成したデータベースをB社のサーバー上に公開しているサイトから呼び出し、テーブルを一覧表示できるのでしょうか? □初心者がデータベースを作成するにはphpMyAdminを使用するのが一番良いでしょうか? 使い方を検索してみたらちょっと難しそうですね。 Javaでデータベースの勉強をしていた時はあらかじめ作ったフォームにデータを入力していくだけだったので、同じような感じのシステムはないかなと思いました。 □現在使用しているサーバーはMySQLが5つ使えると書いています。 既にWordPressでブログ開設していて4つ使用しています。残りは一つ。 野球チームのデータベースを作成しようと思っているのですが、これまでの試合の記録のデータ、これまでの選手のデータのデータベースを作成したいと思っています。 MySQLは残り一つですが、この二つのデータベースを作る事は可能なのでしょうか?二つ必要ですか? □スマホのサイトも作成しているんですが、PCサイトと同様にデータベースに接続し、一覧表示できるのでしょうか? スマホでPHPが使えるのかなと思ったので。 ご存知の方いらっしゃいましたらご教示ください。 よろしくお願いします。

    • ベストアンサー
    • MySQL
  • MySQLデータベースリカバリ文字コード指定

    Windows環境でのMySQLのデータベースバックアップで、以下のように文字コードを指定してバックアップが行われています。 mysqldump -uユーザ名 -pパスワード --default-character-set=sjis データベース名 > ****.sql バックアップからリストアするのですが、同じサーバ上で既存の同じデータベース(名)があるので 一度DROP DATABASE データベース名;してからCREATE DATABASE データベース名;を行うつもりです。 以下の2点について教えてください。 (1)create databaseする際に文字コードを指定する必要がありますでしょうか? create database データベース名 CHARACTER SET sjis; (2)リストア実行時に文字コードを指定する必要がありますでしょうか? mysqldump -uユーザ名 -pパスワード --default-character-set=sjis データベース名 < ****.sql 因みに ※my.iniには文字コードの指定で、sjis指定の表記がありました。 ※Moveble TypeでMySQLをデータベースとして使用しています。  よろしくお願いします。

    • ベストアンサー
    • MySQL
  • MySQLへ登録する際の文字コード

    以下の様な場合には、データベース上では 何の文字コードで登録されているのでしょうか? (1)WEB画面上はEUCで入力 (2)(1)で入力した情報をMySQLに登録する。  この際、MySQL環境では文字コードがujisで設定されている。

    • ベストアンサー
    • MySQL
  • 罫表のセルの2重線が表示されない。

    罫表の一部のセルの線種を2重線に変更した所、上手く反映されませんでした。点線とかは反映されるのですが、何がいけないのでしょうか。 下記tableの"たちつてと"のセルの線種を2重線"double"にしてみましたが、IEのブラウザで見ると反映されませんでした。 <table tno=1 style='border-collapse:collapse;border:none'> <tr> <td style='width=100.0pt;border:solid windowtext 1.0pt; padding:0mm 4.95pt 0mm 4.95pt'> <p style='font-size:10.5pt;mso-bidi-font-size:10.5pt; font-family:"MS 明朝"'>あいうえお</p> </td> <td style='width=100.0pt;border:solid windowtext 1.0pt;padding:0mm 4.95pt 0mm 4.95pt'> <p style='font-size:10.5pt;mso-bidi-font-size:10.5pt; font-family:"MS 明朝"'>かきくけこ</p> </td> </tr> <tr > <td style='border-style:dotted;width=100.0pt;border:double windowtext 1.0pt;padding:0mm 4.95pt 0mm 4.95pt'> <p style='font-size:10.5pt;mso-bidi-font-size:10.5pt; font-family:"MS 明朝"'>たちつてと</p> </td> <td style='width=100.0pt;border:solid windowtext 1.0pt;padding:0mm 4.95pt 0mm 4.95pt'> <p style='font-size:10.5pt;mso-bidi-font-size:10.5pt; font-family:"MS 明朝"'>なにぬねの</p> </td> </tr> </table>

    • ベストアンサー
    • HTML
  • htmlフォームから受け取ったファイルをDBへ保存

    htmlのフォームタグ内で、input type=file で受け取ったPDFファイルを phpスクリプトで、MYSQLのデータベースへ保存したいのですが どのように書けばいいのかわかりません。 保存する型はBLOB型でよいといくつかのサイトで書いてあるのですが、 SQL文の書き方や、フォームから受け取ったデータの処理の仕方などの詳細が わかりません。 フォームで受け取ったファイルをデータベース(mysql)へ保存する 簡単なサンプルコードなどが知りたいです。 よろしくお願いいたします。

    • ベストアンサー
    • MySQL
  • htmlフォームに入力したデータをMySQLに保存

    phonegapを使ってスマートフォンアプリを製作しているのですが、 htmlでフォームを作って、そこに入力された内容をMySQLに保存したいんですが、 うまく保存されません。 ネットで調べてみるとPHPを使ってやるような事も書いてありましたが PHPを使わないとフォームの内容をMySQLに渡せないのでしょうか?

  • 文字コードエスケープ処理について

    現在MYSQLとPHPを使ってデータベースを構築してます。 XSSやSQLインジェクションはフォームなどに悪意のユーザがJavascriptのコードを入力するんですよね? ちょっとテストで検索フォームに Javascriptコード を入力してみたんですが何も起こりませんでした。これは処理がされていると思って良いんでしょうか?URLは画像のようになりました。

    • 締切済み
    • PHP
  • htmlフォームから受け取ったファイルをDBへ保存

    htmlのフォームタグ内で、inputtyp=file で受け取ったwordファイルやPDFファイルを perlで書いたCGIプログラムのほうで、MYSQLのデータベースへ保存したいのですが どのように書けばいいのかわかりません。 保存する型はBLOB型でよいといくつかのサイトで書いてあるのですが、 SQL文の書き方や、フォームから受け取ったデータの処理の仕方などの詳細が わかりません。 フォームで受け取ったファイルをデータベース(mysql)へ保存する 簡単なサンプルコードなどが知りたいです。 よろしくお願いいたします。

    • ベストアンサー
    • Perl
  • MySQL4.1 文字コードについて

    MySQL4.1を導入したのですが一部文字が入力できないときがあります。 MySQL4.0の時は不具合はおきませんでした。 MySQLのキャラクタセットはすべてsjisに設定しました。 character_set_client sjis character_set_connection sjis character_set_database sjis character_set_results sjis character_set_server sjis character_set_system utf8 MySQL・phpでサイトを構築しているのですが 入力フォームで文章が「ソ」「表」で終わると、登録に失敗します。 shift-jisの特殊文字ですので「ソ\」「表\」のようになり、SQL文のシングルコーテーションが文字列(\')と認識されると思うので下記置き換えで大丈夫かと思いましたが、また失敗しました。 $text = str_replace("\\","\\\\",$text); $text = str_replace("'","\'",$text); MySQL4.1はホントに難しいです… お分かりになる方いましたらよろしくお願いします。

    • ベストアンサー
    • MySQL
  • 保存先をデータベースに移行

    ■主なプログラムの流れ ・フォーム入力→csvファイルに保存 ■プログラム言語 Perl ■保存形式 一度の送信につき、入力項目をカンマ区切りで1行にして保存 --------------------------------------------------------- 上記の様な仕様のプログラムを、 データベースにたまるようにして欲しいと頼まれたのですが、 データベースとは?保存先変えるだけじゃないよな? というくらい無知なので、参考にすべきものが判別つきません。 何か役に立ちそうなサイトや書籍があったら教えていただけないでしょうか? あまり時間をかけられないので、 すぐに覚えるのは無理そうだったら、 そう言っていただいた方が助かります。