こんな質問もしていいのかわかりませんが・・

既存のCGIを使わせて頂いてるのですが、
新しく年齢・性別・職業を記入できるように項目を追加してみたところ
一応問題なく動作してるようなのですが、
メッセージを返信しようとするとその新しく項目を増やした3点のみ
クッキー機能が働かずに初期設定に戻ってしまいます・・

スクリプトがどこか間違ってるのでしょうか・・?

A 回答 (2件)

補足読みました。


一応ソースを送っていただければ、問題はないと思いますが、ここの規約で書かれていたURLも削除されています。従ってメールアドレスの公開も規約違反なので、どうしてもという場合は、管理者様にご連絡ください。

ただ、私個人はあまりPerlは書いていないので、あんまり難しいものは少々困りますが・・・
ではでは☆
    • good
    • 0

試して確認したかったのですが、どうもうまくcookieが保存されないようなので、憶測で・・・



ソースをみていないので何ともいえませんが、cookieを書き込むところで、問題の年齢・性別・職業を保存していないのではないでしょうか?

ではでは☆
    • good
    • 0
この回答へのお礼

素早い回答ありがとうございました!

クッキーに関すると思われる場所には全て追加してあるつもりなのですけど・・・
ソースを送ったらわかりますか??

お礼日時:2001/11/09 09:13

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

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

Q既存のデータから、指定項目を抽出し表示させる?

1<>pass<>ip<>名前<>url<>spell<>kana<>initial1<>initial2<>点数<><>日付<>

上記のようなデータが1列づつ保存されているのですが、このデータの中の「名前」と「点数」のみを抽出し、
点数(100点満点)でランキングを10件表示する、というようなスクリプトを探しています。

<table>
<tr>
<td>順位</td>
<td>名前</td>
<td>得点</td>
</tr>
<tr>
<td>1位</td>
<td>あああ</td>
<td>90</td>
</tr>
<tr>
<td>2位</td>
<td>いいい</td>
<td>80</td>
</tr>
<tr>
<td>3位</td>
<td>ううう</td>
<td>70</td>
</tr>
</table>

かなり特殊な為、これだけのスクリプトは無いとは思うのですが、同様のデータをランキングするようなスクリプトがあれば、それを流用したいと考えています

ランキングの表示件数は10件でなくても構いません。
5件以上であれば、問題ありません。
「日付<>」の後には、まだまだ多くのデータが保存されており、全部書く必要がないかな?と思い省略させて頂きました

余分な機能がついていてもかまいません、どなたかこういったデータをランキングするスクリプトをご存じないでしょうか?
また、一から作ってみようかとも思い、いろいろ調べてみたりするのですが、全く筆が進みません

本当は、これだけの処理をするスクリプトがあればいいのでしょうが、かなり特化しすぎていると思いますので、作成の上で参考になるサイト、流用できそうなスクリプトなどありましたらご教授願います。
スクリプトはperlもしくはPHPでお願いします

1<>pass<>ip<>名前<>url<>spell<>kana<>initial1<>initial2<>点数<><>日付<>

上記のようなデータが1列づつ保存されているのですが、このデータの中の「名前」と「点数」のみを抽出し、
点数(100点満点)でランキングを10件表示する、というようなスクリプトを探しています。

<table>
<tr>
<td>順位</td>
<td>名前</td>
<td>得点</td>
</tr>
<tr>
<td>1位</td>
<td>あああ</td>
<td>90</td>
</tr>
<tr>
<td>2位</td>
<td>いいい</td>
<td>80</td>
</tr>
<tr>
<td>3位</td>
<td>ううう</...続きを読む

Aベストアンサー

