記事No | : 8064 |
投稿日 | : 2010/10/26(Tue) 09:05:59 |
タイトル | : PasswordManagerのユーザー登録をUTF-8で… |
ID情報 | : index |
投稿者 | : 上野 |
URL | : http://www.kent-web.com/pwd/pwmgr.html |
PasswordManagerのユーザー登録を
UTF-8のページから行わせたいと考えております。
現在、文字コードがUTF-8のHTMLページから登録しますと
名前部分が文字化けを起こしてしまいます。
解決策、対応策はありませんでしょうか?
よろしくお願いいたします。
記事No | : 8065 |
投稿日 | : 2010/10/26(Tue) 13:12:34 |
タイトル | : Re: PasswordManagerのユーザー登録をUTF-8で… |
ID情報 | : hirayama |
投稿者 | : 平山 |
PasswordManagerで使用されているjcode.plはutf-8に対応していないので、
Jcode.pmを使用するように変更した上で、
UTF-8のページから受け取ったデータをutf-8から
PasswordManagerで使用されているsjisに変換すればいいと思います。
記事No | : 8066 |
投稿日 | : 2010/10/26(Tue) 14:44:40 |
タイトル | : Re^2: PasswordManagerのユーザー登録をUTF-8で… |
ID情報 | : index |
投稿者 | : 上野 |
URL | : http://www.kent-web.com/pwd/pwmgr.html |
平山様、上野です。
ご回答誠にありがとうございます。
> PasswordManagerで使用されているjcode.plはutf-8に対応していないので、
> Jcode.pmを使用するように変更した上で、
> UTF-8のページから受け取ったデータをutf-8から
> PasswordManagerで使用されているsjisに変換すればいいと思います。
申し訳ございません、
せっかくご回答いただいたのですが、
プログラムに関しましてまだ勉強不足でございまして、
どのように、「Jcode.pmを使用するように変更」すればいいのか、
まったくピンときておりません。
大変恐れ入りますが、
より詳細な方法をお教えいただくことはできませんでしょうか?
お手数をおかけいたしますが、
お知恵をお貸しいただけますと幸いです。
なにとぞよろしくお願いいたします。
記事No | : 8067 |
投稿日 | : 2010/10/26(Tue) 16:58:05 |
タイトル | : Re^3: PasswordManagerのユーザー登録をUTF-8で… |
ID情報 | : kent |
投稿者 | : KENT |
> どのように、「Jcode.pmを使用するように変更」すればいいのか、
> まったくピンときておりません。
>
> 大変恐れ入りますが、
> より詳細な方法をお教えいただくことはできませんでしょうか?
UTFに変更するには、いくつか作業が必要ですね。
(1)全てのプログラムの文字コードを、エディタ等でUTF-8に変更する。
(2)Jcode.pmへの変更は、当該サーバにて使用できることをプロバイダへ確認する。
require './jcode.pl';
という箇所を、
use Jcode;
に変更。さらに、
&jcode'convert(*val, 'sjis');
という箇所があれば、
Jcode::convert(\$val, 'utf8');
に変更。
(3)metaタグの変更
プログラム中、
<meta http-equiv="content-type" content="text/html; charset=shift_jis">
という箇所を
<meta http-equiv="content-type" content="text/html; charset=utf-8">
に変更する。
記事No | : 8068 |
投稿日 | : 2010/10/26(Tue) 21:29:26 |
タイトル | : Re^4: PasswordManagerのユーザー登録をUTF-8で… |
ID情報 | : hirayama |
投稿者 | : 平山 |
kentさんの方法は、PasswordManagerそのものをutf-8に変更するというものですが、
私のは、登録ページのみutf-8の場合ということで、プログラム側の文字コードはそのままです。
上野さんの場合は、どちらの方法が向いているのかよくわかりませんが、
登録ページのみutf-8でいいということなら、
init.cgiの117ページあたりに
use Jcode;
Jcode::convert(\$in{'name'}, 'sjis');
を追加するだけで、済みそうです。
記事No | : 8069 |
投稿日 | : 2010/10/27(Wed) 01:11:44 |
タイトル | : Re^5: PasswordManagerのユーザー登録をUTF-8で… |
ID情報 | : index |
投稿者 | : 上野 |
URL | : http://www.kent-web.com/pwd/pwmgr.html |
平山様、ご回答誠にありがとうございます。
> kentさんの方法は、PasswordManagerそのものをutf-8に変更するというものですが、
> 私のは、登録ページのみutf-8の場合ということで、プログラム側の文字コードはそのままです。
> 上野さんの場合は、どちらの方法が向いているのかよくわかりませんが、
> 登録ページのみutf-8でいいということなら、
> init.cgiの117ページあたりに
> use Jcode;
> Jcode::convert(\$in{'name'}, 'sjis');
> を追加するだけで、済みそうです。
登録ページのみUTF-8で問題ないので、
お教えいただいた方法でやってみようかと思ったのですが、
init.cgiの117行目付近に追加といいますと、
以下のような形でよいのでしょうか?
−−−−−−−−−−−−−−−−−−−−−−−
$in{$key} .= "\0" if (defined($in{$key}));
$in{$key} .= $val;
}
$page = $in{'page'};
$mode = $in{'mode'};
use Jcode;
Jcode::convert(\$in{'name'}, 'sjis');
$lockflag = 0;
$headflag = 0;
}
−−−−−−−−−−−−−−−−−−−−−−−
しかし、上記のように設定しましても、
文字化けは解消されませんでした。
何か根本的に間違っておりますでしょうか?
引き続きとなりますが、
お知恵をお貸しいただけると幸いです。
どうぞよろしくお願い致します。
記事No | : 8071 |
投稿日 | : 2010/10/27(Wed) 12:04:04 |
タイトル | : Re^6: PasswordManagerのユーザー登録をUTF-8で… |
ID情報 | : hirayama |
投稿者 | : 平山 |
> init.cgiの117行目付近に追加といいますと、
> 以下のような形でよいのでしょうか?
>
> −−−−−−−−−−−−−−−−−−−−−−−
> $in{$key} .= "\0" if (defined($in{$key}));
> $in{$key} .= $val;
> }
> $page = $in{'page'};
> $mode = $in{'mode'};
>
> use Jcode;
> Jcode::convert(\$in{'name'}, 'sjis');
>
> $lockflag = 0;
> $headflag = 0;
> }
> −−−−−−−−−−−−−−−−−−−−−−−
>
> しかし、上記のように設定しましても、
> 文字化けは解消されませんでした。
変更箇所はそれで大丈夫です。
文字化けが解消されないなら
Jcode::convert(\$in{'name'}, 'sjis'); の行を
Jcode::convert(\$in{'name'}, 'sjis','utf8');
と変更してみてください。
記事No | : 8073 |
投稿日 | : 2010/10/27(Wed) 17:46:15 |
タイトル | : 【解決しました】ありがとうございます |
ID情報 | : index |
投稿者 | : 上野 |
URL | : http://www.kent-web.com/pwd/pwmgr.html |
平山様、ご回答誠にありがとうございます。
お教えいただいた通りに修正を加えましたところ、
無事にテスト登録で文字化けが起こらなくなりました!
誠にありがとうございます。
このままテスト稼働をさせて
様子を見てみます。
お忙しい中、ご協力いただき、誠にありがとうございました。
今後ともよろしくお願いいたします。
記事No | : 8075 |
投稿日 | : 2010/10/27(Wed) 19:51:44 |
タイトル | : Re: 【解決しました】ありがとうございます |
ID情報 | : hirayama |
投稿者 | : 平山 |
すみません。一点見落としていたところがあるので、今回の変更箇所をさらに
以下のように修正してください。
if ($in{'mode'} eq 'newUser' || $in{'mode'} eq 'chgUser' || $in{'mode'} eq 'delUser') {
eval 'use Jcode;';
Jcode::convert(\$in{'name'}, 'sjis','utf8');
}
前回の修正のままだと、管理者ページでユーザーデータを修正したときに名前が文字化けしてしまうので、
ユーザーからの登録、修正時のみ、utf-8変換を行うためです。
記事No | : 8076 |
投稿日 | : 2010/10/28(Thu) 08:42:42 |
タイトル | : Re^2: 【解決しました】ありがとうございます |
ID情報 | : index |
投稿者 | : 上野 |
URL | : http://www.kent-web.com/pwd/pwmgr.html |
平山様、書き込みありがとうございます。
> すみません。一点見落としていたところがあるので、今回の変更箇所をさらに
> 以下のように修正してください。
承知いたしました。
早速修正させていただきました。
再チェックと修正コード、本当に感謝致します。
誠にありがとうございました。
今後ともよろしくお願いいたします。
上野
記事No | : 8077 |
投稿日 | : 2010/10/28(Thu) 11:45:33 |
タイトル | : 再度質問をさせてください |
ID情報 | : index |
投稿者 | : 上野 |
URL | : http://www.kent-web.com/pwd/pwmgr.html |
平山様
いつも大変お世話になっております。
再度、質問をさせていただいてもよろしいでしょうか?
・文字コードがUTF-8のページ
・文字コードがEUCのページ
このそれぞれ異なる文字コードの別ページから、
文字化けさせずに1つPasswordManagerへ登録をさせたいのですが、
不可能でしょうか?
どうぞよろしくお願いいたします。
【追記】
もしくは、上記のようなことが不可能であれば、
別ディレクトリにPasswordManagerの本体ファイルをそれぞれアップして、
共通の.htpasswdを利用すれば可能でしょうか?
記事No | : 8079 |
投稿日 | : 2010/10/28(Thu) 16:40:25 |
タイトル | : Re: 再度質問をさせてください |
ID情報 | : hirayama |
投稿者 | : 平山 |
どうも文字コードの判別がうまくいかないようなので、
フォームから文字コード情報を送るのが間違いないようです。
具体的には、utf-8の送信フォーム内に
<input type=hidden name=code value="utf8">
というようなタグを追加します。新規メンバー登録のフォームだけでいいです。
場所は<form>タグの下あたりがいいでしょう。
そして initi.cgi sub decode内の
if ($in{'mode'} eq 'newUser' || $in{'mode'} eq 'chgUser' || $in{'mode'} eq 'delUser') {
の部分を
if ($in{'code'} eq 'utf8') {
に変更します。
EUCの場合は、オリジナルのままでも変換できるはずなので、utf-8の場合だけ
Jcode.pmを使ってutf-8からsjisへ変換するという処理になります。
記事No | : 8087 |
投稿日 | : 2010/10/29(Fri) 18:39:07 |
タイトル | : Re^2: 再度質問をさせてください |
ID情報 | : index |
投稿者 | : 上野 |
URL | : http://www.kent-web.com/pwd/pwmgr.html |
平山様
連日にわたるご回答、誠にありがとうございます。
> どうも文字コードの判別がうまくいかないようなので、
> フォームから文字コード情報を送るのが間違いないようです。
早速お教えいただいた通りにファイルを変更し、
それぞれの文字コードのページから登録テストを行いましたところ、
無事に文字化けせずに登録させることができました!
平山様、このたびはお忙しい中、
誠にありがとうございました。
本当に助かりました。
気温が下がって冷えてきておりますのでご自愛ください。
今後ともよろしくお願いいたします。
上野
記事No | : 8070 |
投稿日 | : 2010/10/27(Wed) 09:33:30 |
タイトル | : 【解決しました】ありがとうございます |
ID情報 | : index |
投稿者 | : 上野 |
URL | : http://www.kent-web.com/pwd/pwmgr.html |
KENT様、ご回答誠にありがとうございます。
> UTFに変更するには、いくつか作業が必要ですね。
早速、お教えいただいた通りにやってみたつもりですが、
フォーム送信後の画面が白紙となってしまいました。
(サーバに問い合わせたところ、Jcode.pmは標準で利用できるそうです)
また、登録後のメールも送られてきません。
ただ、管理画面→会員管理から確認しますと、
文字化けせずに登録がされている状態です。
どのような要因が原因だと思われるでしょうか?
お忙しいところ大変申し訳ございませんが、
お知恵をお貸しいただけると幸いです。
どうぞよろしくお願いいたします。