• 締切
  • すぐに回答を!

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

  • 質問No.9070190
  • 閲覧数474
  • ありがとう数2
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 53% (274/515)

プルダウンで選択された都道府県にすんでいるユーザーの検索処理をしたいのです。
検索をクリックすると、クッキーを発行して、再読み込み。
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= '神奈川県');";
}

回答 (全1件)

  • 回答No.1

ベストアンサー率 77% (407/525)

time() - 1

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

1

これで十分です。

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

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

お礼率 53% (274/515)

PHPは、 5.4です。
setcookie("accEnter",1);
でやってみましたが、やはり現象は消えませんでした。
しばらく試行錯誤してみます。
投稿日時:2015/11/05 09:57
結果を報告する
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。
関連するQ&A

その他の関連するQ&Aをキーワードで探す

ピックアップ

ページ先頭へ