• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:クッキーがセットされない)

クッキーがセットされない

NickAomoriの回答

回答No.1

setcookie("login", $addr, 0, "/"); setcookie("key_no", $key_no, 0, "/"); クッキーの有効期限が0だからじゃないですか? setcookie("login", $addr, time() + 60*60*24*30, "/"); setcookie("key_no", $key_no, time() + 60*60*24*30, "/"); としたらどうですか?

sadacha
質問者

お礼

NickAomori様 はじめまして、おはよう御座います。 休み明けの朝のご回答、ありがとう御座います。 >クッキーの有効期限が0だからじゃないですか? 最初、この設定で躓いていたのですが、この有効期限を0にしているのは、ブラウザを閉じたらクッキーを無効としたいための処置としています。 ブラウザを閉じたら無効にするための記述は違うのでしょうか? 色々と調べて居てはいるものの、無効にするには有効期限を省略と説明があるものの、そのあとのパスの指定もあるので、あえて0として記述しています。

関連するQ&A

  • クッキーのセット・参照・削除に関して

    こんばんは、いつもお世話になっております。 ここ何度かクッキーに関して投函させていただき、ありがたいアドバイスにより随分と理解出来るようになってきたのですが、題名にありますように、セットから参照、そして削除に関してご意見、アドバイスを頂戴したく改め投函させて頂きました。 その流れというのも、 ログイン機能を有したサイトで、ログインする際チェックを付ける事で次回より自動ログインという流れを持たせたく、ページを開いた際にクッキーを参照しているのですが、ディレクトリが違うページでログインしていると、クッキーはそのディレクトリのみ参照できるといった状況となっています。 ソースはどのファイルでも同じもの setcookie("addr", $addr, time() + 60*60*24*30); setcookie("key_no", $key_no, time() + 60*60*24*30); 次回以降自動にてログインするには当然どのページからもクッキーを参照しなければならず、そこで仕方なく、クッキーをセットする際、header関数を用いてトップページのあるディレクトリへ一度移動し、クッキーをセット、そしてまた戻るという流れになっています。 しかしながらこの場合ですと、トップ以下、複数のディレクトリがあるので、全てのディレクトリを巡回して、その都度セットしなければならず、またログアウトする場合も全てのディレクトリを巡回し、その都度削除しなければなりません。 以上のように、スキルが乏しい中で出てきたものですが、上手く説明できない・・・などと思いながらも、考え方も含め、アドバイスやご指摘など伺えたら幸いに思います。お忙しい中恐縮ですが、宜しくお願い申し上げます。

    • ベストアンサー
    • PHP
  • クッキーに関して

    こんばんは。お世話になっております。 ここ1~2週間ほどクッキーについて学んでいるのですが、開発環境と実際のweb上での動きに違いが見られ、何がどう違うのか?が見えなくなってしまいました。下記に現状を書き留めますのでご指導頂けたら幸いに思います。 $addr = $_SERVER['REMOTE_ADDR']; setcookie("addr", $addr, time() + 60*60*24); setcookie("key_no", $key_no, time() + 60*60*24); 以上を設置すると、web上のサーバーにアップしたものに関しては、クッキーのファイルに、addr、key_no共に保存されるが、ローカルではクッキーファイル内にkey_noが見られない。 ブラウザを閉じた後、クッキー情報を取得するために、 if(isset($_COOKIE["addr"])){  $addr = $_SERVER['REMOTE_ADDR'];  $addr1 = $_COOKIE["addr"];   if($addr == $addr1){ として始めるものの、web上ではクッキーの取得に成功し、ローカル上ではクッキーを認識しない。 と、以上のような状況です。ソース的な不備も含め、ご指導いただきたく思います。お忙しい中恐縮ですが宜しくお願い申し上げます。

    • ベストアンサー
    • PHP
  • ブラウザによるクッキー処理につきまして

    現在、クッキーを利用してログイン~ログアウト等の処理をしていますが ブラウザによって動作が異なるようです。 動作と言いましても特殊な事では無く、ログイン後手操作でログアウトしたらそのままログアウト。 ログイン中でもクッキーの設定時間を過ぎたらログアウト可能にしたいのですが IEはバージョン6以降では特に問題も無く思ったとおりの動きを してくれますが、Firefoxでは(ver3.6.2)手操作での任意のログアウトが出来ません。 具体的には、サンプルソースの様にlogin.phpでクッキーを設定してlogout.phpで クッキーを削除していますが、Firefoxではクッキーが削除されません。 その為、ログイン後 手操作でログアウトしてもFirefoxではログアウト出来ません。 クッキー設定での時間を経過したら、ログアウト出来ます(クッキーも削除されます) ログイン側~ログアウト側 両方とも時間など、いくつかやり方を変えて見ましたが 対策が見えていません。 (ブラウザによる相違があるようでしたのでサンプルソースの様にif文で分けています。) Firefoxでは何か設定のやり方があるのでしょうか。 ご存知の方がいらっしゃいましたらご教授の程お願いします。 ■環境 OS:WindowsXP WEBサーバー:apache2.0 PHP:バージョン5.2 IE:バージョン 6/7 (クッキー許可) Firefox:バージョン 3.6.2 (クッキー許可) //-------------------------------------------- // login.php (省略サンプルソース) // クッキー設定 $userid = 'abcd'; $Agent = getenv( "HTTP_USER_AGENT" ); if (eregi("firefox", $Agent)){ // Firefox //setcookie('login_regist', $userid, time()+1); setcookie('login_regist', $userid, time()+20); }else{ // IE setcookie('login_regist', $userid, time()+20); } //-------------------------------------------- // logout.php (省略サンプルソース) // クッキー削除 $userid = 'abcd'; $Agent = getenv( "HTTP_USER_AGENT" ); if (eregi("firefox", $Agent)){ // Firefox //setcookie('login_regist', $userid, time()-2400); setcookie('login_regist', $userid, time()+0); }else{ // IE setcookie('login_regist', $userid, time() - 2400); }

    • 締切済み
    • PHP
  • クッキー削除について

    トップページからユーザIDとパスワードを入力し、次回から自動的にログインのチェックボックスにチェックを入れるとクッキー保存するという流れですが、 逆にそのとき保存した部分のクッキーを削除する方法をご教授頂けないでしょうか? ログイン後、ログアウトするとクッキーを削除したいとおもいます。 宜しくお願い致します。 ・レンタルサーバはロリポップです。 ・クッキーを保存するソースは↓ <?php $login=$_POST['login']; $email=$_POST['email']; if($login=="on"){ setcookie("email",$email,time()+(60*60*24*90)); echo mb_convert_encoding("保存しました","SJIS","EUC-JP"); } else{ echo mb_convert_encoding("クッキーを利用しません","SJIS","EUC-JP"); } ?>

    • ベストアンサー
    • PHP
  • クッキーの削除方法

    PHP5にて以下のようにクッキーを連想配列でセットしています。 setcookie("cookie[1]", "10", time()+600); setcookie("cookie[2]", "20", time()+600); setcookie("cookie[10]", "100", time()+600); この場合、一部のクッキー(例えばcookie[2]で設定したもの) だけを削除するにはどうすれば宜しいのでしょうか? 試しに以下の様に記述してみましたが、上手く削除されませんでした。 setcookie("cookie[2]"); また、全てのクッキー(全ての連想配列)を いっぺんに削除する方法もありましたら、お教えください。 宜しくお願いします。

    • ベストアンサー
    • PHP
  • PHPでクッキーをセットできない

    PHPとJavaScriptを使っゲームを作っていますが、PHPでクッキーをセットしようとすると以下のようなメッセージが出てきて、データがセットされません。 「ヘッダー情報を修正できない」というメッセージはどんな意味なのでしょうか? setcookie()関数をどこで使えばうまくいくのでしょうか? 詳しい方がいらっしゃいましたら、よろしくお願いいたします。 使った関数=setcookie("gameOverTime", $cookieData, time() + 60*60); メッセージ= Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\QAgameOver.php:1) in C:\xampp\htdocs\QAgameOver.php on line 10

    • ベストアンサー
    • PHP
  • ブラウザを終了するとCookie情報も消える。。

    知っている方いましたらご教授お願いいたします。 ■現象 safari・クロームにてCookie情報を保存したハズなのに 上記、2つのブラウザを終了⇒起動すると 保存したハズのCookie情報が消えている。 ■PHPソース $timeout = time() + (365*30) * 86400; setcookie('LOGIN_ID' ,$USER_LOGIN_ID_TEXT , $timeout,'/','lolipop.jp'); setcookie('LOGIN_PASS' ,$USER_LOGIN_PASSWORD_TEXT , $timeout,'/','lolipop.jp'); setcookie('LOGIN_CHK' ,'checked' , $timeout,'/','lolipop.jp'); ■補足 上記3つの、ログインID・パスワード・保存するかどうかのチェックボックスの3つをクッキーに保存しています。 ドメインはロリポップを利用しています。 以上、よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • クッキーに配列データを

    こんばんは。お世話になってます。 クッキーに配列データを保存したく、調べながら試行錯誤を繰り返していますが行き詰まってしまい、 アドバイスを頂戴できればと投函させて頂きます。 やりたいことは、掲示板にて書き込まれた内容をDBで管理しているのですが、各スレッドごとに1つのファイル(ページ)にて 呼び出しており、ページを閲覧した際、過去に1度でも閲覧した内容はカウント(訪問者数)せず、初めて閲覧した時のみ カウントするといった内容にしたいのですが、DBに登録されているデータも複数あることから、 DBに登録されているデータの連番を、配列データ(クッキー名:view)としてクッキーに登録しようと 考えるところまで至っていますが、うまく登録することが出来ずにいる次第です。 他にもっと適切なやり方があったら、そのご意見も頂戴したいのですが、以上のような考え方の場合、以下のスクリプトにおいて、 どこが不適切なのかをご指摘いただければ幸いにおもっております。 以下が、現在テスト中のスクリプトです。 $view_array = $_COOKIE["view[]"]; $view_array = unserialize(base64_decode($view_array)); //print_r($view_array); if(isset($_COOKIE["view[]"])){ if(!in_array($pno, $view_array)){ $count = $count+1; $sql = "update name set count = $count where no ='$pno'"; mysql_query($sql); $view_array[] = $pno; setcookie("view[]", base64_encode(serialize($view_array)), time() + 60*60*24*360, "/"); } }else{//クッキーに該当する配列がなかった場合 $count = $count+1; $sql = "update name set count = $count where no ='$pno'"; mysql_query($sql); $view_array = array($pno); setcookie("view[]", base64_encode(serialize($view_array)), time() + 60*60*24*360, "/"); } 以上、お忙しいなか恐縮ですが、宜しくお願いいたします。

    • ベストアンサー
    • PHP
  • クッキー認証>クッキー削除ができない!!

    今回は、クッキー認証画面を作成している際、 エラーが出てしまって先に進めず投稿しました。 下記にプログラム記載 ----H_01.html---------------------------------- <html> <head> <title>クッキー認証</title> </head> <body> <center> <form method="POST" action="H_02.php"> 名前<input type="text" name="name"> パスワード<input type="Password" name="pass"> cookieを記録する<input type="checkbox" name="chk"> <input type="submit" value="送信"> <input type="reset" value="リセット"> </form> </center> </body> </html> ------------------------------------------------ -----H_02.php---------------------------------- <?php $name = $_COOKIE['name']; $pass = $_COOKIE['pass']; $cnt = $_COOKIE['chk']; if ($cnt == True) { $lim = time()+7*24*60*60; //有効期限1週間 setcookie('name',$name,$lim); setcookie('pass',$pass,$lim); } else { setcookie('name'); setcookie('pass'); } ?> ------------------------------------------------ else文内の、setcookie二行にエラーが出ます。 htmlでチェックボックスにチェックが施されていない場合、クッキーを削除。 調べてみたのですが、どうしたらよいのかわからず 投稿しました。よろしくお願いします。

    • ベストアンサー
    • PHP
  • JavaScriptによるクッキーの書込みについて

    JavaScriptによるCookieの書込みで以下のようにhtmlにはりつけているのですが、どうしてもpath=/が有効になりません。 書き込まれたクッキーをみるとクッキーを書き込むディレクトリになってしまいます。 <script type="text/javascript"> <!-- var limit = 1; //有効期限日数をいれる exp=new Date(); exp.setTime(exp.getTime()+1000*60*60*24*limit); var no = '01010088'; var img_url = './0101/img/0088/01010088i.gif' var url= './0101/01010088.html'; var itemname= '遠赤外線セラミックの竈(かまど)炊き風炊飯鍋と御櫃(おひつ)セット'; var price = '7960'; var souryou = '700'; setCookie(no,'img:' + img_url +',url:' + url + ',itemname:' + itemname + ',price:' + price + ',souryou:'+ souryou +',',exp); function setCookie(key, val, val_exp,tmp) { tmp = key + "=" + escape(val) + "; "; tmp += "expires= " + val_exp.toGMTString(); + "; "; tmp += "path=/;"; document.cookie = tmp; } // --> </script> 書籍をいろいろみたのですがクッキーについて詳しくかいているのがあまりなくて・・・ ご教授お願いします。