• ベストアンサー

ページがEnterで再起動されるのはなぜですか?

C言語でCGIを組んでるんですが、 ページのレイアウトが <input type="text -- のテキストが一つだけの画面でブラウザに画面表示後、 ENTERキーを押下すると、ページを再起動してしまいます。 (画面表示したCGIを再起動。。) 特にテンプレート上でJavaScriptは記述していません。 ためしに、<input type="text -- を二つおくと、現象が再現されなくなります。 これは、ブラウザの仕様なのでしょうか? <input type="text タグの個数で動作が変化するのは おかしいような気がします。 仕様している環境は、 ブラウザがIE5.5と OSがNTです。 サーバはApacheを使用しています。 ほとほと困っています。

  • HTML
  • 回答数2
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • A__
  • ベストアンサー率47% (22/46)
回答No.2

IEでは、テキストが1つだけの場合と2つ以上の場合は 異なる動作をするみたいです。 テキストが1つだけの場合は、ENTERキーで送信できた方が 便利な場合が多いからそういう仕組みにされている という話を聞いたことがあります。 俺はENTERキーで送信させたくない場合は <form action=cgi.cgi> <input><input style=display="none"> </form> で対応させてるよ。

nobody1
質問者

お礼

やはり、IEの仕様だったんですか。。。 僕てきには、この仕様は納得できない 範疇ですが、、いたしかたありません。。。 トホホホホ。。 本当にありがとうございました。 <input style=display="none"> で対応させてみます。

その他の回答 (1)

  • UKY
  • ベストアンサー率50% (604/1207)
回答No.1

質問を見ていてふと思ったんですけど、まさか <input type="text" ... とすべきところを <input type="text ... としていませんよね?

nobody1
質問者

補足

<input type="text.....は 省略した形で明記してしまいました。 ちゃんと、とじてますよ^^; いまだ原因がわからず、困っています。 とにかく、 <input type"text".....>が一つだけのページと 二つ以上あるページだと、 Enterキーの動作ので相違があります。 IEの設定でもなさそうだし、、 なぜ、リロードするのでしょうか? 一応ログをとったら、同じCGIが走るので、 完璧に、ブラウザ側から、サーバーに対して getで要求を出してます。。 なぜ要求をだすのかぜんぜんわがりません。

