divタグ内の文字列がエスケープされてしまう理由

このQ&Aのポイント
  • divタグ内の文字列がエスケープされる問題について調査しています。
  • 投稿された文章を格納している変数がdivタグ内の文字列をエスケープしてしまう問題が発生しています。
  • 対応策としてエスケープ文字を置換する処理を行っています。
回答を見る
  • ベストアンサー

<div style="***"> が <div style=\"***\">になってしまう

お世話になります。 <form method="POST" action="wp.php" id="InputFrm"> <textarea> $Contents </textarea> というようにして、 でhtml文書を作成し、$Contentsへその文字列を格納しPOSTで書き込み読み込みおよび表示用のwp.phpへ送っています。 wp.phpでは、テキストファイルへ$Contentsの内容を書き込んでいます。 すると、 <div style="***"> が <div style=\"***\">のようになってしまいます。 つまり、「"」が「\"」と変わってしまいます。 $ContentsDsp=str_replace("\\\"","\"", $Contents); で、対応はしていますが、「"」が「\"」となるのは何故でしょうか。 基本的なところがわかっていないようで、基本がよくわかっていないだけに調べても解決できません。 おわかりになる方見えましたら教えていただけないでしょうか。

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

質問者が選んだベストアンサー

  • ベストアンサー
  • ts3m-ickw
  • ベストアンサー率43% (1248/2897)
回答No.1

エスケープされてしまうのを防ぎたいという質問と理解しました。 php.iniの中で「magic_quotes_gpc」が「ON」になってると働く機能です。 「マジッククォート」で検索すると詳しく判るでしょう。 これはこれで便利な機能なんですけどね。

rqg2010
質問者

お礼

ts3m-ickwさん、早速教えていただきありがとうございました。 マジッククォート」で検索し、 http://nyx.pu1.net/practice/form/form3.php を見て、よくわかりました。 ありがとうございました。

