• ベストアンサー

Cookieをリセットしたい

Cookieをいったんリセットしてゼロの状態からまたはじめたいと思っています。 クライアントが持っているCookieの値を削除したい場合、過去のタイムスタンプを利用すると書かれていましたが、下記のようにサーバー側(phpのプログラム側)でCookie名を変更するだけではダメなのでしょうか? setcookie("TestCookie", $value); ↓ setcookie("TestCookienext", $value); ためしにテストしてみたのですが問題なさそう(?)だったのですが、何か問題あるのでしょうか。 どうぞよろしくお願いいたします。

  • PHP
  • 回答数2
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

もしかしたらクッキーは1つしか保存できないと思っていますか? print_r($_COOKIE); としてみればわかりますが、前のデータがゴミで残り、新しい クッキーが保存されているだけなので、前のデータをリセットしたことには なりません。

iroiro8
質問者

お礼

どうもありがとうございました。 いろいろ試したのですが、ご指摘のとおりでした。

その他の回答 (1)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

別名でセットしなおしても元のデータをリセットしたことにならないのでは?

iroiro8
質問者

補足

phpファイルの方でCookie名をTestCookie→TestCookienextに変更すれば、PCなどのクライアント側では今後TestCookienextという名前のクッキーで保存&参照してくれるかなと思ったのですが、考え方が根本的に間違っているのでしょうか。

