みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

phpでクッキーが削除できない(時がある)

プルダウンで選択された都道府県にすんでいるユーザーの検索処理をしたいのです。
検索をクリックすると、クッキーを発行して、再読み込み。
phpでクッキーの値をみて、クッキーに値があれば、
ユーザー検索。なければ無視、というものです。

if($ck_flg == "1") {
のあとに、
setcookie("accEnter","",time()-1);
でクッキー値を削除していますが、
クッキーが削除できないためうまく制御ができません。

ただ、<option>タグの行を少し減らすと、クッキーが削除されて、
うまく動くようになります。
HTMLのコードの行数なども影響あるのでしょうか?
setcookieの使い方がまずいのでしょうか?
ご教示ください。

■mypage.php(都道府県で検索)
<?php
$ck_flg = _ss($_COOKIE["flg"]);
?>

<html>
<body>
<form name="search" action="./mypage.php" method="GET" >
  <select name="pref">
   <option value="東京都">東京都</option>
   <option value="千葉県">千葉県</option>
   <option value="埼玉県">埼玉県</option>
   <option value="神奈川県">神奈川県</option>
  </select>
  //検索リンクをクリックすると再読み込み。
  <a href="javascript: document.cookie = 'flg=1'; document.search.submit();">検索</a>
</form>

<php
//検索リンクがクリックされていたらクッキーを削除して、ユーザーを検索。
//それ以外は無視。
if($ck_flg == "1") {
  # COOKIE削除(再読込防止)
  setcookie("accEnter","",time()-1);
  //プルダウンで選択されたユーザーを検索
  $sql = "SELECT id, username";
  $sql .= " FROM user WHERE (pref= '神奈川県');";
}

投稿日時 - 2015-10-26 17:55:06

QNo.9070190

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

time() - 1

がシビアすぎるだけに思えます。実際ここに time() を使う必要性はありません。
(誰が使い始めたんでしょうね…みんな思考停止して真似をする…)

1

これで十分です。

蛇足ですが、XSS対策やSQLインジェクション対策は大丈夫ですか?またPHPのバージョンは古すぎませんか?バージョンアップ可能であればば安定版を出来るだけ使いましょう。

- 7.0 … 現在の開発版。11月中にリリース予定。
- 5.6 … 現在の最新安定版。
- 5.5 … 安定版だが今から導入するなら5.6以降の方が理想。
- 5.4 … 1年以内前にサポート切れ。
- 5.3 … 1年以上前にサポート切れ。
- 5.2 … これより古いものは話にならない。

投稿日時 - 2015-10-28 10:47:24

お礼

PHPは、 5.4です。
setcookie("accEnter",1);
でやってみましたが、やはり現象は消えませんでした。
しばらく試行錯誤してみます。

投稿日時 - 2015-11-05 09:57:59

あなたにオススメの質問