必ず「伏せ字になる」PHPの掲示板システム

PHP(とたぶんJavascriptも)に関する質問です。
「書き込みフォーム内で文字列をペーストすると、その文字列の一部は必ず伏せ字になる(ただしペーストそのものは禁止しません)」といったフォームというのは作成可能なのでしょうか。そもそも、フォームの書き込み内容の一部がペーストされたものであるかどうかを判断することはできるものなのでしょうか。

というのは、あるサイトにPHPを使ったミニ掲示板システム(書き込んだ内容は、特定の相手しかみることが出来ず、書き込みをした人間すら確認することは出来ません)があるのですが、そこに書き込んだ文章のうち、ペーストした部分(全角・半角の混じったアルファベットと数字だけの文字列です)について伏せ字になっていた、と読んだ相手やサイトの管理者から指摘されるのですが、実際にどのように相手には見えているかがこちらは確認できない以上、本当にそうなのか疑問だからです。

よろしくお願いします。

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2011/12/01 17:24:52
  • 終了:2011/12/04 12:22:49

ベストアンサー

id:windofjuly No.2

うぃんど回答回数2625ベストアンサー獲得回数11492011/12/01 20:28:47

ポイント70pt

>全角・半角の混じったアルファベットと数字だけの文字列です

それは伏字ではなく文字化けでしょうね

ブラウザによってはMETAタグではなく、
最初に見つけた文字で判別してしまったりする場合もあるので、
簡単な対処方法として、METAタグだけでなく、
ヘッダを強制的に出すことでブラウザに認識させたりもします

headerは他の何よりも前に出力されなければならないので、
下記コードはもっとも先頭に書くようにすると良いです

<?php
header('Content-Type: text/html; charset=文字コード');

http://php.net/manual/ja/function.header.php

他1件のコメントを見る
id:windofjuly

キー入力の場合はWEBブラウザと直接やりとりしているのですが、
ペーストの場合はOSのもつAPIを通すため、そこで失敗することがあります

対策としては、
そのOSがデフォルトとしている文字コードにあわせるという対処療法となります

そこでheaderやMETAタグ、それとソースコードを保存する時のキャラクタコードを合わせましょう(すでに実施済みであれば再確認)という提案をしています

2011/12/01 21:09:57
id:gmax

なるほど。
・OSやブラウザによってはバグ(と言っていいのかわかりませんが)により、ペーストだと上手くいかない場合があり、そのとき文字化けする可能性がある
・ただし、スクリプト側で対策をとることは可能である
ということですね。
どうもありがとうございました。

2011/12/01 21:59:21

その他の回答(2件)

id:kodairabase No.1

kodairabase回答回数661ベストアンサー獲得回数802011/12/01 17:32:45

IE限定なら.NETを用いて作成できます。

id:windofjuly

どうやって作成するのかなーーーー?
そもそも作成したいって事じゃなくて、
そうならないようにしたいって事なんだけど、どこ読んでるのかなーーーー?

一行回答ばっかりしてるよねーーーー?
一言書くだけで数十円分のポイントもらえることに味をしめたのかなーーーー?

さて、どうやって作成するのかな?
それで、この質問の発端はどうやったら解決できるのかな?
正しく返答しないなら、ほかのもあわせて通報するよ

2011/12/01 20:37:17
id:gmax

主に携帯電話のユーザーを想定しているサイトですので(PCでもつなげますが)、.NETを使うようなことはやっていないと思います。

回答へのコメントについてですが、私自身は作成したいわけではなく、利用したサイトで上に書いたような事態があったので、本当に掲示板のスクリプトにバグがあるのか、意図的にそのような掲示板のスクリプトにしてあるのか、それとも相手が嘘をついているのか、ということを知りたいと思って質問しました。

2011/12/01 20:50:07
id:windofjuly No.2

うぃんど回答回数2625ベストアンサー獲得回数11492011/12/01 20:28:47ここでベストアンサー

ポイント70pt

>全角・半角の混じったアルファベットと数字だけの文字列です

それは伏字ではなく文字化けでしょうね

ブラウザによってはMETAタグではなく、
最初に見つけた文字で判別してしまったりする場合もあるので、
簡単な対処方法として、METAタグだけでなく、
ヘッダを強制的に出すことでブラウザに認識させたりもします

headerは他の何よりも前に出力されなければならないので、
下記コードはもっとも先頭に書くようにすると良いです

<?php
header('Content-Type: text/html; charset=文字コード');

http://php.net/manual/ja/function.header.php

他1件のコメントを見る
id:windofjuly

キー入力の場合はWEBブラウザと直接やりとりしているのですが、
ペーストの場合はOSのもつAPIを通すため、そこで失敗することがあります

対策としては、
そのOSがデフォルトとしている文字コードにあわせるという対処療法となります

そこでheaderやMETAタグ、それとソースコードを保存する時のキャラクタコードを合わせましょう(すでに実施済みであれば再確認)という提案をしています

2011/12/01 21:09:57
id:gmax

なるほど。
・OSやブラウザによってはバグ(と言っていいのかわかりませんが)により、ペーストだと上手くいかない場合があり、そのとき文字化けする可能性がある
・ただし、スクリプト側で対策をとることは可能である
ということですね。
どうもありがとうございました。

2011/12/01 21:59:21
id:pretaroe No.3

pretaroe回答回数531ベストアンサー獲得回数752011/12/02 22:02:43

ポイント30pt

>全角・半角の混じったアルファベットと数字だけの文字列です

文字化けでしょうね。
文字コードなどの問題のこともあります。

コピペしますが、コピペ元の文字コードはあまり意識しませんよね?
UTF-8、S-JIS、EUCなど。

直接入力とコピペで違うのは、ブラウザ依存の場合もあり切り分けが難しいです。


また、PHPは最近は多くがUTF-8で処理してますが、
古いものになるとそうでないものがあります。

そういうものに、UTF-8の文字コードで張り付けると文字化けしたりします。

文字化けにはいろいろなパターンがあるので、質問文だけではわかりせん。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません