- 締切済み
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= '神奈川県');"; }
- みんなの回答 (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 … これより古いものは話にならない。
お礼
PHPは、 5.4です。 setcookie("accEnter",1); でやってみましたが、やはり現象は消えませんでした。 しばらく試行錯誤してみます。