formのinputタグを使ってCGIにデータを渡し、HTMLを返す状態で、
CGIから返ってきたHTMLファイルをブラウザの戻るボタンを押すとCGIにデータを渡すぺーじに戻ってしまいます。
これを戻れないようにできないでしょうか。

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

ブラウザの」に関するQ&A: ブラウザの更新

A 回答 (2件)

Javascriptの「replace()」メソッドを使って元のページに戻れないようにすればどうでしょうか?


そうすれば元のページのURLが来歴上に残らないので戻るボタンを押しても元にページへは戻れなくなりますけど。
がんばってください。
    • good
    • 0

そのまま返すのではなく


新しいウィンドウを作って返せば戻れなくはなります。
(同時に元のページは閉じてしまうと完璧)

ただ間違えて入力してしまった場合は
アウトですね。
(仮に2重送信防止用でしたら他の方法のほうが良いと思いますが)
    • good
    • 0

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人が検索しているワード

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

Qhtmlのフォームからcgiにデータを渡す方法

下記[例1]のhtmlで作成したフォームから下記[例2]のcgiへデータを渡したいのですが、
どのようにしたら良いのでしょうか?
初心者なので全くわかりません。
お手数とは存じますが、ご享受お願い致しますm(__)m

[例1]
<form method="post" action="xxx.cgi">
<input type="text" name="a" value="" size="10" />
<input type="text" name="b" value="" size="10" />
<input type="submit" value="送信" />
</form>

[例2]
*****($a,$b);

上記[例1]の、aとbを、cgi[例2]の$aと$bに。

質問内容が分かりにくくて申し訳ございませんが、よろしくお願い致します。

Aベストアンサー

http://www.google.com/search?hl=ja&lr=lang_ja&ie=UTF-8&oe=UTF-8&q=cgi+%E3%83%91%E3%83%A9%E3%83%A1%E3%83%BC%E3%82%BF+%E5%8F%96%E5%BE%97&num=50

QCGIソース中のHTMLタグですが。。。

print "<input type=\"text\" value=\"name\" />";
とか
print "<hr />\n";
などの

「/」 の役割がわかりませんが、必要でしょうか。
「/」 が無くても動作しているようでしたが。。。

本当に初歩的で失礼な質問かも知れませんが、
教えていただければ本当にありがたいです。

どうぞよろしくお願いいたします。

Aベストアンサー

XHTMLだと必要。
XHTMLは、yatokesaさんが既に回答してます「XML」をベースに、HTMLの仕様を再定義した、後継仕様です。
XMLは、必ず開始タグ(<h1>とか。)と終了タグ(</h1>とか、)が対にならないといけませんが、空要素(開始タグと終了タグの間に何も入れちゃダメ。)については、

<e></e>

と書く代わりに、

<e />

という書き方も認めてます。
で、XHTMLでは、<br>や<img>などを、<br />や<img />と書くようになっている、という事です。

参考URL:http://www.atmarkit.co.jp/fxml/askxmlexpert/022xhtml/22xhtml.html

QCGI:HTML表示結果のカスタマイズとタグの隙間

お世話になります。
CGIはフリー配布されているものをわずかに触る程度の初心者で、足りないことを申し上げてしまうと思いますが教えていただけますと嬉しいです。

今、「リンクラリー」というフリー配布のCGIをさわっています。
これをベースにwebスタンプラリー(リンクバナーをスタンプ画像にしたり)として何とか雰囲気だけは近づけたのですが、どうしても表示を思うようにできなかったり、「どうしてこここにこの隙間ができるんだろう…」と自分では解明できない状況が生じました。
CGI配布元様:http://exdreams.net/room/contents/e_lrarry.html

(1)進捗を確認する「user_rarrylist.html」の一覧表を、5列×3行(15マス)として表示したいのですが、<!--START RARRY LIST--><!--END RARRY LIST-->で繰り返し処理(スタンプゲット)を挟むと、次の処理との間に隙間ができてしまいます。
TABLEで背景画像(スタンプシート)とWIDTHを指定していますが、ゲットしたスタンプ(IMG)がずれていきます(背景とうまく重ならない)。
●TDタグ使用→TDタグで15個生成されるため、横に15マスの長い表ができてしまう。

(2)指定したID名にゲットスタンプを放り込む、などという方法は思いついても、実現可能かどうかさえ分かりませんでした。

(2)DIVタグのID属性(名前)を利用して、ボックスの表示・非表示をコントロールすることは可能でしたが、やはり隙間の問題と、思った順番(スタンプA→ボックス1に表示)することができませんでした。

(1)(2)(3)(4)(5)
(6)(7)(8)(9)(11)
(12)(13)(14)(15)(16)
このように「5×3」で番号順に(ゲット順に影響受けず)表示ができればと思っております。
もし可能であれば、教えていただけますと嬉しいです。
よろしくお願いいたします。

お世話になります。
CGIはフリー配布されているものをわずかに触る程度の初心者で、足りないことを申し上げてしまうと思いますが教えていただけますと嬉しいです。

今、「リンクラリー」というフリー配布のCGIをさわっています。
これをベースにwebスタンプラリー(リンクバナーをスタンプ画像にしたり)として何とか雰囲気だけは近づけたのですが、どうしても表示を思うようにできなかったり、「どうしてこここにこの隙間ができるんだろう…」と自分では解明できない状況が生じました。
CGI配布元様:http://exdr...続きを読む

Aベストアンサー

