• 締切済み

CGI利用者の区別について。

Perlで現在アンケートのCGIを作っています。 答えを選択するアンケートページは、 enq01.htm~enk20.htmまであります。 解答は、5つのチェックボックス形式 フォームからCGIへ選択した値(answer1~5)を answer.txtへ書き込むというものです。 ですが、複数人が同時にCGIへアクセスが行われた場合、 answer.txtに、 enq01.htm answer1 enq01.htm answer1 enq02.htm answer1 enq02.htm answer1 enq03.htm answer1 のようになってしまい、区別ができず、困ってしまいました。 アクセスした人を区別して、 enq01.htm answer1 userA enq01.htm answer1 userB enq02.htm answer1 userA enq02.htm answer1 userB enq03.htm answer1 userB のようにしたいのですが、アクセスしてきた人を判別できますでしょうか?

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

みんなの回答

noname#137556
noname#137556
回答No.3

セッション管理そのものの説明は,こっちのほうが解かりやすそう。 http://php.xenophy.com/session/index.html

noname#137556
noname#137556
回答No.2

「セッション管理」で調べてみてください。 ↓サンプルもあって解かりやすそうです。 http://www.dab.hi-ho.ne.jp/sasa/biboroku/perl/session.html

  • LancerVII
  • ベストアンサー率51% (1060/2054)
回答No.1

こんにちは。 ユーザ管理されているのであればUserAとかの名称で可能だと思いますが、特にしていない場合は完全に特定のユーザを区別するのは困難かと思います。 一意のユーザ名を管理できるシステムにする。 一時的にユーザ名を入力させる。(最初のページ等で) 完全な管理は出来ないがIPアドレスやクッキーを利用して管理する。(特定できる名称を勝手に作る) といったことが考えられます。

ok_coffee
質問者

お礼

さっそくのご回答ありがとうございます。 現在のシステム上、ユーザ管理を施してないので、 そのIPアドレスやクッキーを利用しての管理として、特定できる名称を勝手に作るというものになると思いますが、 どのようにしたらよいのでしょうか? IPアドレスの場合やCookieの場合は、 どのような特定範囲になるのでしょうか? 同じ施設の違う端末から別人が解答したものを区別できればベストです。 質問ばかりですいません。

