アプリ版:「スタンプのみでお礼する」機能のリリースについて

ショッピングサイトを運営・管理しています。

CGIを使ってネットショップ、及び管理サイトがあるのですが、管理サイトからデータを登録すると一旦phpMyadminのデータベース上にデータが登録されて、ネットショップのページにてその登録したデータが表示される仕組みになっています。

そのネットショップで見れる所では改行等入れながら成形されたデータを表示したいのですが、管理サイトから改行を<br>で登録するとデータベースでは、&lt;br&gt;と登録されて、実際のネットショップでは<br>と改行コードそのまま表示されて改行されていません。

データベースを直接いじってデータ内に<br>と入れるとネットショップでも正しく改行がされているのですが、管理サイトを色んな人に使ってもらうことを考えるとデータベースを直接いじりたくないのです。

上手く文字列の置き換え関数等を使ったらできるものなのでしょうか?
なにかいい方法がありましたら、ご教授よろしくお願いします。

A 回答 (3件)

HTML出力する部分で


$line =~ s/&lt;br&gt;/<br>/g;
print OUT $line;
とか・・・

この回答への補足

ちなみに、試したページではhtml出力する際にテンプレートファイル(.html)を使って$lineとprintを使って表示させていたので単に追加するだけで上手くいきました。

一方、別のページではcgiのソースファイル内のサブメソッド内で直にhtml文書を書いて$lineとprintを使わないで作っているのですが、こういった場合は上記対応はどのように変えて使えばできるでしょうか?

補足日時:2013/03/16 12:18
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
$line =~ s/&lt;br&gt;/<br>/g;
を追加してみると、html側で上手く表示することができました。
ありがとうございます。(^O^)

お礼日時:2013/03/16 12:11

おっと、cgiってことなのでphpではなくperlなのかな。


phpだと勘違いして回答してしましました。
まあ、要は改行はそのまま登録して表示に<pre>を使うってことです。

この回答への補足

試してみましたが、データベース内で&lt;br&gt;部分が<br>になっただけで改行されていませんでした。

おまけにtableの横幅が一気にでかくなってみずらくしまいました。

補足日時:2013/03/16 12:05
    • good
    • 0
この回答へのお礼

cgiです。
<pre>ですね、一度試してみたいと思います。

お礼日時:2013/03/16 11:55

商品のコメントとかなのかな。


商品ページのテンプレートの部分が、
<p><?php print $comment; ?></p>
とかになっているとすると、
<pre><?php print $comment; ?></pre>
と変更して、改行は改行のまま投稿するのはどうでしょう。

データ登録時にhtmlタグを登録可能にするとか、<br>のみ登録可能にするとかは、
あまり良いやり方ではないと思います。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
商品のコメントや、店舗情報の掲載する箇所についてです。

データ登録時のhtmlタグを入力したいというよりは単に管理画面で改行したいところで改行してそれがショップサイトに正しく改行されて表示できていたら良いのです。

お礼日時:2013/03/16 11:51

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!