電子書籍の厳選無料作品が豊富!

はじめまして、質問させていただきます。
よろしくお願いいたします。

現在、入力フォームにIDとパスワードを入力し、フォームデータをID・パスワード認証用のCGIに渡し、正しければ任意のページへジャンプするという動きのページを製作したのですが、safariで動作チェックしたところ、正しく動きません。各サイトやQ&Aなどを調べたところ、どうやら文字化けによるものだと推測しました。 safariでフォーム送信が正常に動いているサイトなども見たのですが特別なことをしている様子が無いので、原因がいまいちわかりません。

詳細は下記

■サイト閲覧環境
OS:OSX 10.3.7
ブラウザ safari 1.2.4(v125.12)
テキストエンコーディング:Shift_Jis

■フォーム入力ページの仕様(HTMLファイルの中身)
<html lang="ja">
<META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=Shift_JIS">
↑この二つのタグは記入してあります。


WindowsのIE・NN・Operaでは正常に動作します。

マックはほぼ無知に近いので、そのあたりもふまえて伝授いただければと思います、申し訳ありません、よろしくお願いいたします。

A 回答 (4件)

パスワードに使用する文字に2バイト文字を許容すれば、おっしゃるようなことが起きるでしょうが、ASCII文字(A - Z、a -z、1 -9、ほか決められた記号類)のみに制限すれば、文字化け(文字コードの相違)が影響することはあり得ません。


なぜなら、ASCII文字(0001~007E)は、日本語に限らず全言語の文字コードで共通だからです。

パスワード認証がとおらないのは、ふつう暗号化に使っている技術をウェブブラウザ側が採用しているかどうかの問題と考えます。
hrs_rickyさんが暗号化・複合化のCGIまでお書きになっているのではないでしょうから、使っているCGIの付属ドキュメントで確かめてみてはいかがでしょうか?
Safariでパスワード認証できないサイトはまだいっぱいありますよ。だからInternet ExplorerをいまだにMac OS Xに付属させざるをえないのでしょう。

この回答への補足

回答ありがとうございます。

私の方で説明不足が多く申し訳ございません。
もう少し詳しく補足させていただきます。

パスワード認証用のCGIはPerlで自作しました。

CGIの内容は・・
フォーム内容を受け取り、会員情報のデータベース
と照合しOKであれば任意のページにジャンプすると
いうものです。
「暗号化」「複合化」はしていません。
送信用のフォーム部品は普通のテキストボックス(<input type="text" name"○○○">)でパスワード
用のフォーム部品は使っていません。


>パスワードに使用する文字に2バイト文字を許容す
>れば、おっしゃるようなことが起きるでしょう
>が、ASCII文字(A - Z、a -z、1 -9、ほか決めら
>れた記号類)のみに制限すれば、文字化け(文字
>コードの相違)が影響することはあり得ません。
フォームで送るデータについては2バイト文字を
使っておらず、すべてASCII文字での入力となって
います。
質問を出しつつ、簡単なパスワード認証用のCGIを
自作しテストしてみました。その結果まったく文字
化けはしておらず、きれいにフォーム送信内容が送
られて来ました。当然ですね(^^;

>Safariでパスワード認証できないサイトはまだい
>っぱいありますよ。だからInternet Explorerをい
>まだにMac OS Xに付属させざるをえないのでし
>ょう。
そうなんですか、まだ問題のあるブラウザなので
すね、できればsafariにも対応したいと思っている
ので。 困りました・・・。

最後に・・・
Windowsでは問題なく動作し、safariで文字化けして
いないとなると、自作したCGIの内容に問題がある
のだと思うのですが、やはり原因不明は変わらない
ような気もします。 なにか思い当たる事があれば
ご回答ください。

補足日時:2005/01/07 18:42
    • good
    • 0

パスワード認証についての本題については、ASCII文字ないし半角英数字に限定するということで解決したと思いますが、「SafariからシフトJISの文字コードを送信したい」という発展した問題についても触れてみたいと思います。



Safariの環境設定>表示で「デフォルトエンコーディング:」を「日本語(Shift JIS)」にすれば、シフトJISで送信してくれると思います。ご検証ください。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
デフォルトエンコーディングを「日本語(Shift_JIS)」
で検証して見ます。

お礼日時:2005/01/11 10:41

自分もよくしらないんですけど、聞いたことがあることを書きます。


FOMRで送るときに「GET」「POST」があります。
GETだと、URLに添付させてデータを送るもので、
POSTだとある変数にいれこんで送るものだと思います。
(厳密にいうと違うと思います。すいません。
GETで送る場合、CGIだと文字化けをしてしまうようなので、
POSTで送ってみてはどうでしょうか。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
私の説明不足でした。
フォームの送信は「POST」で行っています。
パスワード認証のCGIはperlで自作しました。
私の自作CGIの方に何か問題があるのかもしれません
チェックしてみます。
ありがとうございました。

お礼日時:2005/01/07 18:42

Safariのバグかもしれませんね。


途中から一気に化けることがありました。

参考URL:http://homepage.mac.com/mkino2/safari/hmdt.html
    • good
    • 0
この回答へのお礼

早速の回答ありがとうございます。
safariに限らずブラウザのバグを製作側が対応していくのって非常に大変ですね。参考URLを見たところパッチで回避する方法もあるんですね、参考になりましたありがとうございました。

お礼日時:2005/01/07 18:34

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