関連するQ&A

  • 特定の文字が文字化けします

    こんにちは。 とても困ってます。 例えば、phpで echo "<P><FORM ACTION=\"main.php\">"; echo "<METHOD=POST>"; echo "<INPUT TYPE=HIDDEN NAME=res VALUE=\str_request\">"; echo "<INPUT TYPE=HIDDEN NAME=action VALUE=post>"; echo "<TEXTAREA NAME=\"str\" ROWS=\"8\" COLS=\"50\"></TEXTAREA>"; echo "<INPUT TYPE=\"submit\" VALUE=\"send">"; echo "</METHOD></FORM></P>"; と記述して「send」ボタンを押下して文字列をPOSTした場合、 受け取った文字($str)の特定の文字が文字化けします。 特定の文字とは、「る」「れ」「ろ」などです。 どなたか原因がわかる方いらっしゃらないでしょうか?

    • 締切済み
    • PHP
  • テキストエリア内にPHPのソースコードを書く

    <form action="" method="post"> <textarea name="img" cols=40 rows=4 readonly> <?php echo"<?php echo"masao"; ?>"; ?> </textarea></form> このプログラムの結果 <?php echo"masao"; ?> と表示したかったのですが案の定できませんでした。 どのようにしたら表示させることができるでしょうか?

    • ベストアンサー
    • PHP
  • phpについて 入力ホーム

    ホームページ php 入力ホームについて 初心者です。 HTML内に入力ホームに関するphpページを指定したいのですが <form action="form1.php" method="post">は指定できましたが、もう一つ<form action="form3.php" method="post">も指定したいくて、下のコードを書き込んだのですが、 <form action="form1.php" method="post"> <form action="form3.php" method="post"> 以下のようなエラーメッセージが出ます タグ<form>内に< form>を含むことができません。 どうしたら良いでしょうか?

    • 締切済み
    • PHP
  • $_POSTで\マークが勝手についてしまいますが、これは仕様でしょうか?

    こんにちは。 以下のようにコーディングしました。 <body> <? print $_POST['test']; ?> <form action="test.php" method="post"> <textarea name="test">表示</textarea> <input type="submit" /> </form> </body> そうすると「表\示」と、「\」マークが表示されてしまいます。 これはPHPの仕様なのでしょうか? 必ず「stripslashes」で処理しなければいけないのでしょうか? よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • IE8でのCSSについて

    formの領域内に可変のdivと固定のdivの領域を指定したいのですがうまくいきません。 ※formの領域が1000pxだとした場合に下のdivが300のため上のdivは残りの700の50%で350pxにしたいです。 2つのdivは異なる親タグにしなければならないのでしょか? <html> <body> <form method="POST" action="" style="height:100%"> <div style="height:50%;background-color:red"></div> <div style="height:300px;background-color:blue"></div> </form> </body> </html>

    • 締切済み
    • CSS
  • PHP,HTMLでのform actionについて

    現在、以下のようにプログラムを書いています。 <form action="shellexec.php" id="editarea_form" method="POST"> <div align="center"><input type="submit" value="提出" style="width:200px;height:25px" id="submitBtn"> <textarea id="edit" name="edit" cols="120" rows="30"></textarea></div> <input type="hidden" name="save_address" value="<?php echo "tmp/".$_SERVER['REMOTE_ADDR']."/form3.php/current.c" ?>" id="saveAddress"> </form> これにより自サーバのホームページにフリーのエディタを付けてそこにプログラムを書いて貰って、提出ボタンを押して提出してもらい、提出されたプログラムの診断をしています。 そこにもう一つボタンをつけて別の処理を行うようにしたいのですが、form actionには一つしか書けないのでしょうか。二つ以上かける方法があれば教えて頂きたいです。 エディタに書いてもらってボタン1を押したら、その内容を用いてshellexec1を実行、ボタン2を押したらshellexec2を実行という風にしたいのです。 色々やってみたんですが難しくうまくいかないので質問しました。 よろしくお願いします。

    • 締切済み
    • PHP
  • formのtextareaについて

    いつもお世話になってます。 formでテキストエリアを作成しました。 テキストエリアに入力された文字列を、submitを押すことによって、同ページに反映させたいのですがどのようにしたらいいのでしょうか? 当方、プログラミング初心者のため、できるだけわかりやすく教えて頂けると助かります。 以下、現在書いたテキストエリアです。 <form method="POST" action="sousinsaki.html"> <div> <textarea name="MSG" cols=40 rows=4> </textarea> </div> <input type=submit value="送信"> </form>

  • formとactionとmethodについて

    初心者的な質問で申し訳ないのですが、 formを複数作りたい場合、メソッドをpost/get別々に指定したり、actionを別々のリンクを指定とかって出来たりするんでしょうか。 <form action="next.php" method="post">inputとか</form> <form action="prev.tpl" method="get">hiddenとか</form> 見たいな感じで、それぞれが別々、若しくは <form action="next.php" method="post">inputとか</form> <from action="next.php" method="get">inputとか</form> 見たいな感じで、リンク先は一緒だけどメソッドは違う等の指定方法を教えていただければと思います。 もし、指定出来ることは出来るが、javascriptで制御しなけらばならない等あるのでしたら、 その記述例等も一緒に教えて頂けると嬉しいです。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • 改行データPOSTできない

    mysql+php+htmlで作ってるんですが、POST後のページで改行が反映されません。 -------------------------------- 111.php -------------------------------- - 省略 - <body> <form action="222.php" method="post"> <input type="hidden" name="data2" value=<?php echo "$data1";?>> <input type="submit" value="編集"> </body> - 省略 - -------------------------------- 222.php -------------------------------- --省略-- <?php $data2 = $_POST['data2']; ?> <form> <textarea cols="80" rows="20" name="test"><? echo "$data2"; ?></textarea> </form> --省略-- -------------------------------- これだと222.phpで1行だけしか表示されません。変数に入れれないのでしょうか? お手数ですが、ご教示お願いします。 ちなみに111.phpの方も textarea にすると正常に値が渡せます。 でも表示したくないのでイヤです。 (急いで入力したので、タイプミス&コピペミスっぽいのは無視してくださいm(_ _)m)

    • ベストアンサー
    • PHP
  • define定義について

    ■kconf.php <?php $script_neme = "sendmail.php"; ?> ■mail.php <?php require_once("conf.php"); $form = <<<EOM {$setcomments} <form action="{$script_name}" method="post"> ・ ・ ・ ・ EOM; ?> ↓↓↓↓ 以下のように定義すると フォームのソースが <form action="{SENDMAIL}" method="post">のままで送信できません。 $による定数定義ではうまくいくのですがどうしてでしょか? アドバイス下さい。 ■kconf.php <?php define("SENDMAIL", "sendmail.php"); ?> ■mail.php <?php require_once("conf.php"); $form = <<<EOM {$setcomments} <form action="{SENDMAIL}" method="post"> ・ ・ ・ ・ EOM; ?>

    • 締切済み
    • PHP