• 締切済み

クッキーに配列データを追加する方法

nikuqの回答

  • nikuq
  • ベストアンサー率22% (8/36)
回答No.1

私はログインでcookieを使っており、ログインIDとパスワードを、配列の様にして使っています。 やり方は、cookieにデータを格納する際に、『/』や『~』といった、使わない記号を用いています。 例えば、ログインIDが 『hoge_login』 でパスワードが 『hoge_pass』 だとすると、cookieに格納するデータを 『hoge_login/hoge_pass』 や 『hoge_login~hoge_pass』 等にして、PHPでcookieを抽出した際に、split関数を使って配列に分けています。 こんな感じです↓ $login = split("/",$_COOKIE['login']); or $login = split("~",$_COOKIE['login']); そうすると、配列$loginは、 $login[0]にhoge_login $login[1]にhoge_pass となるので、配列になります。 周りくどいやり方ですが、これで対応しています。

yama888
質問者

補足

$login[0]にhoge_loginで取り出そうとするとArrayと 表示されてしまうのですが・・・。

関連するQ&A

  • クッキーに配列2

    クッキーに配列を5つまで追加していきたいのですが、 読み書き方法をお願いします。

    • ベストアンサー
    • PHP
  • クリックで配列に追加する方法

    今は、更新ごとにjsファイルの配列を追加しています。 これをhtml側だけの変更で更新させたいです。 画像をクリックすることで、配列を追加させたい場合どのように記述すれば良いでしょうか。 よろしくお願いします。 ーーーーーーーーーーーーーーーー var zzz = [111,222 ];  //ここを追加しなくても良い方法をお願いします。 $.each(zzz,function(i, aaa){ if($.cookie('AAA')=="AAA_DATA"+aaa){ $(function(){ $("a#AAA img").attr("src","images/img_"+aaa+".jpg"); })} $(function(){ $("a#AAA_BTN"+aaa).click(function() { $("a#AAA img").attr("src","images/img_"+aaa+".jpg"); $.cookie("AAA","AAA_DATA"+aaa);}); }) }) ーーーーーーーーーーーーーーーー 【html】 <a id="AAA" 配列に追加させたい任意の数字?> <img="XXX.jpg"></a> <a id="AAA" 配列に追加させたい任意の数字?> <img="XXX.jpg"></a> <a id="AAA" 配列に追加させたい任意の数字?> <img="XXX.jpg"></a>

  • クッキーに配列データを

    こんばんは。お世話になってます。 クッキーに配列データを保存したく、調べながら試行錯誤を繰り返していますが行き詰まってしまい、 アドバイスを頂戴できればと投函させて頂きます。 やりたいことは、掲示板にて書き込まれた内容をDBで管理しているのですが、各スレッドごとに1つのファイル(ページ)にて 呼び出しており、ページを閲覧した際、過去に1度でも閲覧した内容はカウント(訪問者数)せず、初めて閲覧した時のみ カウントするといった内容にしたいのですが、DBに登録されているデータも複数あることから、 DBに登録されているデータの連番を、配列データ(クッキー名:view)としてクッキーに登録しようと 考えるところまで至っていますが、うまく登録することが出来ずにいる次第です。 他にもっと適切なやり方があったら、そのご意見も頂戴したいのですが、以上のような考え方の場合、以下のスクリプトにおいて、 どこが不適切なのかをご指摘いただければ幸いにおもっております。 以下が、現在テスト中のスクリプトです。 $view_array = $_COOKIE["view[]"]; $view_array = unserialize(base64_decode($view_array)); //print_r($view_array); if(isset($_COOKIE["view[]"])){ if(!in_array($pno, $view_array)){ $count = $count+1; $sql = "update name set count = $count where no ='$pno'"; mysql_query($sql); $view_array[] = $pno; setcookie("view[]", base64_encode(serialize($view_array)), time() + 60*60*24*360, "/"); } }else{//クッキーに該当する配列がなかった場合 $count = $count+1; $sql = "update name set count = $count where no ='$pno'"; mysql_query($sql); $view_array = array($pno); setcookie("view[]", base64_encode(serialize($view_array)), time() + 60*60*24*360, "/"); } 以上、お忙しいなか恐縮ですが、宜しくお願いいたします。

    • ベストアンサー
    • PHP
  • 配列への文字列の追加ってどうやって追加するの?

    配列に文字列をいれたいのですが char a[100]; sprintf(a,"AB"); と書くと a[0]にAが a[1]にBが a[2]に\0が格納されますよね。 「配列に一度格納された文字列に新たな文字列を追加」したいのです。 つまり この\0を上書きしてa[2]から CD を追加し、結果 a[0]にAが a[1]にBが a[2]にCが a[3]にDが a[4]に\0が 格納されているようにしたいのです。 半角英数だったらできるのですが全角だとどうやるのでしょうか。 やりたい事は以下のようなものです。 "あい"を1度目の処理で配列に文字列を格納し、次の処理で"うえ"を追加し、 配列aをprintfするとき「あいうえ」が出力されるようにしたいのです。 どなたか教えてください(>_<

  • クッキーのデータ取得

    perlでのクッキーのデータ取得の方法について、ご質問です。 まず、同一のサイトから取得した、クッキーのパスは、/の、Aというクッキーと、Bというクッキーが存在して、 Aというクッキーのコンテンツのみを、 取得したいのですが、可能なのでしょうか? 下記のスクリプトに追加すると、 どういった形式になるのでしょうか? どなたかご教授いただけますでしょうか? よろしくお願いいたします。 &splt; sub splt { @cookdata = split(/;/,$ENV{'HTTP_COOKIE'}); foreach $tmp (@cookdata) { ($youso,$atai) = split(/=/,$tmp); $youso =~ s/ //; $COOKIE{$youso} = $atai; } }

    • ベストアンサー
    • CGI
  • 配列データに対する、要素の追加・削除方法

    PostgreSQLの配列に対して、要素の追加及び削除を行いたいのですが、下記のような動作をさせるには、※1と※2で、どのようなSQLを実行すれば良いでしょうか? よろしくお願いいたします。 >>> CREATE TABLE test ( id integer, data integer[] ); INSERT INTO test VALUES (1, '{0,1,2,3,4}'); INSERT INTO test VALUES (2, '{5,6,7,8,9}'); SELECT * FROM test; id | data ----+------------- 1 | {0,1,2,3,4} 2 | {5,6,7,8,9} (2 rows) UPDATE test [data配列に10を追加] WHERE id = 1; /* ※1 */ UPDATE test [data配列から6を除去] WHERE id = 2; /* ※2 */ SELECT * FROM test; id | data ----+------------- 1 | {0,1,2,3,4,10} 2 | {5,7,8,9} (2 rows) <<<

  • クッキーに保存した配列を読みこむ

    クッキーに配列を保存して、それを読み出すという プログラムを書いています。 1次元の配列だと($str[0]など)読み書き共にうまくいくのですが、 2次元、3次元になると($str[0][1],$str[0][1][2]など) 書きこむことは出来るのですが、読み込みがうまくいきません。 多次元の配列になると、クッキーの読み込みが 不安定になるのでしょうか。 どなたかご存知でしたら教えてください。お願いします。 php-3.0.18を使用しています。

    • ベストアンサー
    • PHP
  • 配列の要素追加・・・

    プログラミングというものは結構やっていて最近Java・iアプリを作っているものです。 質問なんですが、プログラムが進行すると要素が増える~みたいなプログラムで ーーーーーーーーーー int[] a;//みたいな感じで起動。 ・・・ a[b]=0;//b番目の要素(int)をいきなり追加記述... ーーーーーーーーーー 上の様にするとエラーなようです。 配列の要素の追加について、あんまりいいサイトも見つからなかったので、教えてください。

    • ベストアンサー
    • Java
  • クッキーを連想配列で扱う方法について

    クッキーを連想配列で使ってみようと思い、下記のようなコードを書きましたがうまく動作しません。 当該クッキーがセットされているときは、★の方の処理が実行されるようにしたいのですが・・・。 修正方法のアドバイスをお願いできませんでしょうか。 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']"] なんて書き方が悪いような気がするのですが、 確信はなく、修正方法もわかりません・・・。 お手数ですがご指導どうぞよろしくお願いいたします。

    • ベストアンサー
    • PHP
  • VBAで配列を使って行方向にデータ入力する方法

    EXCEL VBA独学中の初心者です。 配列を使って、1ステートメントでデータを一気に入力したいと思っています。 例えば 「配列=(春,夏,秋,冬)」のとき、 「Range("A1:D1") = 配列」では(A1,B1,C1,D1)=(春,夏,秋,冬)とデータを入力できますが、 「Range("A2:A5") = 配列」では(A2,A3,A4,A5)=(春,春,春,春)となり、(春,夏,秋,冬)となってくれません。 For文を使って Range("A2") = 配列(0) Range("A3") = 配列(1) Range("A4") = 配列(2) Range("A5") = 配列(3) とすればいいのですが、1行でいっぺんにデータを入力する方法がありましたら教えていただきたくお願いします。 ---------- 以下はサンプルです。 Sub 配列変数のテスト() Dim 配列 As Variant 配列 = Array("春", "夏", "秋", "冬") Range("A1:D1") = 配列 'このとき (A1,B1,C1,D1)=(春,夏,秋,冬) Range("A2:A5") = 配列 'このとき (A2,A3,A4,A5)=(春,春,春,春) '1ステートメントで (A2,A3,A4,A5)=(春,夏,秋,冬)にするには? End Sub