同じドメインのPHP Cookieに正しくアクセスできない

私はPHPですばらしいとは言えません。私が現在知っていることはすべて、私はインターネットをブラウズして自分自身に教えてしまったのです。

私は現在、永続的なログインを1日設定するために、私のページのクッキーを使って作業しようとしています。

基本的に私はセッションのユーザー名の値でクッキーを設定するまで管理しています。この値は、ユーザーがログオンするときに設定されます。 ユーザーが資格情報を入力すると、mysqlデータベースに対してphpがチェックされ、成功した場合はセッション変数としてユーザー名が設定され、Cookieとして設定されます。

これは、私はこのPHPを実行し、すぐにクッキーをエコーするように、ユーザー名が表示されます。

これはすべて、ライトボックスやその他のポップアップウィンドウのようなtinyboxで作成されたログインフォームで行われます。クッキーとエコーはここから正しく動作しているようです。

しかし、ログインが成功すると、親ページ(私のサイトのルートページ)がリフレッシュされ、すべてがうまくいくように見えます。ただし、インデックスページからCookieをエコーすると、アクセスできません。

クッキーがセキュリティ上の制限を持っていることは知っていますが、ログインページと私のホームページが同じドメインにあるように見えたら、これはうまくいくと思いました。

これは私が間違っている可能性が高いか、それともクッキーの制限です。それは、私がインデックスボックスのページからクッキーを設定した場合、それは動作しますか?

誰かが私が使用しているコードの例を望むなら、それを提供することができます。

どうもありがとう エド

0
あなた自身のクッキー認証ルーチンをロールしようとすると、私はPHPでうまくいきませんと言っているように、悪いアイデアです。これを行うには、で学習してください。スクラッチから。私が99.99%あなたが考えていないと確信している多くの、多くのセキュリティ問題があります。
追加された 著者 DaveRandom,
(上記のリンクを参考にしてください)、あなたがしたいことがあれば見てみることをお勧めします(次のコメントに続きます)
追加された 著者 DaveRandom,
...あなたがこのエクササイズの目的として説明していることから、セッションをクリックしてください。これを行うと、a)PHPがあなたのために処理しているすべてのクッキーを処理します。b)単一のクッキーが必要なだけで、セッションについて好きなだけ多くのデータを保存することができます。セッションでは、毎回データベースを照会する必要はありません。
追加された 著者 DaveRandom,
セッションのクッキーライフタイムは、デフォルトではセッションクッキーであるため、ユーザーがブラウザを閉じたときに破棄されるため、変更する必要があります。しかし、これは簡単に < code> session_set_cookie_params()
追加された 著者 DaveRandom,
理論的には、これを再訪したにもかかわらず、PHPセッションの生涯の正確な動作は、必ずしもあなたが期待するものではないことを覚えています - 考慮すべき多くの要素があり、それを得るためには非常に複雑で、あなたがどのように記述しているか。あなたが本当にこれでセキュリティを気にかけていないのであれば、おそらくあなたのオリジナルのアプローチをとどめておくべきでしょう(バーン情報についてはごめんなさい)
追加された 著者 DaveRandom,
元の質問に戻ります。クッキーの $ path パラメータを設定しましたか?あなたがそうした場合、これが問題の原因になる可能性が高いと私は思っています。ウィンドウに表示されるスクリプトの場所、フォームが送信されるスクリプトの場所、メインページのスクリプトの場所、Cookieの設定に使用したコード行を記述してください。私は何が起こっているのか分かりますか?
追加された 著者 DaveRandom,
追加された 著者 DaveRandom,
私が学んだ他のほとんどのものが他の人からのコード例を使用していることを認めなければならないので、なぜ私がクッキーの例を探していないのか分かりません。私は一般的にscartachから始めることを試みるので、基本についてかなり良い理解を得ることができますが、この場合は私の外です。これは社内のイントラネットに限られているため、セキュリティは大きな問題ではなく、私がログインする唯一の理由は、セキュリティよりも環境設定のためです。私はちょうど少なくとも検査し、働くためにいくつかの事前構築されたルーチンを見つけようと提案するでしょうか?アドバイスありがとうございます!
追加された 著者 Eds,
私は現時点でセッションを使用してデータベースに基づいてユーザーの好みを制御していますが、あなたが言ったようにセッションはそのセッションだけであるため、永続的なログオンのクッキーを見ていました。私はあなたがセッションの生涯を変えることができるとは思わなかった。だから、セッションのparamsを設定することで、私はユーザのログインができ、翌日にブラウザを閉じた後に戻ってきて、まだログインしていますか?すべてのあなたの助けに感謝します!
追加された 著者 Eds,
if($ rem == 'yes'){$ cookievalue = $ _SESSION ['SESS_USERNAME']; setcookie( "newcookie"、$ cookievalue、time()+ 60);エコー$ _COOKIE ["newcookie"];
追加された 著者 Eds,
コメントボックスでは読みにくいですが、基本的には、rem変数はログインフォームのチェックボックスになっているので、$ cookievalue変数はセッションのユーザー名です。だからクッキーを設定するとき、私はクッキー値と60秒の有効期限を持つnewcookieという名前で設定します。私はそれをすぐにエコークッキーをすぐに、その罰金、私はそれをエコーするコードのexat行をコピーする場合、親ページに、それは失敗します。親はイントラネットドメイン上のindex.phpです。ありがとう
追加された 著者 Eds,

2 答え

これはDaveRandomによって助けられました。

私はCookieのルートパスとして "/"を追加しなければならなかったので、親ページで利用できるようにしました。

0
追加された

どのナビゲータを使用しますか?ローカルCookieでChromeはデフォルトでは動作しません。コマンドラインで--enable-file-cookiesを有効にすることができます

http://code.google.com/p/chromium/issues/detail ?id = 3014

0
追加された
私はIE9を使って設計とテストを行っていますが、ほとんどのものはクローム、ファイアフォックス、サファリのように動作するようです。
追加された 著者 Eds,
PHP - 日本のコミュニティ [ja]
PHP - 日本のコミュニティ [ja]
4 参加者の

このグループではPHPについて話します。 パートナー:kotaeta.com

JavaScript - 日本のコミュニティ
JavaScript - 日本のコミュニティ
2 参加者の

日本人コミュニティのjavascript