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

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を使った様な事は出来ないでしょうか。
宜しくお願いします。

●質問者: spyglass
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:CGI EXIT HTML JavaScript open
○ 状態 :終了
└ 回答数 : 4/4件

▽最新の回答へ

1 ● b-wind
●23ポイント

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

URLはダミーです。

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

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

◎質問者からの返答

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

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

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

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

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


2 ● worldtravel
●23ポイント

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>

◎質問者からの返答

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

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

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

宜しくお願いします。


3 ● b-wind
●22ポイント

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

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

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

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

◎質問者からの返答

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

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

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

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

http://www.shinseibank.com/

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


4 ● b-wind
●22ポイント

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...

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

◎質問者からの返答

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

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

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

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

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

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

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

ということになります。

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

関連質問


●質問をもっと探す●



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