関連するQ&A

  • 同じフォーム内で、押下するボタンによって、飛び先のページ(cgi)を変

    同じフォーム内で、押下するボタンによって、飛び先のページ(cgi)を変えたい。 例えば、 以下のように、同じフォーム内に2つのボタンを用意し、 片方のボタンをクリックすると、現在のページ(aaa.cgi)へ戻り、 もう片方のボタンをクリックすると、別のページ(bbb.cgi)へ飛ぶようにしたい。 なお、何れのボタンもサブミットしたい。 ↓(aaa.cgi)================================= : <form name="frm1" action="???" method="post"> <input name="t1" type="text"> <input name="t2" type="text"> : <input name="b1" type="button" onClick="submit();"> <input name="b2" type="button" onClick="submit();"> : </form> : ↑(aaa.cgi)================================= 良い方法はないでしょうか。 ご存知の方、ご教授ねがいます。 よろしくお願いします。  

    • ベストアンサー
    • Perl
  • フォームの内容を確認するページをはさむ方法

    htmlのフォームに記入してもらった内容を、そのままデータに書き込むcgiに送信するのではなく、一回内容を表示した確認cgiをはさみたいのですが、どうすればよいのでしょうか。 とりあえず、今の状態は、htmlファイルから読み込むデータを"name","mail","coment"の3つとしてます。 enquete.htmlファイルの一部: <FORM method="POST" action="enquete.cgi"> <TABLE> <TR> <TD>名前</TD> <TD><INPUT type="text" name="name"></TD> <TD>メールアドレス</TD> <TD><INPUT type="text" name="mail"></TD> <TD>コメント</TD> <TD><INPUT type="text" name="coment"></TD> </TR> <INPUT type="submit" value=" 送 る ">    <INPUT type="reset" value="やり直す"> のような感じです。 これに確認cgiをはさんで、 enquete.html"確認ページへ" →kakunin.cgi"送る" →enquete.cgi"戻る" みたいな構成にしたいのですが、kakunin.cgiの実装の仕方を教えてください。また、それにともない、直す箇所も教えてください。 おねがいします。

    • ベストアンサー
    • CGI
  • HTMLページから他のフォーム.cgiを利用する場合に別窓で表示したい

    HTMLページから他のフォーム.cgiを利用する場合に別窓で表示したい。 <form method="get" action="http://~~~"> <input type="text" name="url" size="45" value="http://" /> <input type="submit" value="送信" /> </form> これで自分のHTMLサイトから、送信をクリックすると 他の.cgiの結果がそのまま今表示しているブラウザで表示されますが、 自分のページを残したまま、 <a href="http://~~" target="_blank"> のクリック時のように、別窓で表示したいのですが。お願いします<(_ _)>

    • ベストアンサー
    • HTML
  • 「ページの有効期限切れ」について

    お世話になります。 同様の質問が多々あり根本的な解決に至っていませんでしたので、質問させて頂きます。 現在、ASP.NETでファイルをアップロードする画面を作成しています。 アップロード後に結果画面に遷移しています。 現象としては・・・ 結果画面からブラウザの[戻る]ボタンまたはjavascriptのhistory.back()を使用すると「ページの有効期限切れ 」と表示されてしまいます。 原因としては・・・ IEでは、フォームにファイルフィールド(<input type="file">)を使用している場合、次のページがキャッシュされないため、「戻る」ボタンを押したときに「ページの有効期限切れ 」になってしまう。 ※IEの仕様 対策として・・・ 過去の質問などから以下の2つを考えています。 1.IEを使用しない。または「ページの有効期限切れ 」でブラウザの[更新]ボタンを押下する。 2.ブラウザの[戻る]ボタンを使わせず、history.back()を使用していたボタンを直接、前画面に遷移するボタンに変更する。 そこで質問なのですが、上記の2つ以外での対応策はあるのでしょうか?

  • フォームからCGIを起動できない

    こんばんは。 WebサーバApacheでCGIを作成しています。 DocumentRootが初期設定/var/www/html/で、その下にindex.htmlを作成しました。 次にcgiのディレクトリが初期設定の/var/www/cgi-bin/で、その下にtest.cgiを作成しました。 そして、test.cgiのパーミッションを-rwxr-xr-xにしてからApacheを起動しました。 別マシンのブラウザからhttp://xxx.xxx.xxx.xxx/index.htmlでアクセスし、フォームのテキストボックスに「abc」と入力して送信ボタンを押しましたが、404エラーになってしまいます。 (アドレスバーには「http://xxx.xxx.xxx.xxx/test.cgi?NAME=abc」と表示) ブラウザのアドレスバーに直接「http://xxx.xxx.xxx.xxx/cgi-bin/test.cgi?NAME=abc」とすると正常にアクセスできます。 ドキュメントルート配下にあるindex.htmlからドキュメントルート外にあるCGIのディレクトリ(ScriptAlias /cgi/bin/ "/var/www/cgi-bin/")を参照するにはどのようにしたらよいのでしょうか? ----------index.html---------------- <HTML> <HEAD><TITLE>フォーム</TITLE></HEAD> <BODY> <FORM ACTION="../cgi-bin/test.cgi" METHOD="GET">名前 <INPUT TYPE="TEXT" NAME="NAME"><BR> <INPUT TYPE="SUBMIT" VALUE="送信"> </FORM> </BODY> </HTML> ----------index.html---------------- ----------test.cgi------------------ #!/usr/bin/perl $str = $ENV{"QUERY_STRING"}; print << "EOF"; Content-type: text/html <HTML> <HEAD><TITLE>TESTCGI</TITLE></HEAD> <BODY>$str</BODY> </HTML> EOF ----------test.cgi------------------

    • ベストアンサー
    • CGI
  • [件名]前の画面に戻ると「webページの有効期限切れ」になる。

    [件名]前の画面に戻ると「webページの有効期限切れ」になる。 [現象] 下記のような画面遷移をすると、(3)の動作で(2)の画面が表示できず、「webページの有効期限切れ」の画面が表示されてしまいます。 上記現象は、レンタルサーバ利用時に発生し、ローカルでは戻っても問題なく表示でき、値も保てています。 [現象発生時の操作] (1)『データ表示画面』で変更ボタン押下 -> (2)『変更画面』で確認ボタン押下 -> (3)『確認画面』でブラウザの戻るボタン押下 [環境・仕様など] ・(1)から(3)の画面は全てPHPで、データはPOSTでやり取りしています。 ・ブラウザはIE7。 ・セッションは使用していません。 ・ローカルの実行環境はWindows Vista、apache、php.ver5。 ・レンタルサーバは@pagesを利用。 ・(2)の変更画面は、(1)のデータをテキストボックスに出力し、それを変更する画面。 [試した対処方法] session_cache_limiter('private_no_expire') ちなみに、 (1)『データ入力画面』(HTML) -> (2)『確認画面』(PHP)でブラウザの戻るボタン押下 -> (3)『データ入力画面』 の操作を行うと、(1)がHTMLの為か有効期限切れにはならず表示はできるのですが、(1)で入力した値が、(3)で戻って時には消えてしまいます。ローカルで実施すると消えないのですが・・・。 もし、上記現象が仕様であるならば、それを回避する方法をご教授頂けると幸いです。 以上、分かりにくい説明ですが、よろしくお願いします。

    • ベストアンサー
    • PHP
  • 「警告:ページの有効期限切れ」となるのを回避するには?

    ブラウザからファイルのアップロードを行うCGIを作ったのですが、 「警告:ページの有効期限切れ」と表示されます。 どうも<input type=file>でファイルを送信している場合に有効期限切れになるようです。 宜しくお願い致します。

    • ベストアンサー
    • CGI
  • enterについて2

    <form onsubmit="openWin0003( '2','./test.html')";return false;"> <INPUT TYPE="TEXT" NAME="no" SIZE="10" MAXLENGTH="8"> </form> でenterキーを押した時にfunctionを実行することは 成功したのですが、 このときにwindow.openした時に、すでに開かれているブラウザまで読みこんでしまうのですが、これを回避するにはどうすればいいのでしょうか?

  • フォームタグを送信した後に表示されるページ

    フォームタグを送信した後に表示されるページを指定したいのですが、どうすればいいのか分かりません。タグは <form method=POST action="フォームサービスのCGIアドレス"> <input type=hidden name="_mailto" value="私のメアドです"> あなたのお名前<br> <input type="text" name="name"><br> (略) <input type=submit value="送信"> こんな感じです。 よろしくお願いします。

  • 画面の2重起動をチェックする方法について

    画面の2重起動をチェックする方法について PHPかJavaScriptどちらで実現できるかわかりませんが... 【確認】ボタンを押下で【確認画面】を別画面で表示します。 既に【確認画面】が起動されていたら 【既に表示されています】OR【起動されている画面を前面に表示】など できないかなぁと思っています。 このようなご経験がある方、よろしくお願いします。 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta http-equiv="content-style-type" content="text/css"> <title>2重起動チェックテスト</title> <script type="text/javascript"> function kogamen_check() { //**************************************************** //ここで確認画面(kakunin.php)が起動済かチェックできないでしょうか? //**************************************************** } </script> </head> <body> <table align = "center" cellspacing="0"> <form name="form1" action="kakunin.php" method="post" target="_blank" onSubmit="return kogamen_check()"> <tr> <td align="right">項目1</td> <td><input type="text" name="item1" size="10" maxlength="10"><br> </tr> <tr> <td align="right">項目2</td> <td><input type="text" name="item2" size="10" maxlength="10"><br> </tr> <tr> <td><br></td> <td align="center"> <input type="submit" name="kakunin" value="確認"> <input type="button" value="メニューへ" onClick="parent.location = 'menue.php'"> </td> </tr> </form> </table> </body> </html>

専門家に質問してみよう