サンプル:
%data=undef;
while(<DATA>){
@field = split /<>/;
$data{$field[3]}=$field[9];
}
$rank=1;
foreach $name (sort { $data{$b} <=> $data{$a} } keys %data){
print "rank:$rank, 名前:$name, 得点:$data{$name}\n";
last if $rank++ == 10; #10位まで
}
__END__
1<>pass<>ip<>A<>url<>spell<>kana<>initial1<>initial2<>20<><>日付<>
2<>pass<>ip<>B<>url<>spell<>kana<>initial1<>initial2<>53<><>日付<>
3<>pass<>ip<>C<>url<>spell<>kana<>initial1<>initial2<>42<><>日付<>
4<>pass<>ip<>D<>url<>spell<>kana<>initial1<>initial2<>100<><>日付<>
5<>pass<>ip<>E<>url<>spell<>kana<>initial1<>initial2<>80<><>日付<>
6<>pass<>ip<>F<>url<>spell<>kana<>initial1<>initial2<>72<><>日付<>
7<>pass<>ip<>G<>url<>spell<>kana<>initial1<>initial2<>33<><>日付<>
8<>pass<>ip<>H<>url<>spell<>kana<>initial1<>initial2<>11<><>日付<>
9<>pass<>ip<>I<>url<>spell<>kana<>initial1<>initial2<>91<><>日付<>
10<>pass<>ip<>J<>url<>spell<>kana<>initial1<>initial2<>64<><>日付<>

サンプル:
%data=undef;
while(<DATA>){
@field = split /<>/;
$data{$field[3]}=$field[9];
}
$rank=1;
foreach $name (sort { $data{$b} <=> $data{$a} } keys %data){
print "rank:$rank, 名前:$name, 得点:$data{$name}\n";
last if $rank++ == 10; #10位まで
}
__END__
1<>pass<>ip<>A<>url<>spell<>kana<>initial1<>initial2<>20<><>日付<>
2<>pass<>ip<>B<>url<>spell<>kana<>initial1<>initial2<>53<><>日付<>
3<>pass<>ip<>C<>url<>spell<>kana<>initial1<>initial2<>42<><>日付<>
4...続きを読む

QCGIでCGIを呼び出す方法

いつもお世話になっています。

今掲示板のCGI(a.cgi)上に広告をランダムで表示するCGI(b.cgi)を記述しているのですがどうにも正しく表示されず困ってます…

他のCGIを呼び出すにはどのように記述すればいいのでしょうか?

(htmlでいうとSSIで呼び出すように…)

Aベストアンサー

掲示板で表示するなかにscriptタグを使ってcgiを呼び出すのどうでしょう。
現在閲覧中の人をカウントするcgiなどを見てみると
そうしてます。(閲覧中でも定期的に内容を書き換えてるので
広告を表示するのにも適してるのではないかと)

QCGIから別のCGIに飛ぶとき別のウインドウを開きたいのですが

 CGIで条件を入力すると、別のCGIに飛んでその条件に合致したデータをファイルから探してきて表示させるというプログラムを作っていますが、このときに元の条件入力画面を残したまま別ウインドウで検索結果を表示させたいのですがどうすれば良いのでしょうか?よろしくお願いします。

  

Aベストアンサー

普通に「target="_blank"」で開けばいいのではないでしょうか?
または、JAVAで小窓を開くとか…

Aベストアンサー

>画像ヘッダとはどういうものでしょうか?

Content-type: image/gif
Content-type: image/png
Content-type: image/jpeg

など、画像タイプごとに決まっています。
<img>タグに普通の画像ファイルが指定されている場合は
Webサーバが画像ファイルの拡張子から判断して返してくれ
ますが、CGIから返されるデータの種類は拡張子からは判断
できないのでCGI内部からヘッダを返す必要があります。


●CGIがPerlの場合で、GIF画像をCGIから返す例
#!/path/to/perl
print "Content-type: image/gif\n\n";
open(GIF, "file.gif");
binmode(GIF); binmode(STDOUT);
print <GIF>; close(GIF);

もちろん、CGIからは画像フォーマットを返せばいいので、
ファイルから読まずにあらかじめCGIソース内に画像データ
を持っておいて出力する方法も可能です。


ちなみに、多くのCGIではHTMLコンテンツを返す場合が多い
ので、ヘッダは以下のようになります。

print "Content-type: text/html\n\n";

>画像ヘッダとはどういうものでしょうか?

Content-type: image/gif
Content-type: image/png
Content-type: image/jpeg

など、画像タイプごとに決まっています。
<img>タグに普通の画像ファイルが指定されている場合は
Webサーバが画像ファイルの拡張子から判断して返してくれ
ますが、CGIから返されるデータの種類は拡張子からは判断
できないのでCGI内部からヘッダを返す必要があります。


