
クッキーを連想配列で使ってみようと思い、下記のようなコードを書きましたがうまく動作しません。
当該クッキーがセットされているときは、★の方の処理が実行されるようにしたいのですが・・・。
修正方法のアドバイスをお願いできませんでしょうか。
if (isset($_COOKIE["mycookie['pg4']"])) { //この記述が問題でしょうか?
$order = "desc"; // ★
} else {
$order = "asc";
$expiry = time() + 365 * 24 * 3600;
setcookie("mycookie['pg4']",1,$expiry);
}
これを実行した後に、ブラウザ(Firefox 5)のクッキーを見ると、
名前: mycookie['pg4']
内容: 1
とあり、一応クッキーの送信はされているようです。
また(連想)配列をやめて、"mycookie['pg4']"の部分を全て"mycookie"に変更すれば希望の動作をしてくれます。
ただ、レンタル共有サーバーでの運用ということもありなるべく配列でクッキーをセットしたいのと、
このページ用のクッキーの値の有無(過去の訪問の有無)のみを判定したので、
連想配列でできればいいなぁ、と考えました。
ちなみにHTMLのbody中で、
<?=($_COOKIE["mycookie['pg4']"]);?>と書いてもやはり結果が出力されないので、
恐らくは$_COOKIE["mycookie['pg4']"] なんて書き方が悪いような気がするのですが、
確信はなく、修正方法もわかりません・・・。
お手数ですがご指導どうぞよろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
他の言語は分かりませんがPHPでの連想配列は
$a["0"]["1"] という形になります
なので
$_COOKIE["mycookie"]["pg4"]
でいけるかと。
ありがとうございました。お礼が遅くなってしまい、大変失礼いたしました。
教えていただいようにやったつもりなのですが、
どこかが間違っているのか、やはり希望の動きにはなりませんでした。
if (isset($_COOKIE["mycookie"]["pg4"])) { //修正箇所
$order = "desc"; // ★
$mycookie = $_COOKIE["mycookie"]["pg4"]; //追加箇所
} else {
$order = "asc";
$mycookie = "指定のCOOKIEは存在しないか読み出せません。"; //追加箇所
$expiry = time() + 365 * 24 * 3600;
setcookie("mycookie['pg4']",1,$expiry);
}
↑では、何度ページを再読み込み直しても、やはりelseの方に行ってしまいます。
ブラウザのメニューのクッキー一覧にはちゃんとmycookie['pg4']というものが存在し、
意図通りの値、1が入っているのですが・・・。
もしかしてsetcookieの方の書き方が悪くて配列として認識されていないということなのでしょうか?
http://php.net/manual/ja/function.setcookie.php
の例3など、配列全体の存在をチェックしてループで一つ一つを取り出す方法なら色々なところで見かけるのですが、
連想配列をキーで直接指定している例がなかなか見つかりません。
お返事をいただきまして、ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP PHPで訪問回数を表示するカウンタを作成したい 3 2023/05/27 07:09
- Excel(エクセル) Googleスプレッドシートで、あるセルの値に応じて行を自動挿入したい 急いでいます! くわしい方、 3 2023/03/06 19:05
- Visual Basic(VBA) vba 等間隔の列に対しての計算 6 2022/05/17 20:15
- Chrome(クローム) Cookieを削除 他サイトでの自動ログインなどの設定も削除されますか パソコン クロームです 1 2022/09/10 21:47
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- PHP 配列の値の更新方法について 1 2022/08/05 09:49
- サーバー クッキーをサーバー側で管理することで攻撃に備える 1 2022/08/11 03:49
- その他(料理・グルメ) お客さんからもらった手作り菓子を他の客に配ること 2 2022/12/03 00:36
- その他(メールソフト・メールサービス) メールアプリ spark にauメールが入れられない!!! 1 2022/08/19 23:51
- お菓子・スイーツ <至急> ブラウニーの上にクッキーを載せるクッキーブラウニーを作ろうと考えています。 ですが、材料を 1 2023/02/27 15:58
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
phpのsetcookie()関数について...
-
Cookieを設定しているかどうか...
-
JavaScriptとcookieでページ振...
-
文字数の限界
-
GETメソッドとPOSTメソ...
-
COBOLのCOMP形式について
-
C言語の構造体にてバブルソート...
-
JavaScriptの条件分岐について(...
-
VBAでShift-JISのURLエンコード
-
秀丸でCGIを開いたら文字化...
-
UTF-8で5~6バイトになる文字コ...
-
DataGridViewの特定列に入力さ...
-
char str[256]の256の意味は?
-
画像処理のチェーンコード
-
:(コロン)のKeyCode
-
perlプログラミング 空白行削除
-
エクセルシート名の制限を変更...
-
構造体のソートの方法について...
-
C++/CLIのオブジェクト型配列
-
C言語でwin32apiを使ってnotepa...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PHPのCookieが有るか無いかで、...
-
ゲームノベルのような分岐のあ...
-
異なるドメインのサイトでcooki...
-
COleDateTime とtime_t
-
cookieにカンマ区切りでつめこ...
-
ブラウザ間でCookieを共有する...
-
クッキーを使わないセッション
-
Javascriptのmodalを一度だけ表示
-
JavaScriptで保存したクッキー...
-
javascriptでcookieを削除するには
-
クッキーを連想配列で扱う方法...
-
XML文書の書き方
-
LWP::Simple;でWebページを取得...
-
PHPのgetholidaysを使っていて...
-
UTF-8で5~6バイトになる文字コ...
-
10Mバイトて文字数に すると何...
-
COBOLのCOMP形式について
-
エクセルシート名の制限を変更...
-
Excel VBA メール作成について ...
-
Excel 1セル当りの文字数が2...
おすすめ情報