普通にリストとしてマークアップして、スタイルシートでフロートさせれば良いです。
文書の整形のためにtableを使用するのは禁忌でもあるし・・
『単に文書内容を整形する目的だけで表を用いるべきでない。( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/struct/tables.html#h-11.1 )』
『ページレイアウトの目的で表を用いる。( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/present/styles.html#h-14.1 )』

 それを、ウィンドウ幅に合わせて伸縮させれば良いです。mediaquery使ってウィンドウ幅で列数を変更することも可能になります。
[例]
<ol id="PartyList">
 <li>内容</li>
 <li>内容</li>
・・・
ol#PartyList,ol#PartyList li{list-style:none;margin:0;padding:position:relative;}
ol#PartyList li{width:19%;float:left;}

普通にリストとしてマークアップして、スタイルシートでフロートさせれば良いです。
文書の整形のためにtableを使用するのは禁忌でもあるし・・
『単に文書内容を整形する目的だけで表を用いるべきでない。( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/struct/tables.html#h-11.1 )』
『ページレイアウトの目的で表を用いる。( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/present/styles.html#h-14.1 )』

 それを、ウィンドウ幅に合わせて伸縮させれば良いです。mediaquery使ってウィンド...続きを読む

QCGIをHTML(scriptタグ)上でうまく呼び出せない

お世話になっております。
ご存知の方いらっしゃいましたら、ご教授願えますでしょうか?

HPにアクセスカウンタを設置したいと思い、

http://apps.cside.com/cgi/counter/jscnt/
こちらのアクセスカウンタをお借りして

CGIのテストを兼ねてtest.htmで呼び出したいので、
test.htmに以下のような記述をしました。
------------------------------------------------------------------------
<html>
<head>
<title>top</title>
<script language="JavaScript" src="./jscnt/cnt.cgi"></script>
</head>
<body>
</body>
</html>
------------------------------------------------------------------------

また、こちらのCGIの説明ページに書いてある通り、
以下のように設置しました。

 html/(レンタルサーバのメインディレクトリ)
 │
 ├ test.html ……………………… (755) カウンタ呼出しHTML
 │
 └ jscnt/  ………………………… (755) プログラムディレクトリ
   ├ cnt.cgi …………………… (755) カウンタcgiファイル
   └ data.cgi ………………… (666) カウント数記録ファイル

以上のように設定したのですが、真っ白のページが表示されるだけで、
カウンターが出ません・・・。

他に設定や何かタグ等を追加する必要があるのでしょうか?

お手数ですが宜しくお願いいたします。

お世話になっております。
ご存知の方いらっしゃいましたら、ご教授願えますでしょうか?

HPにアクセスカウンタを設置したいと思い、

http://apps.cside.com/cgi/counter/jscnt/
こちらのアクセスカウンタをお借りして

CGIのテストを兼ねてtest.htmで呼び出したいので、
test.htmに以下のような記述をしました。
------------------------------------------------------------------------
<html>
<head>
<title>top</title>
<script language="JavaScript" src="./jscnt/cnt.cgi"></script>
<...続きを読む

Aベストアンサー

http://www.hotss.jp/tstcgi/
こういう感じになります。

直接指定した場合は
http://www.hotss.jp/tstcgi/jscnt/cnt.cgi

document.write('000006'); と変な表示となります (笑)

では 頑張ってください。

Qhtmlからcgiに変数を配列にして渡すとき

フォームにて、質問1,2,3…と入力してもらい、
1を答えないで2を答えるとか、
2を答えないで3を答えるとかを排除したいので、
変数を配列にして受け取りたいのです。
とりあえず今のところはこうなってます。↓

#htmlファイル#
<INPUT type="text" size="30" name="situmon[1]">
<INPUT type="text" size="30" name="situmon[2]">
...
としてcgiに持っていき、
#cgiファイル#
for($i=1; $i<=4; $i++){
if($form{'situmon[$i]'} eq "" && $form{'situmon[$i+1]'} ne ""){
&error; #→エラーメッセージサブルーチン
exit;
}
}

のようにして受け取ろうとしてるのですが、うまくいきません。
上のようにhtmlではどう書くべきか、cgiではどう受け取るべきかを教えてくだされば嬉しいです。

Aベストアンサー

$form{"situmon_1"} = "" ;
$form{"situmon_2"} = "b" ;
$form{"situmon_3"} = "c" ;
$form{"situmon_4"} = "" ;

for ( $i = 4; $i >= 1; $i -- )
{
if( $form{"situmon_$i"} eq "" )
{
if ( $needValue == 1 )
{
print "error!!\n" ;
}
}
else
{
$needValue = 1 ;
}
}

でどうでしょうか。後ろからチェックするのがミソです。
あと、bubibabeさん例示のソース内で、連想配列のキーにスカラ変数を指定していますが、シングルクォーテーション(')で囲むと変数は展開されなかったはず。また、クォーテーション内部の計算式もただの文字列として扱われますから、$i+1 は $i+1 という文字列のままです。
計算式は事前に計算してキー文字列に組み込み、連想配列に変数入りの文字列を指定するときにはダブルクォーテーション(")で囲みましょう。
さらに、フォーム名に[]付きの(配列風の)名前を付けても、CGIに渡されたときにはただの文字列ですから、あまり意味はありません。かえって混乱のものになるだけです。

$form{"situmon_1"} = "" ;
$form{"situmon_2"} = "b" ;
$form{"situmon_3"} = "c" ;
$form{"situmon_4"} = "" ;

for ( $i = 4; $i >= 1; $i -- )
{
if( $form{"situmon_$i"} eq "" )
{
if ( $needValue == 1 )
{
print "error!!\n" ;
}
}
else
{
$needValue = 1 ;
}
}

でどうでしょうか。後ろからチェックするのがミソです。
あと、bubibabeさん例示のソース内で、連想配列のキーにスカラ変数を指定していますが、...続きを読む


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

おすすめ情報