こんにちは。

分からない事があるので、質問させて頂きます。
UNIX系のOSで、 CGIにGET/POSTをかける時に、
CGIを呼び出すHTML文書がシフトJISで記述
してあれば、データをシフトJIS で送信して
くれますか??

ヒントになるような事でも、何でもかまいませんので
アドバイス&回答お待ちしております。
よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

HTML文書で次のように書けばデータをシフトJISで送ります(たぶん)



..
<META http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
..
<form ENCTYPE="text/plain">
..

参考URL:http://www.pst.co.jp/Powersoft/C_Cgi/ref/RefForm …
    • good
    • 0

送信しません


そういう関連はありません
    • good
    • 0

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

このQ&Aと関連する良く見られている質問

QCGIから別のCGIへPostするには?

こんにちは。
a.cgiにアクセスがあったらb.cgiに<data=hoge>というデータを
postしたいのですが、どうすればいいのですか?

よろしくお願いします。

Aベストアンサー

CGIの言語がPerlだとして、
LWP
HTTP::Request::Common
を使う例。


use LWP::UserAgent;
use HTTP::Request::Common qw(POST);

$url = "http://hogehoge/cgi-bin/b.cgi";

%formdata = ('data' => 'hoge');

$request = POST($url,[%formdata]);
$ua = LWP::UserAgent->new;
$res = $ua->request($request);

QCGIからCGIへの(GET属性)リンクについて

CGI(Perl)ゲームを作っていて個人名での戦闘ログを一覧表示するプログラムを作っていて下記の表示になるように作りました。

