人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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

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

よろしくお願いします。

●質問者: gmax
●カテゴリ:ウェブ制作
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● kodairabase
●0ポイント

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


うぃんどさんのコメント
どうやって作成するのかなーーーー? そもそも作成したいって事じゃなくて、 そうならないようにしたいって事なんだけど、どこ読んでるのかなーーーー? 一行回答ばっかりしてるよねーーーー? 一言書くだけで数十円分のポイントもらえることに味をしめたのかなーーーー? さて、どうやって作成するのかな? それで、この質問の発端はどうやったら解決できるのかな? 正しく返答しないなら、ほかのもあわせて通報するよ

gmaxさんのコメント
主に携帯電話のユーザーを想定しているサイトですので(PCでもつなげますが)、.NETを使うようなことはやっていないと思います。 回答へのコメントについてですが、私自身は作成したいわけではなく、利用したサイトで上に書いたような事態があったので、本当に掲示板のスクリプトにバグがあるのか、意図的にそのような掲示板のスクリプトにしてあるのか、それとも相手が嘘をついているのか、ということを知りたいと思って質問しました。

2 ● うぃんど
●70ポイント ベストアンサー

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

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

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

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

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

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


gmaxさんのコメント
なるほど。実際に文字化けが起きる可能性のあるスクリプトはありうる、ということですね(制作者/サイト管理人が気付いているのかどうかは別問題として)。 ただ、これではペーストで書き込もうが、直に打ち込んで書き込もうが、同じように文字化けする可能性がある、ということになります。 私の質問の仕方が悪かったかもしれないのですが、フォームで送った文章について、管理人が「この部分はペーストされたものですから文字化けしたのですよ」と説明していることに関しては、なお疑問が残ったままです。 この点について、「ペーストで入力した」というのがそもそもわかるものなのか、仮にわかるとしてペーストしたら文字化けして、直打ちしたら文字化けしないというようなことがありうるのか、わかれば教えていただきたいと思います。

うぃんどさんのコメント
キー入力の場合はWEBブラウザと直接やりとりしているのですが、 ペーストの場合はOSのもつAPIを通すため、そこで失敗することがあります 対策としては、 そのOSがデフォルトとしている文字コードにあわせるという対処療法となります そこでheaderやMETAタグ、それとソースコードを保存する時のキャラクタコードを合わせましょう(すでに実施済みであれば再確認)という提案をしています

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

3 ● pretaroe
●30ポイント

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

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

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

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


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

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

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

関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