関連するQ&A

  • javaを使用したアンケートで他のページに引数を渡す

    複数のテーマの内容に対し、同じ形式のフォームで感想を送ってもらうページを作成しています。 それぞれのテーマに対して、enq.htmへリンクボタンを作成しホームページビルダー V9に入ってるjavaのアンケートフォームで感想を送ってもらうようにしてみました。 つまり  「テーマA」=>テーマAのアンケートフォームenqa.htm  「テーマB」=>テーマBのアンケートフォームenqb.htm  「テーマC」=>テーマDのアンケートフォームenqc.htm  「テーマD」=>テーマDのアンケートフォームenqd.htm これを リンクの引数で  enq.htm?theme=テーマA  enq.htm?theme=テーマB  enq.htm?theme=テーマC  enq.htm?theme=テーマD として アンケートに渡してメールフォームに書き込んで手間をかけずに、どのテーマから呼ばれたか判るようにしたいのです。  なんとか出来ないのでしょうか?

    • ベストアンサー
    • HTML
  • アンケートCGI作成について、form actionの呼びだし等につい

    アンケートCGI作成について、form actionの呼びだし等について質問です。 初めまして、CGIアンケートを作成しようとしているPerl初心者です。 説明ページ(ex01.html) ↓ フォーム付きアンケートページ(enk01.html) ↓ 説明ページ(ex02.html) ↓ 以下略 という流れでアンケートを続かせたいのですが (だいたい、ex.htmlとenk.htmlが各20ずつくらいです。) フォーム付きアンケートのフォーム <form action="form.cgi" method="post"> <input type="radio" name="Emotion_Body" value="0" checked> 選択肢1 <input type="radio" name="Emotion_Body" value="1"> 選択肢2 <input type="radio" name="Emotion_Body" value="2"> 選択肢3 <input type="submit" value="次のアンケート"> となっていて、actionに次のページのhtmlをいれ込むことができませんでした。 (form.cgi:formから受け取ったデータを外部ファイルへ書きだすCGIファイルです。) フォームの「次のアンケートボタン」を押すと、 form.cgiにフォームのデータを送りつつ、ex02.htmlを表示させるということはできないものでしょうか? 過去ログによるCGIに表示させる方法を書くのだと、 フォームページの間に、ただのhtmlファイルを挟むので、 (例:enk01.html→ex02.html→enk02.html→…) 各ページに対応したCGIファイルを書かなければならないということなのでしょうか? よろしくお願いいたいします。

    • ベストアンサー
    • Perl
  • こういうのってCGIでできるんですか?

    よくホームページ上のフォームで入力したデータがそのホームページ上に反映されるものがありますが、こういうのってCGIでやるんでしょうか? さらに踏み込んだものになると、家庭教師サイトなどでは検索条件を入れることでそれにあったデータのみが呼び出されたりしますが、これもCGIで可能でしょうか? もしできるなら、何かよい参考文献、フリーCGI等ありましたら教えてください。 ちなみにPerlの知識はまったくありません。 よろしくお願いします。 例:http://kyujin.yuntaku.com/index.htm   http://www.ka-net.com/cgi-bin/apply-pc/app-02.cgi?1

    • ベストアンサー
    • CGI
  • cgiからcgiを呼び出す方法

    perlのcgi製作を始めて7日目の素人で恐縮ですが、教えてください。 タイトルのキーワードで検索し、いろいろ試しておりますがうまく動作しません。 ■試した例 exec("./cgi A.cgi") <!--#exec cgi="./cgi A.cgi"--> もともと単体で動作していたcgi Aに対して新たにcgi Bを作成し、 cgi Bからcgi Aを呼び出したいのですが、うまくいきません。  cgi A:アンケート回答フォームのようなもの  cgi B:認証フォーム(コードを入力してDB内のデータと一致したらcgi Aを呼び出したい) 自分のPCにApacheをインストールし、ローカルで実行しております。 cgi Bはcgi Aを呼び出す部分をコメントアウトすれば動作します。 どなたか良きアドバイスをよろしくお願いします。

    • ベストアンサー
    • CGI
  • 中国語のためのアンケートフォームCGIを作りたい

    perlを使って中国語のアンケートフォームCGIを作ろうと思っています。 日本語のアンケートフォームを作る場合には、 クライアントから送られてきたデータをCGIでうけとり、 jcode.plを使い、文字コードがSHIFT-JIS,EUC-JP,JISのうち どれで送られてきているか判別し、任意の文字コードに変換し、 データベースに保存するなり、メールを送るなりすることができます。 中国語用のアンケートフォームCGIを作る場合にも、 文字コードの変換が必要になるのかどうかが問題です。 まず中国語には何種類の文字コードがあるのか? 簡体字中国語に限って言えば、「GB2312」 しか存在しないのでしょうか? もしそれ以外のものが存在するとすれば、 jcode.plならぬccode.plのようなものが必要になるはずです。 そういうものが存在するとすれば、どこで手に入れられるか お教えいただければありがたいです。 また「big5」というのは別言語と考えていいのでしょうか。 一般的に中国では「GB2312」と「big5」はどのように使い分けられているのでしょうか。

    • 締切済み
    • CGI
  • フリーCGI提供サイトを押してください

    こんにちは。KENT WEB様のようなCGIを配布しているサイトを教えてください。初心者ですのでなるべく説明が丁寧なサイトがいいです。掲示板やアクセスカウンタ、アクセス解析、投票システム、アンケートフォームなどのCGIがあれば嬉しいです。 よろしくお願いします。

  • CGIでtxtが読み取れません…

    --------------frame.cgi----------------------- #!/usr/bin/perl # フォームからのデータを読み込む $ID1 = '12345'; $path = 'http://xxx.xxx/cgi-bin/atc/user/'; $txt = '.txt'; $FileName = $path.$ID1.$txt; print "Content-type: text/html\n"; print "\n"; if (-f $FileName){ print <<"DISP_SET"; <HTML> <frameset rows="80,*" cols="*" framespacing="1"" frameborder="yes" border="1" bordercolor="#000000"> <frame src="input.cgi?$ID1" name="top" scrolling="no" noresize> <frame src="http://xxx.xxx/nodata.htm" name="mainF"> </frameset> </HTML> DISP_SET } else{ print <<"DISP_SET"; <HTML> <BR> 指定された$ID1はありません。<BR> 新規発行をするか、IDの確認をしてください。<BR> <BR><BR> <a href="javascript:history.back();">一つ前のページへ戻る</a> </HTML> DISP_SET } exit; ----------------------------------------- サーバの中身を引越ししようと有料のサーバにうつしたのものです。 このようになっているのですが、txtファイルが読めていないらしく、エラーメッセージの方が出てしまいます。 ちゃんと12345.txtというのは存在します。 フォルダのパス名とかは修正し大丈夫だと思うのですが、読み取れません… http://xxx.xxx/cgi-bin/atc/input.cgi?12345 読み取れる http://xxx.xxx/cgi-bin/atc/frame.cgi?12345 読み取れない なので、txtデータを読み取れていないと思いました。 原因、修正個所、追加補足などありましたら、よろしくお願いします。

    • ベストアンサー
    • CGI
  • フォームでCGIにとばした処理結果を。。

    はじめまして。 JavaScriptもHTMLもCGIもほとんど初心者です。 現在フリーのCGI(Perl:アンケートフォーム)を使用しようとしてるのですが、HTMLファイルのformにあるactionで CGIにとばして、その結果を(JavaScriptで開いた?)新しいウィンドウに表示したいのですが、可能でしょうか? さらに、出来ればその結果が表示される新しいウィンドウにはメニューバーやスクロールバーをなくして、「閉じる」というボタンをつけて閉じるようにしたいのですが、それも可能でしょうか? 何卒よろしくお願いします。 =====

  • open関数のファイル操作について

    プログラミング経験ゼロで、CGI及びPerlを勉強しだした者です。 初歩的な質問で恐縮ですが、おわかりになる方ご教授願えますか。 open (ANSWER, ">>data.txt"); print ANSWER "$jikan,$data?n"; close (ANSWER); open関数の箇所を上の様に書いたのですが、自動生成されるはずのdata.txtファイルが見当たりません(CGI-Executablesフォルダ内) ではということで、data.txtファイルを作ってCGI-Executablesフォルダ内に置いてみたのですが、そちらにも書込みされませんでした。 ブラウザではフォーム入力の次に用意した「出力完了」のページに切り替わるのですが、やはり出力はされていないということでしょうか。 どのように修正すれば良いのか困ってます。よろしくお願いします。

    • ベストアンサー
    • Mac
  • レンタルCGIとは

    ホームページを作成するのにアンケートや投票コーナーを作りたい為 CGIを設置しようと思いました。 しかし、自宅のプロバイダ(フレッツ光)では、決められたCGI (メールフォーム、アクセスカウンタ等小数)しか使用できないと 書かれていました。 しかしどこかで読んだのですが、プロバイダに設置不可と書かれて いてもレンタルCGIなら使用してもOKなのでしょうか? それから、レンタルCGIの設置方法は、通常のCGIの設置方法 と同じなのでしょうか? 回答をよろしくお願いいたします。