「Viewer.cgi?name=hogehoge&…(略」
ファイル名 攻、守
1.cgi  守備側
7.cgi  攻撃側
16.cgi  攻撃側
    :
    :
(1~16.cgiはログファイルで読み込み専用です)

これからさらに1.cgi、7.cgi・・・とリンクで単体ファイル毎のログを表示させたいと思い、<a href=http://~/log_viewer.cgi?name=16.cgi>と書いてリンクしてみたのですが、うまくいきませんでした。GET属性のように送るにはフォームからGET属性を付けて送るしかないのでしょうか?

リンクのテキストリンクでの送信方法(その後にやらなければいけないこと等)、もしくはフォームでテキストリンクでの送信方法を教えていただきたいです。無理でしたら出来る限りテキストリンクになるような方法でも構いません。どうかよろしくお願いします。

Aベストアンサー

GETではアドレスで値を渡します。
ですから、ttp://~/log_viewer.cgi?name=16.cgiでも構いません。
フォームからGET属性を付けて送っても結局は上と同じことになります。

結局、エラーの内容はなんですか?
500エラー(内部サーバーエラー)でしょうか。404エラー(そのファイルがない)でしょうか。それとも他のでしょうか?

上のようにエラー内容・Viewer.cgi(log_viewer.cgiかも?)と1.cgiの中身・使っているサーバーの名前の4つを教えていただけますか?

くれぐれも著作権に当たらないように。

あと、最初は
Viewer.cgi?name=hogehoge&…(略 なのにリンクは
log_viewer.cgi?name=16.cgi ですがそこらへんのミスとかではないのでしょうか?

QCGI自体の質問ではないのですが、CGIに関係があると思われるのでこち

CGI自体の質問ではないのですが、CGIに関係があると思われるのでこちらに質問させていただきます。

dropboxというストレージのサービスを行っているサイトがあるのですが、

↓こちらのサイトです。
https://www.dropbox.com/

ログイン後のフォルダ階層移動のURLは必ず
↓(コロン3つ)が付いているのですが、
--------------
:::
--------------


このコロン3つはどういう意味があるのでしょうか?
そもそも、このサイトのページ遷移の方法、htmlの書き換えの方法が知りたいです。

参考になるご意見を頂戴できればと思っています。
よろしくお願いします。

Aベストアンサー

>参考になるご意見を頂戴~
ということで。
アカウントはないのでこのサイトがどうかは分かりませんが、#や:はセパレータの感じがします。

cgiへの変数を渡す場合のクエリは、一般的には
act=home&id=12345&lang=ja&ref=reg& ~ のような形ですが、
SEO対策のためクエリを短くしたい、キー名を隠匿したい、などの理由により、
home:12345:ja:regist
などとして、スクリプト側でセパレータで分割してやる方法もよく取られます。
( : に限らず | など変数の値に使用しない文字なら何でもかまわない)

もし、そのサイト他のページを回ってみて、:12345::abcd: などと間に文字が入ることがあればセパレータで間違いないでしょう。
その場合、:::は単に「すべての値が空」ということです。

または、もしそのページのソースに <a name=':::'> や id=':::' が見つかれば、ページ内リンクのための単なるアンカーです。(それにしては不自然な命名ですが)


>このサイトのページ遷移の方法~
ざっと見、URLが/install ,/tour といった形式で終わっているので
mod_rewrite で内部で
http://example.com/○○○ ==>
http://example.com/コントローラ.cgi?page=○○○
のように変換しているかと。

方法は mod_rewrite で検索すればよい解説ページが沢山みつかります。

>参考になるご意見を頂戴~
ということで。
アカウントはないのでこのサイトがどうかは分かりませんが、#や:はセパレータの感じがします。

cgiへの変数を渡す場合のクエリは、一般的には
act=home&id=12345&lang=ja&ref=reg& ~ のような形ですが、
SEO対策のためクエリを短くしたい、キー名を隠匿したい、などの理由により、
home:12345:ja:regist
などとして、スクリプト側でセパレータで分割してやる方法もよく取られます。
( : に限らず | など変数の値に使用しない文字なら何でもかまわない)

もし、そのサ...続きを読む

QGETとPOSTの違い

<form>でCGIへのデータの転送ですが、

(1)「GET」と 「POST」がありますが、どんな違い、メリット/デメリットがあるのか教えてください

(2)また、送信情報のセキュリティーと関係はありますか?

(3)検索エンジンなどはGETが多いようですが、なぜですか?


いろいろ質問が多くて申し訳ありません。
よろしくお願いいたします

Aベストアンサー

CGIプログラム側から見ると、

○「GET」の場合
 環境変数「QUERY_STRING」で値が渡される
 データがOSで認められた以上の大きさになると、値が環境変数に収まらなくなりデータが途中で切れてしまう
○「POST」の場合
 Formの値は標準入力(STDIN)に渡され、データの長さは環境変数「CONTENT_LENGTH」に入る
 データの長さはOSに依存しないため、大きなデータでも問題なく渡せる

という違いがありますね。

一方、CGIを使うユーザー側から見ると、GET methodの場合はURLの後に「http://hogehoge/foo.cgi?input=xxx」というような形で引数を指定すると、Formからデータを入力したのと同じような効果が得られるのに対し、POST methodしか対応していないCGIでは、基本的にFormにデータを入力してやらないとプログラムが正しく動かない、という違いがあります。
そのため、検索エンジン等の場合は検索結果に対して直リンクが張りやすいGET methodを使っているところがほとんどです。

セキュリティ的にはどちらも大した違いはありませんが、Formに入力したデータがブラウザの「アドレス」欄に表示されない分だけ、ややGET methodの方が有利といえるでしょうか。

CGIプログラム側から見ると、

○「GET」の場合
 環境変数「QUERY_STRING」で値が渡される
 データがOSで認められた以上の大きさになると、値が環境変数に収まらなくなりデータが途中で切れてしまう
○「POST」の場合
 Formの値は標準入力(STDIN)に渡され、データの長さは環境変数「CONTENT_LENGTH」に入る
 データの長さはOSに依存しないため、大きなデータでも問題なく渡せる

という違いがありますね。

一方、CGIを使うユーザー側から見ると、GET methodの場合はURLの後に「http://hogehoge/fo...続きを読む

QシフトJIS 2バイト字の範囲

シフトJISの2バイト文字の範囲は

0x40~0x7e と 0x80~0xfc



0x40~0xfc

のどっちですか?
どちらの情報も見たことがあるんです。

シフトJISの文字をマッチングさせる場合、
ここでは見やすく、スペースを入れて

/ [\x81-\x9f] [\x40-\xfc] | [\xe0-\xfc] [\x40-\xfc] /

とした場合、例えば、亜a という文字列があったら
亜 の2バイト目(下位ニブルっていうのかな)が 9F で
b は16進で 62 だから、亜 の2バイト目と a が、
2バイトのシフトJISとしてこれにマッチしてしまうんです。
シフトJISで、こういう例外処理を書かずに、
全てに適用できるシフトJIS2バイトマッチのソースが
あれば教えてください。

Aベストアンサー

「0x40~0x7e と 0x80~0xfc」だと思いますよ。
「亜a」に対してマッチングするのではなく、前から2バイトずつマッチングして、マッチしたら2バイト進み、マッチしなかったら1バイト進むというようにしないとダメでは?
0x7fの例外処理?を除くことはできないですよね。

参考URL:http://www.sowa.is.uec.ac.jp/~ueno/material/kanji/sjis.html


このカテゴリの人気Q&Aランキング

おすすめ情報