• ベストアンサー

cookieを受け入れたかどうかをリロード前に知りたい

いつもお世話になっております。 かなり困っているのですが、cookieが配信されたかどうかをリロード前に取得する事は可能でしょうか? 現在cookieの配信と同時に、配信したIDをDBに入れる処理をしているのですが、cookieの受け入れを許可していないユーザが多いようで、無駄にデータがたまってしまっています。 可能であれば、cookieが配信できたかどうかをDBへ入れる前に取得して、処理を分けたいと思っているのですが・・・。 こういった構造自体が根本的によろしくないのでしょうか? よろしくお願いいたします。

  • q-tip
  • お礼率77% (116/149)
  • PHP
  • 回答数4
  • ありがとう数5

質問者が選んだベストアンサー

  • ベストアンサー
  • gentaro
  • ベストアンサー率47% (105/221)
回答No.3

Cookieは環境変数を介してしか受け取れないと思いますので、基本的にブラウザからのキックがなければ1フェーズで取得することは無理なのではないでしょうか?

q-tip
質問者

お礼

ご回答ありがとうございます。 やっぱりそうですか・・・。 色々調べていて多分無理だとは思っていたのですが、困ったなぁ。 無理だということがわかったので、別のの方向で対策を寝ることにします。 ありがとうございました。

その他の回答 (3)

  • Xaval
  • ベストアンサー率58% (61/105)
回答No.4

ページの取得は、  ブラウザ → サーバ → ブラウザ です。Cookieヘッダを送っても(2個目の矢印)、ブラウザからそのレスポンスは帰ってきません。 よって無理です。 トップページでリダイレクトをさせるか、 携帯などの端末向けと同じく、 クッキーレスセッション方式を使うといいと思います。

q-tip
質問者

お礼

ご回答ありがとうございます。 やっぱり無理なんですね。 とりあえずリダイレクトさせる方法で対応いたしました。 本当にありがとうございました。

  • kusukusu
  • ベストアンサー率38% (141/363)
回答No.2

いえ、cookieをセットした後にし判別し、処理2で、「DBへの登録がないのであれば登録」すればいいんじゃないですか?

q-tip
質問者

お礼

度々ご回答ありがとうございます。 setcookieの後に教えて頂いたように書いても、その時は処理1を通ってしまうのです。 (処理1ではcookieの配信ができなかったというエラーメッセージを出したい) 配信した後リロードさせると処理2を通るので、上記の処理もわかるのですが、この方法ということでしょうか? それとも本来はこの書き方で同時にうまくいくはずなのでしょうか? 間違っているかもしれないので再度試してみます。 ありがとうございました。

  • kusukusu
  • ベストアンサー率38% (141/363)
回答No.1

