dポイントプレゼントキャンペーン実施中!

表示された
画面のテキスト入力欄に「\」を入力すると
「\\」が表示されてしまいます。
また、画面のテキスト入力欄に「\\」を入力すると
「\\\\」が表示されてしまいます。
この不都合を解消する手段はあるのでしょうか?
つまり、「\」を3個入力すると「\」が6個でなく入力した3個だけ表示されるようにしたいのです。
どうしたらいいでしょうか?




x.php:
<?='x=['.(isset($_POST['x'])?$_POST['x']:'').']<br/>'?>
<form method="post" action="<?=$_SERVER['PHP_SELF']?>">
<input type="text" name="x"/><br/>
<input type="submit" value="push"/>
</form>

A 回答 (4件)

addcslashes()


addslashes()
stripcslashes()
stripslashes()

あたりを駆使すると良い
    • good
    • 0
この回答へのお礼

ありがとうございます。

お礼日時:2006/02/23 22:17

#2です。

追伸です。

magic_quotes_gpc はPHP_INI_PERDIRなので、
もし、.htaccessが使えるのなら、変更できます。

.htaccessが使えないならごめんなさい。
    • good
    • 0
この回答へのお礼

ありがとうございます。
、.htaccessを使えるかどうか確かめてみます。

お礼日時:2006/02/24 06:26

がると申します。


んっと…短期的には#1、#2さんの対処策でよろしいかと思うのですが。
特にもしこれが業務とか公開系のものである場合。「何が起きていて」「どこに問題があるのか」についての考察と理解が不可欠かと思います。
それをせずに「場当たり的に対応する」のは、可能な限り避けるべきです。

蛇足的な内容で恐縮ですが。

この回答への補足

ありがとうございます。

x.php:
<?=isset($_POST['x'])?'x=['.htmlspecialchars(stripslashes($_POST['x'])).']<br/>':''?>
<form method="post" action="<?=$_SERVER['PHP_SELF']?>">
<input type="text" name="x"/><br/>
<input type="submit" value="push"/><br/>
</form>

で動きましたがこれで何か支障はおきないでしょうか?

補足日時:2006/02/23 22:26
    • good
    • 0

エスケープされているのなら、


php.ini内の
magic_quotes_gpc = Off
にする事で解消されるかと思います。

もしくは#1さんがおっしゃっているような関数を使用してください。

ただ、データベース操作が絡むなら、気をつけてくださいね。
    • good
    • 0
この回答へのお礼

ありがとうございます。
magic_quotes_gpc = Off
はサーバをさわれないのでできません。

お礼日時:2006/02/23 22:19

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