関連するQ&A

  • phpでのCookieのパスの書かれ方

    phpの初心者なのですが、Cookieでうまく情報の引き渡しができないので、アドバイス頂けないでしょうか? test1でCookieを初期設定した後に、Cookieを使ってtest2を呼び出し、 test2上で設定し直した値でCookieを書き変えてtest2を再呼び出ししています。 再呼び出しした時のCookieが読めないので、ブラウザを調べてみると、yyという名前のクッキーが2つ存在しているためだと判りました。値は確かに置き変わっているのですが、パスが違っているので読み出せないようです。 初期設定した時のパスは /tst/  → test1.phpでsetcookieで設定したもの 再設定した時のパスは /  → test2.phpの中のJavascriptで設定したもの になっていました。 ▽test1.php (/svr1/tst/) setcookie("yy",$yy,0,"./"); (略) header("HTTP/1.1 301 Moved Permanently"); header("Location: test2.php"); ▽test2.php function set_Cookie() { yy = parseInt(document.f1.ck_yy.value); document.cookie = "yy=" + yy + "; path=/"; return true; } <php? $yy = $_COOKIE['yy']; ?> <form name="f1" action="test2.php" method="post"> <input name="yy">  <input type="submit" value="実行" onClick="set_Cookie()">   </form> setcookie の引数であるパス名を最初は省略していたのですが、/tst/というパスが入ってきてしまうため、パス名をあえて ./としてみたのですが結果は同じでした。 ちなみにtest1の呼び出し元は別のサーバーで以下のように呼びだしています。 ▽test0.html (/svr0/wwwroot/) <a href="http://svr1/tst/test1.php">test1</a> パス名はどのように決まるのでしょうか?

    • ベストアンサー
    • PHP
  • Cookieの値の取得

    お世話になっています。 Cookieの値の取得について疑問がありますので、どなたか教えていただけないでしょうか? ------------------------------------------------------- /test/test1.php の中に <? setcookie ("test" , "hogehoge" ,time() + 86400 * 30); ?> ------------------------------------------------------- /test/test2.php の中に <? echo $HTTP_COOKIE_VARS[test]; ?> ------------------------------------------------------- /test2/test3.php の中に <? echo $HTTP_COOKIE_VARS[test]; ?> ------------------------------------------------------- というファイルを作成しました。(test3.phpのみ階層が違います) まず始めにtest.phpを表示させて、Cookieの情報を保存させます。 次にtest2.phpを表示させると、Cookieの情報を取得することが できますが、test3.phpを表示させると、Cookieの情報を取得すること ができません。これは、なぜなのでしょうか?また、取得する方法 はあるのでしょうか(無いわけは無いと思いますが・・・)? 以上です よろしく、お願い致します。 teraum

    • ベストアンサー
    • PHP
  • cookieの保存が上手くいきません

    PHPはじめたばかりの初心者です。 PHPの勉強の過程で以下のコードを作成しました。 [cookie.php] 6: <form method="POST" action="cookie_rcv.php"> 7: 文字列: 8: <input type="text" name="test" size="30" maxlength="50" value="<?php print($_COOKIE['test']); ?>" /> 9: <input type="submit" value="送信" /> 10:</form> [cookie_rcv.php] 6: <?php setcookie("test", $_POST['test'], time()+(60*60*24*90)); ?> ブラウザで表示すると Warning: Cannot modify header information - headers already sent by (output started at /var/www/cookie_rcv.php:6) in /var/www/day02-3/cookie_rcv.php on line 6 とエラーが出てしまいます。 UTF-8で書いていたので、BOMが原因かと思い、EUC-JPに文字コードを変更してみたのですが解決しません。 もしかしたらものすごい初歩的なミスなのかもしれないのですが、何卒ご教示ください。

    • 締切済み
    • PHP
  • PHPにおけるCookieの挙動について。

    PHPにおけるCookieの挙動について。 PHPには今回初めて触れるのですが…。 PHPでCookieを使ったプログラムを作っていたところ、「Cookieに値を保存することはできている(ブラウザの機能でCookieの一覧を確認したところ、意図した通りの名前で意図した値が保存されていました)のに取り出すことができない」という事態にはまってしまいました。 プログラムは以下の通りです。 -------------------------------- ・TestCookieIn.php <?php require_once "./TestCookieVariable.class.php"; ?> <html> <head> <title></title> </head> <body> <form action="./TestCookieOut.php" method="POST"> <input type="text" name="NAME" size="30" value="<?php print($_COOKIE[TestCookieVariable::COOKIE_NAME]); ?>"/><br/> <input type="submit" value="Exec." /> </form> </body> </html> -------------------------------- ・TestCookieOut.php <?php require_once "./TestCookieVariable.class.php"; setCookie(TestCookieVariable::COOKIE_NAME, $_POST['NAME'], time() + (60 * 60 * 24 * 7)); ?> <html> <head> <title></title> </head> <body> <?php print($_POST['NAME']); ?> <a href="./TestCookieIn.php">前の画面に戻る</a> </body> </html> -------------------------------- ・TestCookieVariable.class.php <?php class TestCookieVariable { const COOKIE_NAME = 'TestCookieVariable.COOKIE_NAME'; } -------------------------------- 確かにsetCookieや$_COOKIEのパラメータにクラス定数を使用するというトリッキー(?)なことはやっていますが、保存はできるのに読み出しができないというのが、色々調べたのですがよく分かりません。 詳しい方いらっしゃいましたら、どうかご教授下さい。 ちなみに環境は、Windows Vista Home Premium(SP2)+xampp for Windows 1.7.3です。 どうか宜しくお願い致します。

    • ベストアンサー
    • PHP
  • PHP4 setcookie関数でIE6上でCookieが発行されない

    お世話になっております。 件名の通りですが、(クライアント)Netscape7.1やOpera上では正常にCookieが発行されて、Cookieにより条件分岐処理が行えるのですが、IE上ではそれが出来ません。 以下のような設定でCookieを発行しようとしています。 (サーバー) setcookie("user_test_id",$row->user_id,time()+60*60*24*60,"/test_folder/") ; ※$row->user_idとはMysqlに登録されている文字列を取得しています 構築環境は下記の通りです。 (サーバー) WindowsXP上でapache_2.0.55、php-4.4.2 ※PHPは正常に動作中(他のスクリプトは問題ありません) 同じ様にLocalhostにAnhttpd1.4[Webサーバー]とPHP4で上記と同じシステムを構築した場合、IEでも正常にCookieが発行されます。ということは、Apacheの設定に不備があるのでは?っとにらんでいるのですが、具体的にどこをいじれば良いのか分かりません。 原因究明に繋がるヒント(回答)をご存知の方、どうかご教授お願い致します。よろしくお願い致します。

    • 締切済み
    • PHP
  • Cookieとhtmlspecialchars

    前回setcookieについて質問したのですが、どうしても出来ないのでまた質問させてください。 前回の質問↓↓ http://okwave.jp/qa/q7319771.html htmlspecialcharsを使い、form2.phpで「&」の表示は出来ましたが、form.phpではどのようにやっても出来ませんでした。 記憶されたCookieの値にhtmlspecialcharsを適用するにはどのようにすれば良いのでしょうか。 setcookie(htmlspecialchars("city", "・・・ にしてもダメでした。 また、前回教えてもらった「自分で$_COOKIEも書き替えるか、($_COOKIEでなく)$_SESSIONを使うとかの工夫が必要です。」の方は全然手付かず状態です。 出来ましたらこちらも含め、簡単でよろしいですのでソースでお願いしたいです。 お願いします。

    • 締切済み
    • PHP
  • PHPでのCookie

    PHPでクッキーを使い、下記のような入力フォームを作りました。 form.phpで入力→form2.phpで正常出力出来るのですが、 form2.phpで一度更新しないと、結果が画面に表示されません。 これをform2.phpを開いた時点で表示されるようにするには、どのように書けばいいのでしょう。 後1つあります。form.phpで 「テスト&1」と書くと「テスト」としか表示されなく、&とそれ以降が記憶されません。 これはなぜでしょうか? お願いします。 【form.php】 <?PHP parse_str($_COOKIE["city"]); parse_str($_COOKIE["city_name"]); ?> <html> <form method="post" action="form2.php"> <?PHP echo "名前1<input type=text name=name1 maxlength=16 size=12 value=$set_name1> <BR>ID<input type=text name=p1 maxlength=8 size=6 value=$set1><BR><BR>"; echo "名前2<input type=text name=name2 maxlength=16 size=12 value=$set_name2> <BR>ID<input type=text name=p2 maxlength=8 size=6 value=$set2>"; ?> <input type="submit" value="実行"> </form> </html> 【form2.php】 <?php if ($_POST) { $city1 = $_POST["p1"]; $city2 = $_POST["p2"]; $city_name1 = $_POST["name1"]; $city_name2 = $_POST["name2"]; setcookie ("city", "set1=$city1&set2=$city2",time()+3600*24*90); setcookie ("city_name", "set_name1=$city_name1&set_name2=$city_name2",time()+3600*24*90); } parse_str($_COOKIE["city"]); parse_str($_COOKIE["city_name"]); echo $set_name1; echo $set1; echo $set_name2; echo $set2; ?>

    • ベストアンサー
    • PHP
  • cookieの判断

    aspにて初めてWEBプログラムを作成していますが、sesionを使用しているところでクライアントのcookieが使用できない状態にあるとサーバーエラーになってしまいます。 クライアント側のcookieの使用が出来るかどうかの判断はどのようにしたら用のでしょうか。

  • クッキーの削除方法

    PHP5にて以下のようにクッキーを連想配列でセットしています。 setcookie("cookie[1]", "10", time()+600); setcookie("cookie[2]", "20", time()+600); setcookie("cookie[10]", "100", time()+600); この場合、一部のクッキー(例えばcookie[2]で設定したもの) だけを削除するにはどうすれば宜しいのでしょうか? 試しに以下の様に記述してみましたが、上手く削除されませんでした。 setcookie("cookie[2]"); また、全てのクッキー(全ての連想配列)を いっぺんに削除する方法もありましたら、お教えください。 宜しくお願いします。

    • ベストアンサー
    • PHP
  • PHP cookie受け渡しについて

    php 5.16 apache 2.0 フォーム -------------------------------------------------------------- <form method="POST" action="./php_cookie_tm.php"> E-Mail<br> <input type="text" name="mail" value="<?php print($_COOKIE['form_email']); ?>"><br> <input type="submit" value=" 保存 "> </form> -------------------------------------------------------------- 出力 -------------------------------------------------------------- <?php setcookie("form_email",$_POST['form_email'],time()+(60*60*24*90)); ?> クッキー保存 -------------------------------------------------------------- とすると Warning: Cannot modify header information - headers already sent by (output started at C:\Program Files\○○.php:4) in ・・・・・・・ というエラーがでます。 既に発信している?みたいなエラーなのですが・・・・ なぜでるのでしょうか? php.iniの設定?等いろいろみてはいるのですが、原因不明にて すごい困っております。 初心者質問ですいません。

    • ベストアンサー
    • PHP

専門家に質問してみよう