if($_COOKIE["xxxx"]==false {   処理1 }else {   処理2 }

q-tip
質問者

お礼

ご回答ありがとうございます。 頂いた回答だと、cookie配信時には必ずfalseになって処理1を通ってしまいます。(cookieを配信していても) リロード時には当然処理2を通るのですが。

関連するQ&A

  • cookieについて

    IE5.0でツール→インターネットオプション→セキュリティ→レベルのカスタマイズ→cookie ・コンピュータに保存されているcookieの使用許可 ・セッションごとのcookieの使用許可 この二つの設定の違いがよくわからなくて困っています。 具体的には、cookieを使用するサイトでcookieの設定がなされていない時に違うページへとばす処理をしたいのですが、設定によってはうまくいかないことがあるので困っています。 実際には、あるページでcookieを書き込み、次のページでそのcookieの値を読み込み存在すればOK、しなければ別ページへとばす、という処理を書いてあります。 この時、 ・コンピュータに保存されているcookieの使用許可→無効 ・セッションごとのcookieの使用許可→有効 の状態だと、cookieが書き込めてしまって、OKになってしまいます(本当はNGにしたい)。 ・コンピュータに保存されているcookieの使用許可→有効 ・セッションごとのcookieの使用許可→無効 だと、NGとなり別ページへ飛んでくれます。 また、試しにwindow.navigator.cookieEnabledで調べてみると、 ・コンピュータに保存されているcookieの使用許可→無効 ・セッションごとのcookieの使用許可→有効 の時falseで、 ・コンピュータに保存されているcookieの使用許可→有効 ・セッションごとのcookieの使用許可→無効 の時trueが返ります。 どちらも有効の時はじめてOKを取得したいのですが・・・・。 回避方法、もしくは詳細情報のあるサイトなどでも結構です。 何か情報がございましたら教えて下さい。よろしくお願いいたします。 テスト環境はWindowsNT4.0(SR6) IE5.0ですが、IE4.01以上で動作することを想定しています。

  • Cookieからのデータ取得

    現在ログインシステムでユーザ側からパスワードの変更を行う際に ログイン時にCookieに保存したユーザIDをキーにしてSQL文でパスワードの変更を行いたいのですがCookieからうまくユーザIDをもってこれません。 public Cookie[] getCookie()を記述したユーザIDを取得できると思うのですがどこに記述すればいいかわかりません。 ModelBeanとContorollServletのどちらに記述すればいいのでしょうか? また上記の場所でない場合どこに記述すればよいのでしょうか。 アドバイスをよろしくお願いいたします。

  • COOKIEを用いたセッション管理について

    input.phpでsetcookieを使ってcokkieを設定します。 有効期限は1時間です。 check.php→thanks.phpという流れで登録を行い、thanks.phpでcookieを破棄します。 リロードを行ったときにCOOKIEがないのでエラー処理が行われます。 check.phpに直接アクセスしたときもcookieがない場合はエラー処理を行います。 ここまではいいのですが、input.phpにアクセスしたときにthanks.phpで破棄したcookieがまだ生きているのです。 ここで新たにcookieを発行して新しいsessionを開始したいのですが、うまくいきません。 どのようにしたらいいのでしょうか? 1時間たたないうちにユーザが登録をしようとするとcookieの情報を元に更新されてしまいます。

    • ベストアンサー
    • PHP
  • javaでのcookieについて

    こんばんわ&こんにちわ! javaでcookieを使った処理をしたいのですが ちぇっとよくわかりません。 作成したはずのcookieが 追加  response.addCookie(cookie);  取得 cookie.getValue(); 取得しても1つ前の値が取得されてしまいます。 基本的な事なのかもしれませんが、理解できずに 困っています。 詳しい方がいらっしゃったら説明をお願いできませんか。 よろしくお願いします。

    • ベストアンサー
    • Java
  • cookieを有効にしてもエラーになります

    以前の質問の続きなってしまいますが、困っています。 FC2の絵日記を自分のHPにつけてリンクしましたが、「ログインエラー クッキーを有効にした上でパスワードとIDを入力してください」 と出てしまいます。 インターネットオプションのプライバシー設定の詳細では自動cookie処理、常にセッションcookieを許可、などにチェックは入っています。 どうしたら日記を他の人に見てもらうことが出来るのでしょうか。 http://diary2.fc2.com/cgi-sys/ed_user.cgi/(自分のアドレス)

  • Cookie保存が出来ません;

    昨年にそれまで使用していましたPCの方が壊れてしまい 新しく買い換えました。 買い替え前に良く見ていたサイトや、フリーメールなどのIDやパスワードの方は保存が出来ていたのですが 買い替え後のPCの方では保存が出来ず、いつも入力しています; ツール→インターネットオプション→プライバシー→詳細設定→自動Cookie処理を上書きするの方にはチェックは入っていますし 常にセッションCookieを許可するにもチェックの方は入っています。 何が悪いのか全然分かりません; 何か他に原因があるのでしょうか?

  • cookieとhtaccessをつかったページ移行

    cookieとhtaccessをつかったページ移行を考えております。 内容ですが、 http://www.abc.oo/abc/aaa.php?user_id=5 へアクセスした際に htaccessで  http://www.abc.oo/cookie.php へリダイレクトさせ、 クッキーが有効な場合は http://www.abc.oo/abc/aaa.php?user_id=5へリダイレクト クッキーが無効の場合は http://www.abc.oo/555.html というURLを表示させ、 555.html ファイル内に 進むボタンをつけ http://www.abc.oo/abc/aaa.php?user_id=5へのリンクをつけたいと 思っております。 cookie.phpでクッキーを取得することは出来たのですが、 どのようにして、?user_id=5 の部分のURLを持ちまわるのかが 分かりません。 どなたかお分かりになられる方、ご教授お願いできませんでしょうか? よろしくお願いいたします。

  • COOKIEを用いたセッション管理

    PHPでCOOKIEを用いたセッションチェックをしようとしています。 トップページを表示する関数とセッション管理の関数に分けて処理をしています。 function index(){ session_start(); if($this->CheckSession()) ログインのページ else ログオフのページ } function CheckSession(){ if(!$_COOKIE["hoge"]) DBにセッションID(COOKIE["hoge"]の値)を入れる setcookie("hoge",session_id()); return false; else  return true; } このとき更新ボタンを押すたびにCOOKIEの値が変わります。 なぜでしょうか?

    • ベストアンサー
    • PHP
  • 「Cookie」と「オートコンプリート」はどう違うの?

    「Cookie」について、ある説明を見ましたら、 『ユーザの識別に使われ、認証システムや、WWWによるサービスを ユーザごとにカスタマイズするパーソナライズシステムの要素技術』 のように書かれていました。 これと「オートコンプリート」というのが、 実際にどのように違うのかが良く分かりませんで、 ご存知でしたらよろしくお願いいたします。 ---- たとえば、この「教えて!goo」でのログイン画面なんかでは、 「オートコンプリート」を設定しておくと、 ID や パスワードの入力がマウスクリックだけで済ませられて、 ということは分ったところなんですが。 この種のログインを「Cookie」を使って処理したり、 というようなケースもあるんでしょうか? --

  • cookieについて教えてください

    (A) webサーバー側の設定によって、cookieにパソコンのMACアドレス、コンピュータ名、フルコンピュータ名、またはパソコン内に存在するファイル名を記録させることは出来るのでしょうか? (B) セッションcookie がwebサーバーから与えられる時には、ドメインの指定も備わっているため、セッションcookieは同時にファーストパーティーの形態を取り、[ファーストパーティの Cookie をブロックする]設定にしていると セッションcookie もブロックすると考えていたのですが Internet Explorer で、[ファーストパーティの Cookie をブロックする][常にセッション Cookie を許可する]状態でyahooメールにログインできました。 なぜでしょうか? http://itpro.nikkeibp.co.jp/article/COLUMN/20080221/294407/ セッションcookieにはドメイン指定があると書いてあります (1. Webアプリケーションが、Set-Cookie: NAME=VALUE; expires=DATE; path=PATH; domain=DOMAIN_NAME; secure (NAME=VALUEのみ必須)という形式のHTTPヘッダーを含めて、レスポンスを返す。) (C) http://blog.tokumaru.org/2013/02/purpose-and-implementation-of-the-logout-function.html ログインには[BASIC認証]と[フォーム認証]がありますが、ログアウトした場合、[BASIC認証]ではパソコン内に保存されたcookieは削除されず、[フォーム認証]では削除されるのでしょうか? (D) http://blog.tokumaru.org/2013/02/purpose-and-implementation-of-the-logout-function.html [フォーム認証]では、パソコン内のcookieにはセッションIDが保存されるだけだとありますが、googleや楽天のような大手ではなく、小さなショッピングサイトの中には[フォーム認証]でもcookieにIDとパスワードを保存するところがあるのでしょうか? それとも、そもそも[フォーム認証]では、cookieにIDとパスワードを保存できない、または出来るとしても今は保存するサイトはまず無いと考えてよいのでしょうか? (E) yahooやgoogleのログイン画面では、[ログインしたままにする][ログイン状態を保持する]というチェックボックスがあります。 このチェックボックスにチェックを入れてログインすると、cookieにはセッションIDではなく、IDとパスワードが保存されることになるのでしょうか? (A)(B)(C)(D)(E)について教えてください。

専門家に質問してみよう