人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PHPについて質問です。

クッキーの初期化について教えていただけないでしょうか?

$_COOKIE['order']="";

と自分が作った$_COOKIE['order']の値をこれで初期化しようと思ったのですが実際には無理でした。

お手数をおかけしますがよろしくお願いします。


●質問者: aiomock
●カテゴリ:コンピュータ インターネット
✍キーワード:PHP クッキー 初期化
○ 状態 :終了
└ 回答数 : 7/7件

▽最新の回答へ

1 ● v_i_e_w
●18ポイント

http://www.scollabo.com/banban/php/ref/ref_setcookie.html

setcookie( )を用いてください。

◎質問者からの返答

ご回答ありがとうございます。



$_COOKIE['order']の値をすべて削除したいので

setcookie ('order',"");



としたのですが全てのデータが削除されないのはなぜでしょうか。

お手数をおかけしますがよろしくお願いします。


2 ● sphire
●17ポイント

http://jp2.php.net/setcookie


setcookie('order', '', time()-3600);

とかだとどうでしょうか?

第3引数で、有効期限を設定する必要があります。

また、第4引数でクッキーの有効なパスを、第5引数で有効なドメインを指定することもできますので

クッキーをセットしたときと同じパラメータを与える必要があります。

そもそも、ご自身のサーバにてセットしたクッキーである必要があるのですが、そこの認識に間違いはないでしょうか?

#よそのサーバでセットされたクッキーを消すにはその方法では無理ですよ。

◎質問者からの返答

ご回答ありがとうございます。

有効期限設定してみました。

がしかしクッキーが初期化されないです。。

クッキーを設定したときと同じパラーメータ設定しました。(自分の場合は第三引数までしか設定していないので問題ないと思います。)

自分が現在作成したページはさくらサーバーという会社のところにあって、そこでクリックしたりしたデータをPCのクッキーに保存するという形式を取っているのですが

この形はまずいのでしょうか?


3 ● kn1967
●17ポイント

setcookie() は他の何よりも先に出力されなければなりません。


htmlタグなどの後に来ているようであれば、

最も冒頭でsetcookie('order', '', time()-3600);を、

実施するように改良してみてください。


if (isset($_POST['subete'])) { // 「すべて削除する」が押された場合の処理
 setcookie('order', '', time()-3600);
}
◎質問者からの返答

ご回答ありがとうございます。

冒頭で設置してみたのですが無理でした。

ボタンを押した後は

<FORM method="POST"action="<?php echo $_SERVER['PHP_SELF'];?>">

で一度再読み込みをして一番最初に

if (isset($_POST['subete'])) { // 「すべて削除する」が押された場合の処理

setcookie('order', '', time()-3600);

}


の設置をしましたが未だ機能しないです。

何が問題なのでしょうか。。。


4 ● pahoo
●17ポイント

setcookie で Cookie を削除するには、HTMLへの出力を行う前にブラウザへ指示を送らなければなりません。これだと使い勝手が悪いので、クライアントサイド(JavaScript)で削除指定してはどうでしょう。下記参照。

<script language="JavaScript" type="text/javascript">
<!--
// クッキーの削除
function deleteCookie() {
 name = "order="; //削除するクッキー名
 tt = new Date();
 tt.setYear(tt.getYear() - 1);
 document.cookie = name + ";expires=" + tt.toGMTString();
}
//-->
</script>

―(中略)―

<input type="button" value="すべて削除する" onClick="deleteCookie()">
◎質問者からの返答

ご回答ありがとうございます。

javascript でのやり方を教えていただいてありがとうございます。

このスクリプトを貼り付けて行ったのですが、機能しません。。

どこか問題があるのでしょうか?

javascriptは行ったことがないのでどこがどうなっているのか非常につかみずらいです。。。


5 ● kmond2
●17ポイント

普通はJavaScriptで削除します。

http://tectec.maromaro.jp/modules/smartsection/item.php?itemid=7

◎質問者からの返答

ご回答ありがとうございます。


1-5件表示/7件
4.前の5件|次5件6.
関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