teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

3

修正

2019/04/20 09:14

投稿

m.ts10806
m.ts10806

スコア80888

answer CHANGED
@@ -7,4 +7,8 @@
7
7
  「&」は&がhtmlエスケープかかった結果なので化けてるわけではなくそれが正しい結果です。
8
8
  あくまで保存時にhtmlエスケープをかけてはいけない、だけの話です。
9
9
 
10
- ちなみに既に登録されたデータはphp側でどうにかできるわけではないのでDB側で置換かけるか、捨ててください。
10
+ ちなみに既に登録されたデータはphp側でどうにかできるわけではないのでDB側で置換かけるか、捨ててください。
11
+
12
+ 追記:
13
+ もう1つお伝えしておくと、addslashes()による対応はSQLインジェクションが可能になるのでやめましょうと結構前から言われているので、あまり正しく理解できていない状態で使うものではなかったりします。
14
+ ※そのあたり、調べるとすぐ出てきます。

2

修正

2019/04/20 09:14

投稿

m.ts10806
m.ts10806

スコア80888

answer CHANGED
@@ -5,4 +5,6 @@
5
5
 
6
6
  ちなみに表示時のhtmlソースを見たときに→のようになっているのはhtmlエスケープが正しくかかっているので出方としては正しいです。
7
7
  「&」は&がhtmlエスケープかかった結果なので化けてるわけではなくそれが正しい結果です。
8
- あくまで保存時にhtmlエスケープをかけてはいけない、だけの話です
8
+ あくまで保存時にhtmlエスケープをかけてはいけない、だけの話です
9
+
10
+ ちなみに既に登録されたデータはphp側でどうにかできるわけではないのでDB側で置換かけるか、捨ててください。

1

修正

2019/04/20 07:10

投稿

m.ts10806
m.ts10806

スコア80888

answer CHANGED
@@ -1,4 +1,8 @@
1
1
  入力された情報はバリデーションにかからなかったなら全てそのまま(SQLエスケープを施して)登録すべきなので、登録時にhtmlspecialchars()などhtmlエスケープがかかった情報を登録しているのではないでしょうか。
2
2
  あくまで画面出力時のみ対応するものです。
3
3
 
4
- 実際のコードがないので可能性の話でしかないですが。
4
+ 実際のコードがないので可能性の話でしかないですが。
5
+
6
+ ちなみに表示時のhtmlソースを見たときに→のようになっているのはhtmlエスケープが正しくかかっているので出方としては正しいです。
7
+ 「&」は&がhtmlエスケープかかった結果なので化けてるわけではなくそれが正しい結果です。
8
+ あくまで保存時にhtmlエスケープをかけてはいけない、だけの話です