• ベストアンサー

カウントで。

投票のようなCGIを作っています。 1.1票 [投票ボタン] 2.3票 [投票ボタン] のような感じです。 たとえば、1.の投票ボタンを押すと、2票になるのですが、投票後に、そのページを読み込み直すともう1票追加してしまいます。 <HEAD>内にno-cashは設定しているのですが、ページを読み込み直しても、投票しないようにはどうすればいいですか。 説明が下手で申し訳ありませんが、よろしくお願いします。

  • CGI
  • 回答数1
  • ありがとう数1

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

  • ベストアンサー
  • the845t
  • ベストアンサー率33% (246/743)
回答No.1

投稿後ページを移動させるとか、 同じ投稿者からの投稿を受け付けないようにするとか。 Perlだとして、 print "Location: $file\n\n"; をhead(HTMLの<head>ではなく)に。

nananana777
質問者

お礼

ページを移動させたくなかったのですが、更新中というページに移動させ、また投稿ページに自動で戻るようにしてみました。 Locationは気がつきませんでした。これからそれでやってみたいと思います。 わかりやすい回答ありがとうございました。

関連するQ&A

  • ブラウザの戻るができないようにしたい

    ページ内はHTMLファイルですが、そのページのiframe内にperlで動的ページを表示させています。 クリック自体はifream内の動的ページですが、ページのキャッシュが残っているらしく、ブラウザの戻るが有効になります。 戻るができないようにしたいのですが何か良い方法はありますか? 以下、効果はありませんでした。 ファイル1 test.html <html> <head> <title>HTML</title> <meta http-equiv="Pragma" content="no-cache"> <meta http-equiv="Cache-Control" content="no-cache"> <meta http-equiv="Expires" content="Fri, 31 Dec 2004 23:59:59 GMT"> </head> <body> <ifream src="test.cgi"></ifream> </body> </html> ファイル2 test.cgi print "Content-type: text/html\n"; print "Pragma: no-cache\n"; print "Cache-Control: no-cache\n"; print "Expires: Thu, 01 Dec 1994 16:00:00 GMT\n\n"; print <<EOT; <html> <head> <title>CGI</title> <meta http-equiv="Pragma" content="no-cache"> <meta http-equiv="Cache-Control" content="no-cache"> <meta http-equiv="Expires" content="Fri, 31 Dec 2004 23:59:59 GMT"> </head> <body> <a href="test.cgi">sample</a> </body> </html> EOT exit;

    • ベストアンサー
    • Perl
  • CGIについて、観念的なことをお教え頂きたいです。

    ワンクリック投票のページを作りたいと思い、 本を購入して、CGIを少し勉強しています。 (プログラミングに関してまったく無知です) ですが、実際、自分の意図したようなことをする為にどうしたらよいのか今だ、サッパリわかりません。 意図することとは、以下のようなことなのですが、 具体的な方法ではなくてよいので、観念的なことをお教えいただけないでしょうか? 商品の一覧ページがあり、 商品名:それまでの得票数:「投票する」ボタン と並び、クリックで投票すると、一旦確認画面(この商品に投票しますか?)になり、OKボタンクリックで、一覧ページの投票数が一票増える。順位は高い順に上から並んでいく。 といった内容なのですが。 例えば、その表示されるCGIのページのHTML的な記述は全て、CGIから書くのでしょうか? 最初にHTMLを書いてから、何らかの形でCGIに直すとかできないのでしょうか? おおまかな流れが掴めれば、これからの理解も違ったものになるかと思いました。 どうかどうか、何卒よろしくお願いいたします。

    • ベストアンサー
    • CGI
  • html埋め込みvote機能、票数だけ表示

    個人ページに設置したいとおもったのですが、アンケート形式が多く、あっても票数だけを表示するようなものがなかなかみつかりません。 私には、ちょっと作れないものなので、甘ったれたことを言います、誰か作ってください・・・! 投票ですが、アンケートではありません、ちょっと扱いは違いますが『へぇ~ボタン』の押された回数を閲覧者全員で共有するようなイメージです。いや、拍手数かな? 設置: ・専用のページを作るのではなく、既存のhtmlに埋め込む形で使用します。(カウンターのような感じで) ・シンプルに投票された数字だけを表示します。 ・同一ページに複数の投票があります。 ・ラジオボタンで投票先を選ぶものではなく、ただただ投票ボタンを押すだけでカウントされます ・ 投票: ・オンマウスクリックイベントでCGIにオーダーが行って対応する投票にカウント+1される感じでできますでしょうか?。 ・投票ごとの識別(idとかCGIに渡す際のパラメータとか識別方法はよくわからないですが)  見本を参考に投票送信ボタンを自分で作りますのでcgiで出力されなくても(多分)大丈夫(htmlかJavascript) ・二重投票防止はいりません。 気になる: ・おそらく、ページ自体を更新しなければ投票された数は押した瞬間に増えないですよね?それとも普通に増えますか? 備考: ・html、css、と簡単なJavascriptなら書けます。 ・配布CGIのBBS等も設置できます(説明に従ったUPと属性の設定) ・Perlを学習しようとは今現在思っていません。 ・でも、ちょこちょこいじるぐらいには覚えるかもしれません。 -------------------------------------------------- コンテンツ ほにゃらら希望ボタン[id1] 票数表示[id1] コンテンツ コンテンツ へぇボタン[id2] 票数表示[id2] コンテンツ へぇボタン[id3] 票数表示[id3] --------------------- のようなイメージです。識別はidでするのかそれとも別にパラメーターがあるのかな? とにかく、htmlにCGIで描画(埋め込み?)したいのは対応したid(id?)の票数のみです なんとなく無茶いっているような気がします。よろしくお願いします。 それから、もしよかったらどこかにアップロードしていただけるとかなり嬉しいです。 何年でも待ちます(?)。馬鹿なこといってんじゃねー!っていうのもOKです。 意味不明なことをいっていたらごめんなさい、補足しますので質問ください。 素敵プログラマーが現れることを祈って・・・

  • MACのsafariでCGIを動作した場合、リロードボタンを押さないと更新されません。教えて下さい。

    MACのsafariでCGIを動作した場合、リロードボタンを押さないと更新されません。教えて下さい。 今perlを使ってスケジュール管理を作っていますが、IEでは、ちゃんと動作します。HTMLに <HEAD> <meta http-equiv="Pragma" content="no-cache"> <meta http-equiv="Cache-Control" content="no-cache"> <meta http-equiv="Expires" content="0"> </HEAD> と記述し、キャッシュを無効にしてみたのですが、 どうしてもsafariだと新規でスケジュールを入力したものがカレンダーに反映されません。 これは、HTML記述では、キャッシュを無効に できないのでしょうか? 教えて下さい。

    • ベストアンサー
    • Perl
  • Cookieを用いてのセッション管理

    以前も問い合わせさせていただいた件なのですが、 未だ解決していないので、再掲させていただきます。 やりたいことは、 個人認証のページを作り、ログオフ後、ブラウザの戻るボタンを押しても、 ログイン中となるのを避けたい。 以下のような感じで、cookieを使って実現しようとしているのですが、 ログオフ時にcookieの削除は、うまくいったのですが、 ブラウザの戻るボタンでログイン中のページに戻ると、 $ENV{'HTTP_COOKIE'}の中身を見ると、実際にはCookieは削除されているにも関わらず、 Cookieの情報がよみこまれているため、ログイン中となってしまいます。 何か基本的なやり方を間違っているような気がします。 どなたかご教授願います。 ↓a1.cgi(ログイン画面)--------------  : (ID、パスワード認証後) #Cookie書き込み print "Content-type: text/html\n"; print "Set-Cookie: NAME=aaa; expires=Tue, 1-Jan-2030 00:00:00 GMT;\n"; print "\n";  : ↑a1.cgi(ログイン画面)-------------- ↓a2.cgi(ログイン中)--------------  : #Cookie読み込み $cookie01 = "$ENV{'HTTP_COOKIE'}\n";  : <HEAD> <!-- キャッシュクリア --> <meta http-equiv="Pragma" content="no-cache"> <meta http-equiv="Cache-Control" content="no-cache"> <meta http-equiv="Expires" content="Thu, 01 Dec 1994 16:00:00 GMT">  : </HEAD>  : ↑a2.cgi(ログイン中)-------------- ↓a3.cgi(ログオフ)--------------  : #cookie削除。 print "Content-type: text/html\n"; print "Set-Cookie: NAME=aaa; expires=Fri, 31-Dec-1999 23:59:59 GMT;\n"; print "\n";  : </HEAD>  : ↑a3.cgi(ログオフ)-------------- ※a1.cgi、a2.cgi、a3.cgiは同じディレクトリです。 よろしくお願いします。

    • ベストアンサー
    • Perl
  • Jqueryのキャッシュについて

    JqueryからCGIを呼び出して、DBと接続し、その戻り値をHTMLページに反映しています。 処理をして、ブラウザを再起動すると処理されたデータで表示されるのですが、ブラウザを再起動しないと、処理する前のデータが表示されます。ページをリロードしても同じです。 下記のようにCGIを呼び出してDBと接続をしているのですが、 キャッシュがあると良くないと言うことが書いてあったので、 cache: false, を追加したり、 $.ajax({ type: 'GET', url: '~.cgi', cache: false, //←追加 data: ''', success: function(result){ if (result != ''){ 処理をする } } $.ajaxSetup({ cache: false }); ↑を追加してみたりしたのですが、これらの部分からあとのプログラムが動きません。 (エラーになっている?ような感じです) これらを削除してプログラムを動かすと、キャッシュが残っているような結果が帰ってきます。 要するに、DBの値を修正、削除をして、その後のデータを表示したいのですが、 削除後、修正後のデータが表示されません。 ブラウザを再起動すると、修正、削除されている状態で表示されます。 ブラウザを再起動しなくても処理をした後の結果がHTMLページに表示されるようにしたいです。 わかりにくい説明で申し訳ございませんが、ご不明な点はお聞き下さい。 どなたかおわかりになる方がいらっしゃいましたら教えて下さい。 よろしくお願いいたします。

    • ベストアンサー
    • AJAX
  • 戻るボタンで、ログイン中を維持させない。

    戻るボタンで、ログイン中を維持させない。 お世話になっております。 perlで、ログイン(ID、パスワード)するページを作り、 データ入力が終わるとログアウトさせる画面を作っているのですが、 ログアウト(コマンドボタンをクリックしトップページに戻る)したあと、 ブラウザの「戻る」ボタンで戻ると、また、ログイン中になります。 これを、他のサイトでもよく見る「ページの有効期限切れ」にしたいのです。 この種の解決方法は、検索するといろいろ出ていたのですが、 主に、jspで、 response.setHeader("Pragma","no-cache"); response.setHeader("Cache-Control","no-cache"); response.setDateHeader("Expires",0); などで、「httpヘッダやmetaタグでクライアントにキャッシュをさせない」ようにする方法が 一般的なようですが、jspはよくわからなかったので、 perl(.cgi)だけで実現する方法はないのでしょうか。 ソースは、簡単に書くと以下の通りです。(データ入力部は省略) ↓login.cgi------------------------------  : <form name="frm1" action="logout.cgi" method="post"> ID:<INPUT name="usrid" TYPE="text"> パスワード:<INPUT name="pwd" TYPE="password"> </form>  : ↑login.cgi------------------------------ ↓logout.cgi------------------------------  : <form name="frm1" action="top_page.cgi" method="post"> <input type="button" onClick="submit();" value="ログアウト"> </form>  : ↑logout.cgi------------------------------ 行き詰っております。 どなたかご助言賜れませんでしょうか。 よろしくお願いします。

    • ベストアンサー
    • Perl
  • メールフォームとかで確認画面から書き直すのに戻ると

    メールフォームとかで確認画面から書き直すのに戻ると 書いた文章が全部消えるとか聞きましたが、戻っても消えません。 確か、前にどこかのフォームでFIREFOXで書いて戻ったら消えちゃった事があって・・・ 何が正しいのでしょうか? HTMLにformでCGIに送る仕様です。 いえ、残ってくれた方が良いと思うのですが、 消えるか消えないか試してみただけですが。 <meta http-equiv="Pragma" content="no-cache"> <meta http-equiv="Cache-Control" content="no-cache"> ブラウザの上の戻るボタンでも、ジャバスクリプトのボタンで戻っても消えません。

    • ベストアンサー
    • HTML
  • 簡易アンケート

    アンケートのCGIを探しています。 具体的に言うと、ラジオボタンで項目の中から1つだけを選んで投票するもので、コメントや投票者の名前を書く所は無くても良いです。 それから、アンケートを設置したいページ内にHTMLのフォームのタグを加えて使う、というものが良いんです。そういうものも幾つか見つけたのですが、処理の中にJavaScriptを使っている部分があるものばかりでした。JavaScriptがOffの状態でも使えるものが良いんです。Iframeでページ内にアンケートを組み込むという方法は嫌です。それもブラウザにより、見えないことがあるからです。 わがままですみませんが、それから分かりにくい文章で申し訳ありませんが、どうかご存知の方がいらっしゃったら教えて下さい。宜しくお願いします。

    • 締切済み
    • CGI
  • 1人1回投票できる投票システムの作り方

    表題の通り、ホームページ上で投票できるシステム(PHPかCGI)を作りたいと思っています。 PHPとCGIの知識は、すでにあるものを少しだけいじれる程度なのですが 配布されているフリーのものを探して、ちょうどいいものがなく、 この機会に是非チャレンジしたいので、ご助言をお願いします。 内容的には、写真がずらっと並んだギャラリーページから、 ユーザーが一番気に入った写真を1つだけ選んで投票できるというものです。 下記のような機能をつけたいです。 ■第一回人気投票、第二回人気投票…と、開催ごとに1回しか投票できない。  (第一回で投票した人でも、第二回が開催されたときは投票できる) ■1回投票したら、他の写真には投票できない ■ユーザーはどの写真に何票入っているかみれない ■管理者はどの写真に何票入っているか見れる ■データーベースが必要なら用意できます なにから手をつけていいのかわからない状態なのですが、 ご助言お願い致します。

    • ベストアンサー
    • CGI