• 締切済み

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= '神奈川県');"; }

みんなの回答

noname#244856
noname#244856
回答No.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 … これより古いものは話にならない。

hide_momiji
質問者

お礼

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

関連するQ&A

専門家に質問してみよう