
cookieを書込んだ直後、書込めたか(cookieをオフにしていたり、cookieを書込めない携帯端末からのアクセスかもしれないので)確認をしようと、cookieを読込もうとしたのですが、cookieが書込まれているにもかかわらず情報を取得することができません
実験環境として、htmlファイルにボタンを作って、cgiへ飛び、そのcgi内でcookieを書込み、cookieが書込めたかどうかで分岐して、表示するようにしています
(cgiを一度実行したあと一旦ブラウザで前のhtmlファイルに戻って)cookieが既に書込まれた状態で、改めてhtmlファイルのボタンを押せばcookieは読込めますが、最初にcookieを書込んだ時に同じcgi内で即読込みを行ったら読込めません
書込が完結する前に読込みに行っているから読込めないのかとも思い、読込み前にタイムラグを作っても見ましたがやはり読込めません
どうすれば書込み直後に読み込めるのでしょうか?
色々ネットで調べても見ましたが、いっこうに解決策が見つかりません
ご存じの方ぜひご教授下さい
よろしくお願いします
なお、下にperlのコードを書いておきます
#クッキーを書込
$test{sid} = "12345";
&set_cookie($test{sid});
#タイムラグ
use Time::HiRes;
Time::HiRes::sleep(0.8);
#クッキーを読込
($cookie{test}) = &get_cookie;
if(!$cookie{test}){ print "読み込めてない"; }
else{ print "読み込めた"; }
######→読み込めません#####
#クッキー書込sub
sub set_cookie {
local(@cook) = @_;
local($gmt, $cook, @t, @m, @w);
@t = gmtime(time + 2*60*60);
@m = ('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec');
@w = ('Sun','Mon','Tue','Wed','Thu','Fri','Sat');
$gmt = sprintf("%s, %02d-%s-%04d %02d:%02d:%02d GMT", $w[$t[6]], $t[3], $m[$t[4]], $t[5]+1900, $t[2], $t[1], $t[0]);
foreach (@cook) { s/(\W)/sprintf("%%%02X", unpack("C", $1))/eg; $cook .= "$_<>"; }
print "Set-Cookie: SID=$cook; expires=$gmt; path=/;\n";
}
#クッキー読込sub
sub get_cookie {
local($key, $val, *cook);
$cook = $ENV{'HTTP_COOKIE'};
foreach ( split(/;/, $cook) ) { ($key, $val) = split(/=/); $key =~ s/\s//g; $cook{$key} = $val; }
foreach ( split(/<>/, $cook{'SID'}) ) { s/%([0-9A-Fa-f][0-9A-Fa-f])/pack("C", hex($1))/eg;
push(@cook,$_); }
return (@cook);
}
No.3ベストアンサー
- 回答日時:
cookieをprintしたあとにスリープして待ってるでしょ。
ブラウザはHTTPリクエストを投げるとき、以下のような文字列を投げる。ようするに、「開いた」ときにcookieを投げる
POST /xxxx.cgi HTTP/1.1
Cookie: hoge="fuga";
...
ダイナミックにセット/ゲットしたけりゃ、javascriptでcookie読み書きして、AjaxでCGIと通信するしかない。
ありがとうございます
> 「開いた」ときにcookieを投げる
ですか。
> AjaxでCGIと通信するしかない
ブラウザで完結する方法はないみたいですね。
このcgiではなく他のアプローチを探してみます
No.2
- 回答日時:
ていうか、cookieはページを「開いた」ときにブラウザが投げるものだし。
CGIでprintしたあと、いくらスリープしても、そりゃとれない>CGIでprintしたあと、いくらスリープしても
スリープはprint前ですが。
>cookieはページを「開いた」ときにブラウザが投げるもの
ということは、cgiでcookieを書込み、その後にブラウザをリロードやページ移動なしに一連のプログラムの中でcookieを取ろうとしてもできないということなのでしょうか?
もしそうであれば、cookieが書き込めたか同一のプログラム内でチェックする方法はないのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP phpでcookieがうまく保存されない 2 2023/08/02 16:40
- その他(ソフトウェア) ロイロノート(アプリ版)のログインができません。 2 2022/09/04 21:07
- Google Drive Google Earth PRO が 次のメツセージが出て開けません 2 2022/10/08 18:46
- SSL・HTTPS 掲示板サイトへの書き込みができない件(ブラウザソフトを変えてもできない) 2 2022/11/20 10:48
- Chrome(クローム) google earth PROをクリックすると下記の表示がされPROが開きません 2 2022/07/28 10:25
- その他(コンピューター・テクノロジー) パソコンが重たいので、PC版エッジの全期間キャッシュ(閲覧履歴、DL履歴、Cookieと他サイトデー 2 2023/05/02 07:25
- PHP PHPで訪問回数を表示するカウンタを作成したい 3 2023/05/27 07:09
- Chrome(クローム) Cookieを削除 他サイトでの自動ログインなどの設定も削除されますか パソコン クロームです 1 2022/09/10 21:47
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- YouTube ChromeブラウザでYouTubeの表示がおかしくなる 1 2022/07/21 14:44
関連するカテゴリからQ&Aを探す
今、見られている記事はコレ!
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
-
なぜ批判コメントをするの?その心理と向き合い方をカウンセラーにきいた!
今や生活に必要不可欠となったインターネット。手軽に情報を得られるだけでなく、ネットを介したコミュニケーションも一般的となった。それと同時に顕在化しているのが、他者に対する辛らつな意見だ。ネットニュース...
-
大麻の使用罪がなかった理由や法改正での変更点、他国との違いを弁護士が解説
ドイツで2024年4月に大麻が合法化され、その2ヶ月後にサッカーEURO2024が行われた。その際、ドイツ警察は大会運営における治安維持の一つの方針として「アルコールを飲んでいるグループと、大麻を吸っているグループ...
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テキストファイルで提出とは?
-
ターミナルで特定の文字と文字...
-
openした後、closeしないでプロ...
-
perlのsplitでいきなりすぐに配...
-
Perlでの文字列置換
-
ファイルをディレクトリ分配の...
-
perl の open について教えてく...
-
Perl言語について。
-
アルファベットに付いて質問し...
-
#!/usr/bin/perlで書きだしたCG...
-
Perlのエラーについてご教授く...
-
perlのflock関数でロックをかけ...
-
AI sisterとは、偽物の人ですか?
-
bashスクリプト
-
ファイルアイコンの左下に緑の□...
-
perlプログラミング 空白行削除
-
perlでリテラル値はメモリにど...
-
perlで2次元配列をサブルーチ...
-
Perlで時間の計算
-
perlについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
テキストファイルで提出とは?
-
openした後、closeしないでプロ...
-
Perlのエラーについてご教授く...
-
INDIRECT 横に再度抽出したい
-
bashスクリプト
-
perlをバージョンアップしたら...
-
perlプログラミング 空白行削除
-
Wallpaper Engineでおすすめの...
-
perlのflock関数でロックをかけ...
-
Strawberry Perl for Windows ...
-
フローチャート 九九
-
perlについての質問
-
ターミナルで特定の文字と文字...
-
LinuxにおいてのPerlのプログラ...
-
P.Cのシングルチューナーとダブ...
-
PerlでUTF-8のファイルの文字列...
-
【超初心者】異なるディレクト...
-
perlで複数のファイルの処理に...
-
Perl 順位の重複
-
Perlで特定文字列から特定文字...
おすすめ情報