cgiについて質問です。

以下のようなある結果においてhtmlを出力するcgiを組みました。

----------------------------------------
#!/usr/local/bin/perl
# メニューバーとツールバーを非表示にする方法
# 判定結果後、以下のhtmlを出力

print "Content-Type: text/html\n\n";
print <<END_HTML;
<html><head>
<META http-equiv="Refresh" content="0;URL=http://www.hatena.ne.jp/">
<META http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<META http-equiv="Content-Style-Type" content="text/css">
<title></title>
</head><body></body></html>
END_HTML
exit;
----------------------------------------
その時に新しく表示された別ウィンドウにはメニューバーやツールバーを表示させたくありません。
javascriptでのwindow.openを使った様な事は出来ないでしょうか。
宜しくお願いします。

回答の条件
  • URL必須
  • 1人5回まで
  • 登録:
  • 終了:2006/08/15 01:20:47
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答4件)

id:b-wind No.1

回答回数3344ベストアンサー獲得回数440

ポイント23pt

http://q.hatena.ne.jp/1154967486

URLはダミーです。

CGIでは出来ません。CGI はサーバー側で処理されるので、出来上がったものは単なる HTML ファイルと同じです。

javascriptでwindow.openを使った HTML を出力するしかないでしょう。

id:spyglass

回答有難う御座います、CGIでは無理ですか・・・

IDとパスワードを確認するためにHTMLから一旦CGIに渡して処理をしています。

HTMLからJAVASCでダイレクトに表示するとパスワード確認が出来ないですし・・・

銀行のログイン画面が同じ様な事を行っているので、それを実現したく思っております。

回答お待ちしております。

2006/08/09 03:11:47
id:worldtravel No.2

回答回数34ベストアンサー獲得回数4

ポイント23pt

http://---ダミー---

汚いですがこんな感じでcgiに渡してみてはいかがですか?

<HTML>

<HEAD>

<SCRIPT Language="JavaScript"><!--</p> <p>function login(){</p> <p> Uid = document.form.id.value;</p> <p> Upass = document.form.pass.value;</p> <p> url = "<a href="http://xxxxx.xxx/xxx.cgi?id=" target="_blank">http://xxxxx.xxx/xxx.cgi?id=</a>" + Uid + "&pass=" + Upass;</p> <p> window.open(url,"login","width=300,height=200,scrollbars=no,location=no,menubar=no");</p> <p>}</p> <p>// --></SCRIPT>

</HEAD>

<BODY>

ID

PASS

</BODY>

</HTML>

id:spyglass

ソース有難う御座います。

どうもうまくCGIに渡せません。

CGIソースもあると有難いです。

宜しくお願いします。

2006/08/09 03:39:17
id:b-wind No.3

回答回数3344ベストアンサー獲得回数440

ポイント22pt

http://q.hatena.ne.jp/1154967486

「銀行のログイン画面」でしたら具体的に指定していただけるとイメージがはっきりするかと思います。

「メニューバーやツールバーを表示させない」理由にもよるのですが、JavaScript で window を開き、開かれたページが CGI である分には問題はないのですがいかがでしょうか?

いずれにせよ、どこかの段階では JavaScript 等のクライアントサイドの技術が必要かと。

id:spyglass

バー各種を表示させたく無いのはクライアント操作で画面表示を崩したくないためです。

JavaSC→JavaSCでもOKなのですがパスワード管理の方法が思いつきません。

下記URLなどはツールバーが消えています。

新生銀行(左上のログイをクリック)

http://www.shinseibank.com/

どうぞ宜しくお願いします。

2006/08/09 03:06:54
id:b-wind No.4

回答回数3344ベストアンサー獲得回数440

ポイント22pt

http://q.hatena.ne.jp/1154967486

すいません、僕のほうでまだ質問の全体像が見えてきていません。

新生銀行の場合ですと、ログインをクリックすると JavaScript でウィンドウが開きます。もとのウィンドウはそのままです。

この先はアカウントを持っていないので確認できていないのですが、おそらく

1.開かれたウィンドウ内で処理が継続する。

2.ログイン処理後開かれたウィンドウを閉じ、元のウィンドウで処理が継続する。

のどちらかだと思いますが、

1.の場合、form からログイン情報を受け取りログイン後の画面を表示する CGI を作成する。とくに CGI・JavaScript で操作しなくても開かれたウィンドウのままでページ遷移するはずです。

2.の場合、form からログイン情報を受け取り JavaScript で元のウィンドウに情報を渡す HTML を吐き出す CGI を作る。

ということになるでしょうか。

画面操作を崩したくないとの事ですから、1の挙動を希望されているのだとは思いますので、結論としては最初に JavaScript でウィンドウを開くページ(CGIで無くともよい)を作成する、ということになるでしょうか。

「パスワード管理の方法」の部分はかなり別の問題になるように思いますが、どのような部分が問題でしょうか?

よくある形としてはログイン処理時にセッションを作成し、セッションの識別IDをクッキーの形で持たせるといった形になります。

PHP/Java では標準でその機能がありますが、Perl ですと

CGI::Session

http://www.dab.hi-ho.ne.jp/sasa/biboroku/perl/session.html

か Apache::Session

http://homepage3.nifty.com/hippo2000/perltips/apache/Session...

モジュールを使うのがよいかと思います。

id:spyglass

再三の回答有難う御座います。

私も一旦JavaScriptでウィンドウを開き処理を継続(CGIでパス認証)すれば画面の構図が崩れなくて良いのでは・・・と思いますのでこの方法で続けようかと思っております。

簡単に言うと新たに開く小窓は出力結果をビューアーのイメージにしたかったのです。

ただ画面の大きさを固定にしたかったのは画面構成を崩したくないため。

URLバーを非表示は直接のアクセスを防ぎたいため。

この辺りはCGIを使っているお陰で特定IP以外は撥ねられるでOK。

ツールバーを非表示にしたいのは有らぬ操作を防ぎたいため。

ということになります。

色々と参考にさせて戴きます有難う御座います。

2006/08/09 04:14:24

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

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

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

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

回答リクエストを送信したユーザーはいません