●CGIがPerlの場合で、GIF画像をCGIから返す例
#!/path/to/perl
print "Content-type: image/gif\n\n...
続きを読む

QCGIへのアクセスが集中した場合にアクセスを一時的に制限したり、エラーメッセージを表示したり、予備のCGIに飛ばす方法。

CGIへのアクセスが集中した場合に、メッセージを表示し、アクセスを制限するサイトなどを目にしますが、どのようにして実現しているのでしょうか。例えば、flockなどの排他処理によって、一定時間内は1ユーザーからのアクセスしか受け付けないといった処理は可能かと思いますが、3ユーザーまでのアクセスのみ受け付けるといった方法はあるのでしょうか。

また、サーバダウンなどにより、CGIが動作しない場合に、エラーメッセージを表示したり、予備のCGIに飛ばす方法はありますでしょうか。
例えば、Aサーバのmain.cgiを動作させたい場合に、まずBサーバのpre.cgiにとばし、Bサーバのpre.cgiからAサーバのmain.cgiへのアクセスを試み、Aサーバがダウンしている為にアクセスに失敗した場合に、Bサーバ内のerroor.htmやsub.cgiに飛ばすことなどはできるのでしょうか。

できれば、CGI(perl)で実現したいのですが、有効な方法がございましたら、恐れ入りますが、教えていただけないでしょうか。もしも可能でしたら、簡単なサンプルのスクリプト等を添えていただけると大変助かります。何卒よろしくお願いいたします。

CGIへのアクセスが集中した場合に、メッセージを表示し、アクセスを制限するサイトなどを目にしますが、どのようにして実現しているのでしょうか。例えば、flockなどの排他処理によって、一定時間内は1ユーザーからのアクセスしか受け付けないといった処理は可能かと思いますが、3ユーザーまでのアクセスのみ受け付けるといった方法はあるのでしょうか。

また、サーバダウンなどにより、CGIが動作しない場合に、エラーメッセージを表示したり、予備のCGIに飛ばす方法はありますでしょうか。
例えば、Aサー...続きを読む

Aベストアンサー

>、FastCGIやmod_perlというのはどのようなものでしょうか。

Googleあたりで調べれば、かなりヒットするので、まずは調べてみて下さい。。。
↓本家
http://www.fastcgi.com/
http://perl.apache.org/

WWWサーバに組み込む形になるので、独自サーバじゃないと使えませんけど。
レンタルサーバの中には、使えるところもあるらしいですよ。

>大変申し訳ございませんが、参考URLやサンプルなどご存知ないでしょうか

ないと思います。(^^;
というか、Aサーバ上に常駐(Unixならcronか)させたプログラムに、定期的にBサーバに通知させようと考えたわけですが、サンプルのようなものはどこかにあるのかもしれませんけど、見つけるのは大変でしょう。

いずれにしても、BサーバのCGIでAサーバの状態を取得し、その後AサーバのCGIを呼び出すのだとすると、今度はBサーバの負荷が高くなります。
負荷を軽減したり、サーバダウンした場合の対処方法として色々講じようとするのも良いのですが、あまり色々考えすぎると、返って別の部分で負荷が高くなったり、広げすぎて収拾がつかなくなったりするものです。
個々のCGIの処理を軽くするようにするなど、CGI側の工夫で回避できる部分は多いので、そちらがまず先かと思います。(余分な処理をさせない、より速いアルゴリズムを選ぶ、2度の処理に分けられるなら2つのCGIに分け2ステップで処理するetc)

>、FastCGIやmod_perlというのはどのようなものでしょうか。

Googleあたりで調べれば、かなりヒットするので、まずは調べてみて下さい。。。
↓本家
http://www.fastcgi.com/
http://perl.apache.org/

WWWサーバに組み込む形になるので、独自サーバじゃないと使えませんけど。
レンタルサーバの中には、使えるところもあるらしいですよ。

>大変申し訳ございませんが、参考URLやサンプルなどご存知ないでしょうか

ないと思います。(^^;
というか、Aサーバ上に常駐(Unixならcronか)させたプログラ...続きを読む


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

おすすめ情報